我想知道是否有可能将传递给函数的参数作为哈希。
我试过这种方式:
my %hash = @_;
在我得到一个数组的场景中工作,但键是奇数变量值,值是偶数变量值。
我希望键是变量的名称,所以如果我例如调用
foo($bar, %example);
散列将有一个键值为$ bar
的键值(同样适用于%示例)。
这是可能的还是我必须在调用函数之前创建哈希?
答案 0 :(得分:2)
在某种程度上,可以使用PadWalker完成。这不是你想在开发工具之外做的事情。
但这个概念毫无意义。这意味着你必须要做
my $bar = 4;
foo($bar, %example);
而不是
foo(4, %example);
坚持
foo(bar => $bar, %example);
或
foo(bar => $bar, example => \%example);
(取决于你想要的)。