導入
サブルーチンは return で結果を返せます。Perl では複数の値をまとめて返せるのが便利なところです。
説明
return 式; で値を返します。返した値は呼び出し側で受け取れます。
use strict;
use warnings;
sub add {
my ($x, $y) = @_;
return $x + $y;
}
my $result = add(3, 5);
print "$result\n"; # 8
print add(10, 20), "\n"; # 30(直接使ってもよい)
リストで返せば、複数の結果を一度に受け取れます。
use strict;
use warnings;
sub min_max {
my @sorted = sort { $a <=> $b } @_;
return ($sorted[0], $sorted[-1]); # 最小と最大
}
my ($min, $max) = min_max(3, 9, 1, 7);
print "最小 $min / 最大 $max\n"; # 最小 1 / 最大 9
やってみよう
add に渡す数を変えたり、min_max の引数を増やしたりして結果を確かめましょう。
演習
2つの数を受け取り、その積を返すサブルーチン multiply を定義し、multiply(6, 7) の結果を表示してください(結果は 42)。
ヒント1を見る
sub multiply { my ($x, $y) = @_; return $x * $y; } のあと print multiply(6, 7), "\n";。