1

大家好,我有一个带有 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!
 }

谢谢

4

2 回答 2

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";
    }
  }
}
于 2011-03-08T13:50:08.483 回答
2

马特,你现在得到什么?要取消引用参考 $opt 你可以做

%opt = %{ $opt }

要遍历键,您可以这样做

for my $key ( sort keys %opt ) {
    print "$key: " . ($opt{ $key } || '-') . "\n";
}
于 2011-03-08T12:37:12.250 回答