2011-08-08 127 views
-2

我想將兩個值傳遞給函數:散列名稱和文件位置。在perl中通過引用傳遞值

我有2個變量$file_location_1$file_location_2。該函數用於創建散列。

我的問題是:我可以在函數中傳遞散列的名稱和2個變量嗎?

enter code here 
sub compare 
{ 
    open(INFILE,$file) 
    while<INFILE> 
    { 
    %hash{xyz}=pqr; 
    } 
} 
    compare(\%abc,file_location_1); 
    compare(\%uvw,file_location_2); 
+1

我希望我能理解你在問什麼 – vol7ron

+0

所以我做了什麼是對的? – kunal

+0

再一次,我不知道你想要什麼...所以我甚至無法幫助說出是對還是錯。你的子程序應該分配參數,看看我的回答 – vol7ron

回答

2

這是你想要的嗎?

sub compare 
{ 
    my ($hr,$file) = @_; 

    open(INFILE,$file); 
    while<INFILE> 
    { 
     $hr->{xyz}=pqr; 
    } 
    close INFILE; 
} 

compare(\%abc,$file_location_1); 
compare(\%uvw,$file_location_2); 
+0

沒有意義..您爲什麼要將值指定爲hashref的次數你在代碼中有行嗎? – Zaid

+0

我將'xyz'和'pqr'作爲其他進程的僞代碼(可能在一個條件正則表達式中),但Zaid是正確的,如果這是文字代碼,那麼您需要重新評估你要。 – vol7ron

+0

以及因爲我使用的文件我有兩個做一個散列,然後用它來比較兩個文件。我必須建立一個獨特的關鍵,然後比較。 – kunal