获取作为哈希传递给函数的参数

时间:2014-05-27 17:00:30

标签: perl

我想知道是否有可能将传递给函数的参数作为哈希。

我试过这种方式:

my %hash = @_;

在我得到一个数组的场景中工作,但键是奇数变量值,值是偶数变量值。

我希望键是变量的名称,所以如果我例如调用

foo($bar, %example);

散列将有一个键值为$ bar

的键值

(同样适用于%示例)。

这是可能的还是我必须在调用函数之前创建哈希?

1 个答案:

答案 0 :(得分:2)

在某种程度上,可以使用PadWalker完成。这不是你想在开发工具之外做的事情。

但这个概念毫无意义。这意味着你必须要做

my $bar = 4;
foo($bar, %example);

而不是

foo(4, %example);

坚持

foo(bar => $bar, %example);

foo(bar => $bar, example => \%example);

(取决于你想要的)。