初めてのPerl 第4章
この本の説明だと少しやっかいもの扱いされてる感じだったけど、local演算子でダイナミックスコープが実現できる部分は JavaScript に似てて面白いなと思った。
ex04-1.pl
#!/usr/bin/perl -w use strict; sub total { my $sum_of_all = 0; foreach (@_) { $sum_of_all += $_; } $sum_of_all; } my @fred = qw{1 3 5 7 9}; my $fred_total = &total(@fred); print "The total of \@fred is $fred_total.\n"; print "Enter some numbers on separate lines:\n"; my $user_total = &total(<STDIN>); print "The total of those numbers is $user_total.\n";
反省点
$sum_of_all; をサブルーチンの最後に書かなかったら、戻り値が恐らく undef になっていたらしく、何も表示されなかった。最後に評価された式が「foreach (@_)」だったからかな?