我正在寫這個代碼在Perl中,我創建一個唯一的關鍵,然後給它分配一個值。參考發現在哪裏,甚至大小的列表
sub populate {
my $file = shift;
my %HoH = shift;
open(INFILE,$file);
.
.
.
$final_name = $prepend.$five;
$HoH{$final_name} = $seven;
}
現在我傳遞兩個參數的子程序,類似的
&populate(\%abc,$file_1);
&populate(\%xyz,$file_2);
ID它爲什麼給我這樣的錯誤:
Reference found where even-sized list expected
無論你正在閱讀什麼文檔,告訴你使用雙參數形式的「open」是過時的。使用三參數形式:「打開我的$ INFILE」,<',$ file'。 (並檢查錯誤。) –
但是$文件包含文件位置的地址。 – kunal
我不確定你的意思。 '$ file'應該包含文件的*名稱*。調用'open(INFILE,$ file)'和'打開我的$ INFILE','',$ file'幾乎是等價的,但後者更好。 'perldoc -f open'獲取更多信息。 (你在源文件中缺少'$';'my file = shift;'應該是'my $ file = shift;'。) –