2012-04-17 90 views
1

代替我想尋找一個句子,與這樣的匹配字符串的哈希值替換:搜索和在Perl

my $sentence = "abc def hello hi"; 
$sentence =~ s/abc def/$hash{'abc def'}/g; 

,我沒有得到正確的輸出。 任何人都可以幫我嗎?

+1

什麼是正確的輸出? '$ hash {'abc def'}'的內容是什麼? – 2012-04-17 04:32:47

+0

$ hash {'abc def'}你好嗨 – siri 2012-04-17 04:48:43

回答

3

這個工作對我來說:

#!/usr/bin/env perl 
use strict; 
use warnings; 

my %hash = ('abc def' => 'pqr xyz'); 

my $sentence = "abc def hello hi"; 
$sentence =~ s/abc def/$hash{'abc def'}/g; 

print "$sentence\n"; 

運行時,它打印:

pqr xyz hello hi 

如果這不是你所期望的,什麼是你期待? (請注意,問題中Perl代碼的原始版本中存在許多拼寫錯誤;我認爲它們是偶然的,但它們可能是解決問題的關鍵。使用use strict;use warnings;可幫助發現拼寫錯誤的變量名稱等問題。