Perl の学習を始めたばかりで、この演習 (Perl の学習の第 4 章から) に戸惑っています。
greet() サブルーチンの開始時に、引数 $_ を $name (my $name = $_) 変数に割り当てようとしていますが、うまくいきません。この本には、「私の名前 = shift;」を使用するように書かれています。しかし、理由がわかりません。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' );