2011-08-08 88 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