我刚刚开始学习 perl,我对这个练习感到困惑(来自学习 Perl 第 4 章)。
在 greet() 子例程的开头,我试图将参数 $_ 分配给我的 $name (my $name = $_) 变量,但它不起作用。这本书说要使用“我的名字=班次;” 但我不明白为什么。shift 用于从数组中删除一个值,据我所知,我的参数不是数组,它是标量内的字符串!
谁能解释我不明白的地方?
谢谢!这是整个代码。
use 5.012;
use warnings;
use utf8;
sub greet {
my $name = $_;
state $last_person ;
if (defined $last_person ) {
print "Hi $name! $last_person is also here!\n";
} else {
print "Hi $name! You are the first one here!\n";
}
$last_person = $name;
}
greet( 'Fred' );
greet( 'Barney' );
greet( 'Wilma' );
greet( 'Betty' );