多次分配中的丢失变量

jay*_*ica 1 perl

假设我有一个foo返回固定长度列表的函数,并将返回的列表分配给少数变量,如下所示:

($duck, $lemonade, $stand, $grapes) = foo($waddle);
Run Code Online (Sandbox Code Playgroud)

但事实证明,我实际上并不想要$lemonade.我可以用下划线替换它来说我不需要值(它在其他一些编程语言中用于此目的),但由于它在Perl中具有隐含的特殊含义,我认为它可能是混乱的完全不好.

Perl是否有这种"一次性"变量的约定,或者是否有更多的Perly(perlish?)方式?或者更确切地说,鉴于这是Perl,还有其他方法吗?

oal*_*ers 5

你可以做这样的事情来明确你丢弃的值:

use strict;
use warnings;

sub foo {
    return ( 1..4 );
}

my ( $one, undef, $three, undef ) = foo();

print "$one $three\n"; # prints "1 3"
Run Code Online (Sandbox Code Playgroud)

  • 是的,但它确实表明你没有意外地忽略它. (2认同)