2020年6月25日木曜日

開発環境

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

コード

#!/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}{'all'} += $bytes;
 $total_bytes{$src}{$dst} += $bytes;
}
foreach my $src (sort {
                  $total_bytes{$b}{'all'} <=> $total_bytes{$a}{'all'}
              } keys %total_bytes) {
 say "$src: $total_bytes{$src}{'all'}";
 my %dsts = %{$total_bytes{$src}};
 foreach my $dst (sort {
                         $dsts{$b} <=> $dsts{$a}
                  } keys %dsts) {
  next if $dst eq 'all';
  say "$src => $dst: $dsts{$dst}"
 }
}

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

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

0 コメント:

コメントを投稿