在 Perl 中对先前定义的变量进行多次赋值

Multiple assign to previously defined variables in Perl

提问人:melkun 提问时间:6/8/2022 最后编辑:rlandstermelkun 更新时间:6/14/2022 访问量:154

问:

如何在Perl中为先前声明的变量分配返回值?有没有办法做这样的事情:

use strict;
use warnings;
my ($a, $b, $c) = first_assign();
 # let's say $a = "a", $b = "b", $c = "c"

($a, $b, $c) = second_assign();

# let's say we expect them to be "aa", "bb" and "cc" correspondingly

在这种情况下,所有这些变量都将等于 ''。那么,有没有一些特殊方法可以一次分配给许多以前声明的呢?

Perl 多重赋值

评论


答:

0赞 Robby Cornelissen 6/8/2022 #1

只需从赋值方法中返回一个元组:

use strict;
use warnings;

my ($a, $b, $c) = first_assign();
print "a = $a, b = $b, c = $c\n";

($a, $b, $c) = second_assign();
print "a = $a, b = $b, c = $c\n";

sub first_assign {
  return ('a', 'b', 'c');
}

sub second_assign {
  return ('aa', 'bb', 'cc');
}

这将产生以下输出:

a = a, b = b, c = c
a = aa, b = bb, c = cc

评论

0赞 melkun 6/9/2022
这很简单......谢谢!