導入
sub 名前 { ... } で処理に名前をつけます。呼び出すときは 名前(引数) です。渡した引数は、サブルーチンの中で特殊配列 @_ に入っています。
説明
引数を受け取る定番は、@_ の先頭から順に取り出す shift です(引数なしの shift は @_ を対象にします)。
use strict;
use warnings;
sub greet {
my $name = shift; # @_ の先頭を取り出す
print "こんにちは、$name さん!\n";
}
greet("Alice");
greet("Bob");
複数の引数は、my ($a, $b) = @_; とまとめて受け取るのがきれいです。
use strict;
use warnings;
sub introduce {
my ($name, $age) = @_;
print "$name($age歳)\n";
}
introduce("Carol", 28);
やってみよう
greet に渡す名前を変えたり、introduce の引数を増やしたりして動きを確かめましょう。
演習
say_hello というサブルーチンを定義し、引数で受け取った名前を使って Hi, 名前! と表示するようにして、say_hello("Perl") を呼び出してください(結果は Hi, Perl!)。
ヒント1を見る
sub say_hello { my $name = shift; print "Hi, $name!\n"; } のあと say_hello("Perl");。