perl使用散列传递参数的问题

perl使用散列传递参数的问题

我在程序调用时定义了一个散列

%paralist={'dbtype'=>$dbtype,'dbuser'=>$dbuser,'dbpasswd'=>$dbpasswd,'dbip'=>$dbip,'filetype'=>$filetype,'filedir'=>$filedir,'filetempdir'=>$filetempdir,'distinctionno'=>$ARGV[1]};

我想把%paralist作为函数new()的参数传入,
请问我如何在自定义函数中new()中使用这个传入的散列参数,调用时,new函数如何使用%paralist这个散列。
传引用:

$rhash = \%paralist;

print $$rhash{"key1"};

maybe.


QUOTE:
原帖由 hqyus 于 2008-3-6 17:46 发表
传引用:

$rhash = \%paralist;

print $$rhash{"key1"};

maybe.

为什么需要使用引用呢?能不能给我详细说一下啊,另外new作为一个构造函数应该怎么使用这个作为参数的散列呢。


QUOTE:
原帖由 hamas 于 2008-3-6 17:33 发表
我在程序调用时定义了一个散列

%paralist={'dbtype'=>$dbtype,'dbuser'=>$dbuser,'dbpasswd'=>$dbpasswd,'dbip'=>$dbip,'filetype'=>$filetype,'filedir'=>$filedir,'filetempdir'=>$filetempdir,'distincti ...

函数new可以这么写

[Copy to clipboard] [ - ]
CODE:
sub new{
    my %hash = @_;
    ...
    ...
}

调用的话

[Copy to clipboard] [ - ]
CODE:
new(%paralist)

或者

[Copy to clipboard] [ - ]
CODE:
sub new {
   my $hashref = shift; # $hashref 是一个指向%paralist的引用
   my %hash = %{shift()}  # 这种方法一步到位,deference
}

调用的话
new(\%paralist);

如果不知道引用
还是要好好看中骆驼书