2012年4月25日水曜日

開発環境

『続・初めてのPerl 改訂版』(Randal L. Schwartz, brian d foy, Tom Phoenix 著、伊藤 直也田中 慎司吉川 英興 監訳、株式会社ロングテール/長尾 高弘 訳、オライリー・ジャパン、2006年、ISBN4-87311-305-9) の8章(ファイルハンドルへのリファレンス), 8.6(練習問題)2を解いてみる。

2.

やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))

コード(TextWrangler)

#!/usr/bin/env perl
use strict;
use warnings;
use IO::File;

my %hash = ();
while(<>){
  next unless /^(\w+):/;
  my $name = lc $1;
  my $fh = $hash{$name} ||=
    IO::File->new(">$name.info") || die;
  print $fh $_;
}

入出力結果(Terminal)

$ ./sample.pl log_file.txt
$ ls *.info
gilligan.info lovey.info monkeyman.info skipper.info
ginger.info maryann.info professor.info thurston.info
$ cat gilligan.info
Gilligan: 1 coconut
Gilligan: 1 banana
Gilligan: 1 banana
Gilligan: 1 papaya
Gilligan: 1 kiwifruit
Gilligan: 2 mangoes
Gilligan: 1 kiwifruit
Gilligan: 2 kiwifruits
Gilligan: 2 mangoes
Gilligan: 1 mango
Gilligan: 1 kiwifruit
Gilligan: 1 kiwifruit
Gilligan: 1 coconut
Gilligan: 1 coconut
Gilligan: 1 coconut
Gilligan: 1 coconut
Gilligan: 2 papayas
Gilligan: 1 mango
Gilligan: 3 bananas
Gilligan: 1 kiwifruit
Gilligan: 1 papaya
Gilligan: 1 kiwifruit
Gilligan: 1 kiwifruit
Gilligan: 1 banana
Gilligan: 2 bananas
Gilligan: 2 kiwifruits
Gilligan: 4 coconuts
Gilligan: 3 mangoes
Gilligan: 2 coconuts
Gilligan: 2 kiwifruits
Gilligan: 1 kiwifruit
Gilligan: 1 mango
Gilligan: 1 coconut
Gilligan: 1 coconut
$

0 コメント:

コメントを投稿