開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『続・初めてのPerl 改訂版』(Randal L. Schwartz, brian d foy, Tom Phoenix 著、伊藤 直也、田中 慎司、吉川 英興 監訳、株式会社ロングテール/長尾 高弘 訳、オライリー・ジャパン、2006年、ISBN4-87311-305-9) の5章(リファレンスとスコープ), 5.9(練習問題)2を解いてみる。
2.
やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))
コード(TextWrangler)
#!/usr/bin/env perl
use strict;
use warnings;
my %total_bytes;
my $total = 'total';
while(<>){
next if /^#/;
my ($source, $destination, $bytes) = split;
$total_bytes{$source}{$destination} += $bytes;
$total_bytes{$source}{$total} += $bytes;
}
for my $source ( sort {
$total_bytes{$b}{$total} <=> $total_bytes{$a}{$total}
} keys %total_bytes){
print "$source: $total_bytes{$source}{$total} bytes\n";
for my $destination (sort {
$total_bytes{$source}{$b} <=> $total_bytes{$source}{$a}
} keys %{ $total_bytes{$source} }){
next if $destination eq 'total';
print "\t=> $destination:",
" $total_bytes{$source}{$destination} bytes\n";
}
print "\n";
}
入出力結果(Terminal)
$ ./sample.pl coconet.dat lovey.howell.hut: 1139833 bytes => laser3.copyroom.hut: 212456 bytes => professor.hut: 175065 bytes => ginger.girl.hut: 158084 bytes => maryann.girl.hut: 155080 bytes => thurston.howell.hut: 141790 bytes => skipper.crew.hut: 119766 bytes => fileserver.copyroom.hut: 98926 bytes => gilligan.crew.hut: 78666 bytes gilligan.crew.hut: 983860 bytes => laser3.copyroom.hut: 240327 bytes => maryann.girl.hut: 145361 bytes => skipper.crew.hut: 118827 bytes => lovey.howell.hut: 107152 bytes => professor.hut: 101219 bytes => thurston.howell.hut: 97398 bytes => fileserver.copyroom.hut: 90369 bytes => ginger.girl.hut: 83207 bytes ginger.girl.hut: 968495 bytes => laser3.copyroom.hut: 179803 bytes => lovey.howell.hut: 170948 bytes => maryann.girl.hut: 152634 bytes => professor.hut: 110300 bytes => thurston.howell.hut: 105940 bytes => skipper.crew.hut: 103592 bytes => fileserver.copyroom.hut: 79551 bytes => gilligan.crew.hut: 65727 bytes maryann.girl.hut: 846806 bytes => laser3.copyroom.hut: 161843 bytes => lovey.howell.hut: 145271 bytes => ginger.girl.hut: 126902 bytes => thurston.howell.hut: 123456 bytes => professor.hut: 109526 bytes => skipper.crew.hut: 75155 bytes => fileserver.copyroom.hut: 63807 bytes => gilligan.crew.hut: 40846 bytes professor.hut: 821931 bytes => laser3.copyroom.hut: 172882 bytes => lovey.howell.hut: 123396 bytes => ginger.girl.hut: 113685 bytes => maryann.girl.hut: 94786 bytes => thurston.howell.hut: 94363 bytes => skipper.crew.hut: 86642 bytes => gilligan.crew.hut: 82825 bytes => fileserver.copyroom.hut: 53352 bytes fileserver.copyroom.hut: 770174 bytes => lovey.howell.hut: 160986 bytes => professor.hut: 146975 bytes => ginger.girl.hut: 103478 bytes => maryann.girl.hut: 99261 bytes => skipper.crew.hut: 88261 bytes => thurston.howell.hut: 86084 bytes => gilligan.crew.hut: 85129 bytes thurston.howell.hut: 619077 bytes => laser3.copyroom.hut: 129628 bytes => maryann.girl.hut: 105137 bytes => lovey.howell.hut: 82972 bytes => professor.hut: 78576 bytes => skipper.crew.hut: 66538 bytes => ginger.girl.hut: 58580 bytes => gilligan.crew.hut: 56658 bytes => fileserver.copyroom.hut: 40988 bytes skipper.crew.hut: 481951 bytes => professor.hut: 108779 bytes => laser3.copyroom.hut: 89505 bytes => ginger.girl.hut: 77621 bytes => maryann.girl.hut: 71880 bytes => lovey.howell.hut: 43427 bytes => thurston.howell.hut: 41726 bytes => gilligan.crew.hut: 29142 bytes => fileserver.copyroom.hut: 19871 bytes $
0 コメント:
コメントを投稿