perl - 如何将散列的一部分传递给子例程?

标签 perl

如何将哈希的一部分传递给子例程?

%list = ( 1 => {name => 'first', quantity => 2},
  2 => {name => 'second', quantity => 3});
$i = 2;

#doesn't work....
check_something ( \%{list}{$i} );
sub check_something {
   %local = @_;
}

#doesn't work....
check_something ( \%list, $i );
sub check_something {
   my ($ref, $item) = @_
   %local = %{$ref}{$item};
}

最佳答案

$list{$i} 传递给子例程,

use strict;

check_something ( $list{$i} );

sub check_something {
   my ($href) = @_;

   # $href->{name}, $href->{quantity}

   my %hash = %$href;
   # $hash{name}, $hash{quantity}
}

关于perl - 如何将散列的一部分传递给子例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17031839/

相关文章:

perl - worker MPM 下 mod_perl 中的进程内协调

regex - 在多个文本上搜索相同正则表达式的有效方法

java - 我如何从 Java 调用 Perl?

perl - 使用Perl绘制饼图和柱状图

linux - 如何更改 perl cpan 存储库位置

perl - 钩子(Hook)为 Perl 中的每个哈希查找提供一个值

mysql - 如何优化这个执行插入数据库的脚本?

linux - Awk/Sed/Perl - 如果两个连续的列匹配两个模式,则创建一个新行

perl - 如何使用 Perl 将连接数据线转换为方案 block ?

perl - 在 Perl 中发出并发 Web 请求的最快方法是什么?