从另一个脚本获取哈希引用键和值

时间:2011-03-08 11:25:39

标签: perl hash perl-module ref

大家好 我有一个带有sub的模块,它可以从例如script.pl 在script.pl中,我以这种方式调用函数moduleName :: sunName(\%hashref) 现在在模块中,在子体中我想打印那些传递的参数。另外我想检查这个href的每个键的值是否为空打印' - '而不是0。 模块的第一部分:

sub printOptions {

   my $opt = shift;
   # I have this
   print $opt->{'id'};
   # But I need all parameters!
 }

感谢

2 个答案:

答案 0 :(得分:2)

马特,你现在在做什么?要取消引用引用$ opt,您可以

%opt = %{ $opt }

要迭代按键,您可以执行

for my $key ( sort keys %opt ) {
    print "$key: " . ($opt{ $key } || '-') . "\n";
}

答案 1 :(得分:2)

尝试:

sub printOptions {
  my $opt = shift @_;

  for my $key ( sort keys %$opt ){
    if( defined( $opt->{$key} )){
      print "$key: $opt->{$key}\n";
    }else{
      print "$key: undef\n";
    }
  }
}