多次分配中的丢失变量

时间:2014-05-29 01:53:30

标签: perl

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

($duck, $lemonade, $stand, $grapes) = foo($waddle);

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

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

1 个答案:

答案 0 :(得分:5)

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

use strict;
use warnings;

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

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

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