Perl 多重赋值中的一次性变量

Perl 多重赋值中的一次性变量,perl,Perl,假设我有一个函数foo,它返回一个固定长度的列表,我将返回的列表分配给一些变量,如下所示: ($duck, $lemonade, $stand, $grapes) = foo($waddle); 但后来我发现我其实并不想要$lemonade。我可以用下划线来代替它,表示我不需要这个值(它在其他一些编程语言中用于此目的),但由于它在Perl中有一个隐含的特殊含义,我认为它可能是从混乱到完全糟糕的任何东西 Perl对这种“一次性”变量有约定吗,还是有一种更合适的方法?或者更确切地说,考虑到这是Pe

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

($duck, $lemonade, $stand, $grapes) = foo($waddle);
但后来我发现我其实并不想要
$lemonade
。我可以用下划线来代替它,表示我不需要这个值(它在其他一些编程语言中用于此目的),但由于它在Perl中有一个隐含的特殊含义,我认为它可能是从混乱到完全糟糕的任何东西


Perl对这种“一次性”变量有约定吗,还是有一种更合适的方法?或者更确切地说,考虑到这是Perl,还有什么其他方法呢?

您可以这样做,以明确哪些值将被丢弃:

use strict;
use warnings;

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

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

print "$one $three\n"; # prints "1 3"

您可以这样做以明确哪些值将被丢弃:

use strict;
use warnings;

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

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

print "$one $three\n"; # prints "1 3"

second undef实际上并不需要Right,但它确实表明您没有意外地忽略它。second undef实际上并不需要Right,但它确实表明您没有意外地忽略它。刚刚提出了相关的问题并准确地回答了这个问题刚刚提出了相关的问题并准确地回答了这个问题