SSブログ

サブルーチンのやり直し!? [基礎編]


★ 自己啓発本ってキライじゃないのに、あんまり読んだことないんです。
昔、試しに読んでみたら翻訳本だったんだけど、やたらと「神」がどうのってあって、
宗教本と勘違いしてしまったんですよね(^_^;)


サブルーチンの基本はとりあえず大丈夫そうかなぁ、と思ってたんだけど
ビンゴ中西さんにとても重要なことを教えていただきました↓

第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入門

サブルーチンで「&」じゃなく()を使い、組み込み関数では逆に()を使わなければ、
自分で作成したユーザ関数なのか、それとも組み込み関数なのかが
一目で分かって便利というメリットもあるんですね。

私は組み込み関数にけっこう()を使ってるかも(^_^;)
何か自分の中で、括弧の中は引数!ってくくっといた方が理解しやすい気がして……。
ないと落ち着かないというか……。

でも使うのやめた方がいいのかもしれませんね。
これもきっと慣れですもんね。

最後に、ビンゴ中西さん、ありがとうございました!


<お知らせ>----------------------------------------------------------------

copywriting.jpg

The Writing Master Class.(コピーライティングマスタークラス) 25,000円

----------------------------------------------------------------<お知らせ>





nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。