如何将Perl默认数组变量@uu与push一起使用?

如何将Perl默认数组变量@uu与push一起使用?,perl,Perl,在中有一段关于@的文字: 在子例程中,数组@u包含传递给的参数 那个子程序。在子例程中,@_是 数组操作符推、弹出、移位和取消移位 通常使用无参数的shift从数组中获取第一个元素。它经常被用作: sub some_method { my $self = shift; # the same as `my $self = shift @_;` ... } 但是在文档中,有人写到它可以与push一起使用,但是如果不明确地将@指定给push,我就无法创建工作示例。通过阅读此文档,我

在中有一段关于
@
的文字:

在子例程中,数组@u包含传递给的参数 那个子程序。在子例程中,@_是 数组操作符推、弹出、移位和取消移位

通常使用无参数的
shift
从数组中获取第一个元素。它经常被用作:

sub some_method {
    my $self = shift; # the same as `my $self = shift @_;`

    ...
}

但是在文档中,有人写到它可以与
push
一起使用,但是如果不明确地将
@
指定给push,我就无法创建工作示例。通过阅读此文档,我期待
push 123
推送到
@
,但它不工作

我相信您在文档中发现了一个错误

@
pop
shift
的默认值,但不是
push
unshift
的默认值。对于
push
unshift
,必须明确指定数组

perldoc-f push
将语法显示为:

push ARRAY,LIST
push EXPR,LIST
没有保留未指定数组的选项;对于
perldoc-f unshift
,也是如此

(OP已提交Perl错误报告;请参阅)

更新:


这一点已得到纠正。在针对Perl的git repo中,它在commit
256ca3d37ed232e10fbb2884be45691e745be7a9
,2015-06-21中被更正。该修复程序出现在版本5.23.1和5.24.0中。这似乎在任何
perldelta*.pod
文件中都没有提到。

我使用了perbug并发送了消息。这是我寄来的-