這個問題似乎是一個範圍。帶有存在函數的行會拋出一個錯誤,指出它沒有接收散列作爲參數。我怎麼能這樣做傳遞給存在函數的值是我的散列?我定義了一個散列,但存在函數拋出一個錯誤,說它不是散列
#!/usr/bin/perl
use warnings;
use strict;
open FH, 'test_out' or die $!;
my %pn_codes =();
while(<FH>) {
if(/.*PN=(\d*)/) {
my $pn = $1;
if(exists %pn_codes{$pn}) {
print($pn, "exists");
} else {
%pn_codes{$pn} = 1;
}
}
}
嘗試'if(存在$ pn_codes {$ pn}){'改爲(將'%'改爲'$')。這裏也是:'$ pn_codes {$ pn} = 1;' – chilemagic
實際上,錯誤表示它不是一個哈希*元素*。 – ikegami