本文へスキップ
BecomeCoder

Perlコース · 第6章 サブルーチン · レッスン19

サブルーチンの定義 ― sub と @_

ブラウザで完結

導入

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");

実際に動かしてみよう

下のエディタにPerlを書いて「実行」を押すと、学習用シミュレータが print / say の出力を表示します(本物のperlではなく、教材の範囲を再現した軽量なエンジンです)。スカラ/配列/ハッシュ・制御構文・サブルーチン・正規表現(=~ / s///)なども動きます。本文の例を書き換えて動かしてみましょう(ファイル入出力・リファレンス・CPANモジュールなど一部の機能は対象外です)。

Perl — ブラウザ内で実行(学習用シミュレータ)

Perlの教材サブセットを動かす学習用シミュレータを読み込みます(本物のperlではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。