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

发布于 2024-10-20 17:24:48 字数 334 浏览 4 评论 0 原文

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

sub printOptions {

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

谢谢

Hi all
I have a module with a sub that get its parameters from e.g. script.pl
In script.pl I call the function this way moduleName::sunName(\%hashref).
Now in module, and in sub body I want to print those parameters that passed. also I want to check if the value of each key of this href is empty print '-' instead of 0.
first part of module:

sub printOptions {

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

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怪我入戏太深 2024-10-27 17:24:48

尝试:

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";
    }
  }
}

Try:

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";
    }
  }
}
说不完的你爱 2024-10-27 17:24:48

马特,你现在得到了什么?要取消引用 $opt ,您可以执行以下操作

%opt = %{ $opt }

要迭代键,您可以执行以下操作

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

Matt, what are you getting at the moment? To dereference the reference $opt you can do

%opt = %{ $opt }

To iterate over the keys you can then do

for my $key ( sort keys %opt ) {
    print "$key: " . ($opt{ $key } || '-') . "\n";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文