You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求Perl文档确认shift操作后传递@_仍保留首参数的行为

Perl中shift()修改@_后的参数传递特性

我正在查找Perl官方文档,确认以下行为:尽管shift()会修改当前子例程内的@_,但传递给后续子例程的参数仍会保留原始的第一个参数。

测试代码

use Data::Dumper;
sub f { shift->(@_) }

f(sub{ print Dumper \@_ }, 1,2);

输出结果

$VAR1 = [
      sub { "DUMMY" },
      1,
      2
    ];

从测试结果可见:在子例程f中调用shift()取出了自身@_的第一个元素(即匿名子程序),但当将@_传递给该匿名子程序时,参数列表却包含了调用f时传入的全部原始参数。这一现象验证了上述特性。

内容的提问来源于stack exchange,提问作者mpapec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:47:07