Hatena::Grouparaistudy

iwasekiの日記

2007-05-31

[]4章 サブルーチン(その7) はてなブックマーク - 4章 サブルーチン(その7) - iwasekiの日記

練習問題

練習問題1
#!/usr/bin/perl

use strict;

sub total{
        my $sum;
        foreach (@_){
                $sum += $_;
                }
        $sum;
}


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: ";
my $user_total = &total(<STDIN>);
print "The total of those numbers is $user_total.\n";

実行結果

The total of @fred is 25.
Enter some numbers on separate lines: 1
2
3
4
5
The total of those numbers is 15.

二項代入演算子(+=)が苦手だったりする。・・・慣れかなぁ。

練習問題2
#!/usr/bin/perl

use strict;

sub total{
        my $sum;
        foreach (@_){
                $sum += $_;
                }
        $sum;
}


my @list = 1..1000;
my $out = &total(@list);
print "$out\n";

実行結果

500500

解答を読んでみて凹む。つまりこれでいいということ。

#!/usr/bin/perl

use strict;

sub total{
        my $sum;
        foreach (@_){
                $sum += $_;
                }
        $sum;
}

print &total(1..1000), "\n";

なんでも変数配列ばかり使うのはPerlerっぽくない、ということか。もっとスマートに美しく!・・・道程は長く険しい。