極悪です。
藤岡和夫 さんの [TSperl:468] Re: Perlクックブック第二版 から
>終わりを書き直して件数の部分だけを抜き出すと、
>
>第1版: 334件
>第2版: 414件
>同一タイトル数: 94件
>減少タイトル数: 240件
>増加タイトル数: 320件
そですね。
dune さんの [TSperl:465] Re: Perlクックブック第二版 から
>第1版 380 件、第二版 303 件。レシピ数だけを比べると二分冊に
>なった第二版のほうが内容が減っている。不思議だ。
↑は、第一版と第二版のデータが逆でした。直して同じ体裁で出力
するとこんなかんじ。
D:% perl hoge.pl
第1版:333 件
第2版:413 件
同一タイトル数:112 件
減少タイトル数:221 件
増加タイトル数:301 件
D:%
数値が違うのは翻訳の揺れを除こうとして、s/\p{InHiragana}//g;
とかやってるためで、それをコメントアウトすると、
D:% perl hoge.pl
第1版:334 件
第2版:414 件
同一タイトル数:94 件
減少タイトル数:240 件
増加タイトル数:320 件
D:%
一致しました。
use strict;
use encoding "sjis", STDOUT => "sjis";
sub ext_title{
local $_ = shift;
return() unless( ($_) = m/(?:レシピ|プログラム).+\t+(.+)/g );
my $title = $_;
if(1){
#「CPANモジュールのビルドとインストール」と
#「CPANモジュールをビルドおよびインストールする」を同一視
s/\p{InHiragana}//g;
s/\p{Punct}//g;
}
return($title,$_);
}
my(%book,%title);
open(FILE,"<:encoding(sjis)","Cook1Index.txt") or die;
while(<FILE>){
if(my($title,$shorten_title) = ext_title($_)){
$book{$shorten_title} |= 0x01;
$title{$shorten_title} = $title;
}
}
close FILE;
open(FILE,"<:encoding(sjis)","Cook2Index.txt") or die;
while(<FILE>){
if(my($title,$shorten_title) = ext_title($_)){
$book{$shorten_title} |= 0x02;
$title{$shorten_title} = $title;
}
}
close FILE;
my @prefix = qw/xx -- ++ ==/;
my @count;
foreach my $shorten_title (sort keys %book){
# print "$prefix[$book{$shorten_title}] $title{$shorten_title}\n";
++$count[$book{$shorten_title}];
}
print <<"__AOUT__";
第1版:@{[ $count[1]+$count[3] ]} 件
第2版:@{[ $count[2]+$count[3] ]} 件
同一タイトル数:@{[ $count[3] ]} 件
減少タイトル数:@{[ $count[1] ]} 件
増加タイトル数:@{[ $count[2] ]} 件
__AOUT__
--
極悪, FZH01112 at nifty.com
http://hpcgi1.nifty.com/dune/gwiki.pl?