サブルーチンのやり直し!? [基礎編]
★ 自己啓発本ってキライじゃないのに、あんまり読んだことないんです。
昔、試しに読んでみたら翻訳本だったんだけど、やたらと「神」がどうのってあって、
宗教本と勘違いしてしまったんですよね(^_^;)
サブルーチンの基本はとりあえず大丈夫そうかなぁ、と思ってたんだけど
ビンゴ中西さんにとても重要なことを教えていただきました↓
第124回 サブルーチンの頭に&は普通つけない-bingo_nakanishiの多言語出身者のためのPerl入門
サブルーチンを呼び出すとき、何も疑わずに「&」を先頭につけてたんだけど、
Perl5 ではつけないんですって。で、最後に()をつけるんですって。
そうか……私が参考にさせていただいていたサイトはみんな
Perl5 以前がベースになってたんですねぇ。
でも私としては「sub」と「&」があればサブルーチン、みたいに捉えてたから
何だか不安に感じてしまいます(^_^;)
まぁ「sub」があるから分かるでしょうけどね。
一応今までやった例のいくつかを、確認のために書き直してみました↓
#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";
$age1 = 60;
$age2 = 38;
$age3 = 35;
$age4 = 45;
ages();
sub ages
{
$total = $age1 + $age2 + $age3 + $age4;
$average = $total/4;
print "平均年齢は$average歳ですよ♪";
}
結果はこちら↓
平均年齢は44.5歳ですよ♪
次はこちら↓
#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";
($total, $average) = ages(60, 38, 35, 45);
print "平均年齢は$average歳ですよ♪";
sub ages
{
($a1, $a2, $a3, $a4) = @_;
$total = $a1 + $a2 + $a3 + $a4;
$average = $total/4;
return($total, $average);
}
結果はこちら↓
平均年齢は44.5歳ですよ♪
これも修整しました↓
#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";
sub like
{
my $bug = "ゴキブリ";
print "嫌いな虫は$bugです(>_<)<BR>\n";
}
$bug = "クモ";
like();
print "好きな虫は$bugです(^^)<BR>\n";
結果はこちら↓
嫌いな虫はゴキブリです(>_<)
好きな虫はクモです(^^)
あとこれも↓
#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";
@scores = (100, 95, 90);
total(@scores);
average(@scores);
sub total
{
($score1, $score2, $score3) = @_;
$total = $score1 + $score2 + $score3;
print "合計点は$total点ですよ♪<BR>\n";
}
sub average
{
($score1, $score2, $score3) = @_;
$total = $score1 + $score2 + $score3;
$average = $total/3;
print "平均点は$average点ですよ♪<BR>\n";
}
結果はこちら↓
合計点は285点ですよ♪
平均点は95点ですよ♪
あとは慣れですかね……問題はなさそうです。
ビンゴ中西さんのこちらの記事でも勉強させていただきました↓
第120回 Perlらしく書くための5つの極意-bingo_nakanishiの多言語出身者のためのPerl入門
サブルーチンで「&」じゃなく()を使い、組み込み関数では逆に()を使わなければ、
自分で作成したユーザ関数なのか、それとも組み込み関数なのかが
一目で分かって便利というメリットもあるんですね。
私は組み込み関数にけっこう()を使ってるかも(^_^;)
何か自分の中で、括弧の中は引数!ってくくっといた方が理解しやすい気がして……。
ないと落ち着かないというか……。
でも使うのやめた方がいいのかもしれませんね。
これもきっと慣れですもんね。
最後に、ビンゴ中西さん、ありがとうございました!
<お知らせ>----------------------------------------------------------------
The Writing Master Class.(コピーライティングマスタークラス) 25,000円
----------------------------------------------------------------<お知らせ>
The Writing Master Class.(コピーライティングマスタークラス) 25,000円
----------------------------------------------------------------<お知らせ>
2012-06-10 16:06
nice!(0)
コメント(0)
コメント 0