perl - 'shift' 对处理 Perl 子程序参数是否有害?

标签 perl parameters shift iterable-unpacking

我经常使用shift解包函数参数:

sub my_sub {
    my $self = shift;
    my $params = shift;
    ....
}

但是,我的许多同事都在宣扬 shift实际上是邪恶的。你能解释一下为什么我更喜欢
sub my_sub {
    my ($self, $params) = @_;
    ....
}

shift ?

最佳答案

它不是邪恶的,它是一种品味之类的东西。您会经常看到一起使用的样式:

sub new {
    my $class = shift;
    my %self = @_;
    return bless \%self, $class;
}

我倾向于使用 shift当有一个论点或当我想以不同于其他论点的方式对待前几个论点时。

关于perl - 'shift' 对处理 Perl 子程序参数是否有害?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328411/

相关文章:

oracle - DBD::Oracle - PL/SQL block 不起作用

python - 如何在 Python 中控制函数的参数精度

r - 如何在 R 中的 data.table 中使用具有累积值的移位计算

javascript - Ctrl 或 Shift 对每个浏览器中 anchor 标记的 `onclick` 事件的影响

javascript - 在 for 循环中错误地传递回调参数

variables - 16 位变量中的 12 位有符号值处理

perl - 如何获取 WWW::Mechanize 中所关注链接的内容?

perl - 将哈希分配给哈希

regex - 日志文件中的百分比差异

asp.net-mvc - 使用带有操作参数的 ASP.NET MVC 子 Controller ?