2020年6月26日金曜日

開発環境

続・初めてのPerl 改訂第2版 (Randal L. Schwartz(著)brian d foy(著)Tom Phoenix(著)伊藤 直也(監修)長尾 高弘(翻訳)、オライリージャパン)の5章(リファレンスとスコープ)、5.9(練習問題)3の解答を求めてみる。

コード

#!/usr/bin/env perl
use strict;
use warnings;
use v5.30;

my $filename = 'coconet.dat';

open my $in_fh, '<', $filename or die "can't open $filename: $!";
my %total_bytes;
while (<$in_fh>) {
 next if /\A#/;
 my ($src, $dst, $bytes) = split;
 $total_bytes{$src}{$dst} += $bytes;
}
foreach my $src (sort { $a cmp $b } keys %total_bytes) {
 say $src;
 my %dsts = %{$total_bytes{$src}};
 foreach my $dst (sort { $a cmp $b } keys %dsts) {
  say "\t$dst $dsts{$dst}";
 }
}

入出力結果(Zsh、PowerShell、Terminal)

% ./sample3.pl
fileserver.copyroom.hut
 fileserver.copyroom.hut 1026030
 gilligan.crew.hut 1151354
 ginger.girl.hut 956638
 laser3.copyroom.hut 1092608
 maryann.girl.hut 989869
 professor.hut 1002371
 skipper.crew.hut 956158
gilligan.crew.hut
 fileserver.copyroom.hut 1006399
 gilligan.crew.hut 933857
 ginger.girl.hut 1012723
 laser3.copyroom.hut 1027800
 maryann.girl.hut 1276577
 professor.hut 1013622
 skipper.crew.hut 966660
ginger.girl.hut
 fileserver.copyroom.hut 949221
 gilligan.crew.hut 993241
 ginger.girl.hut 1152020
 laser3.copyroom.hut 1078150
 maryann.girl.hut 1018548
 professor.hut 914678
 skipper.crew.hut 1119766
laser3.copyroom.hut
 fileserver.copyroom.hut 1007034
 gilligan.crew.hut 1029793
 ginger.girl.hut 952001
 laser3.copyroom.hut 1044817
 maryann.girl.hut 923296
 professor.hut 954483
 skipper.crew.hut 1037091
maryann.girl.hut
 fileserver.copyroom.hut 1140533
 gilligan.crew.hut 1122049
 ginger.girl.hut 1065580
 laser3.copyroom.hut 986229
 maryann.girl.hut 965243
 professor.hut 954374
 skipper.crew.hut 1001870
professor.hut
 fileserver.copyroom.hut 930914
 gilligan.crew.hut 1073557
 ginger.girl.hut 1047250
 laser3.copyroom.hut 1018295
 maryann.girl.hut 1122947
 professor.hut 1114174
 skipper.crew.hut 1075693
skipper.crew.hut
 fileserver.copyroom.hut 1010486
 gilligan.crew.hut 1097882
 ginger.girl.hut 1041603
 laser3.copyroom.hut 1050796
 maryann.girl.hut 984691
 professor.hut 954445
 skipper.crew.hut 964162
%

0 コメント:

コメントを投稿