Perl子参考语法

时间:2011-01-28 23:08:40

标签: perl

那里 - 刚开始学习Perl。

我正在做的是将数组放入子函数中 - 可以在1行中更简单地完成吗?

sub my_sub {
    my $ref_array = shift;
    my @array = @$ref_array;
}

4 个答案:

答案 0 :(得分:3)

如果你想要shift的效果,

sub my_sub {
    my @array = @{+shift};
}

unary + operator强制shift视为表达式,而不是变量名。 (否则@{shift}表示与@shift相同。)

答案 1 :(得分:2)

你可以简化为

sub my_sub { 
  my @array = @{$_[0]};
}

其中@_是默认数组/列表,用于参数传递。

答案 2 :(得分:2)

另一种方法是不要担心它是一个arrayref - 只要保持这种方式并在原来的其余部分中使用它。

答案 3 :(得分:0)

这便宜得多:

local *array = shift();