TWクラブ【BloodyRosary】@11.サブルーチン
・普通のサブルーチン呼び出し
例
$x = 80;
$y = 55;
$z = 75;
&answer; 呼び出しは& + 名前 でやる
sub answer {
$total = $x + $y + $z;
$mean = $total / 3;
print "合計点数は$total点で、平均点数は$mean点です。\n";
}
・引数と戻り値
例
&answer(80, 55, 75); @list などの配列でもOK
sub answer {
($x, $y, $z) = @_; 引数は@_に格納されている
$total = $x + $y + $z;
$mean = $total / 3;
print "合計点数は$total点で、平均点数は$mean点です。\n";
}
($total, $mean) = &answer(80, 55, 75);
print "合計点数は$total点で、平均点数は$mean点です。\n";
sub answer {
($x, $y, $z) = @_;
$total = $x + $y + $z;
$mean = $total / 3;
return ($total, $mean); 戻り値は普通に、こんな感じで渡せる
}
・局所化
例
my $word = "雨";
local $word = "雨";
my と local の違い
localの場合、サブルーチンから呼び出したサブルーチンからは参照が可能。
myは参照できない。
これはサイトみたほうが早い
http://www.kent-web.com/perl/chap8.html
・参照渡し
例
my $name = "dell";
print "$name \n";
my $name_out = name_plus(\$name); 参照渡しは \ を前につける
print "$name_out \n";
sub name_plus {
my $name_in = shift;
$$name_in = "$$name_in さん"; 参照するには前に$をさらにつける。 dell を dellさん にしている
return $$name_in;
}
<出力結果>
dell
dell さん
ちなみに間違えて参照を渡してしまうと…
return $name_in;
<出力結果>(端末により違うとは思うが)
dell
SCALAR(0x1d8a0010) こんな感じのが出てくる
プロトタイプについて
http://perl-users.jp/modern_introduction_perl/sub_prototype.html
Perl目次に戻る
別館TOPに戻る
ブログに戻る

Presents by 【BloodyRosary】
Copyrights (C) NEXON Corporation and NEXON Co., Ltd.
All Rights Reserved.