Perl大名
どんな大きな入力ファイルも、*とりあえず配列に* 読み込んでしまおうとす
る、きわめてものぐさなプログラマのこと。
さらにそれを単語毎とか、一文字毎とかの配列に無造作に分割してしまうこと
も多々ある。(だって楽なんだもん)
そういうスクリプトを実行するとたいてい、ディスクがいつまでもカラカラ音
をたてているものだが、これは決して入力ファイルを読み込んでいるわけでは
なく、他のプロセスがディスクに追いやられて断末魔の叫びを上げているので
ある。
例:
@input_chars = split( "", join( "\n", <> ));
for $a_char ( @input_chars ) {
do something( $a_char );
}
<HFC02067@nifty.ne.jp>
<cake-smd@ops.dti.ne.jp>
Copyright (C) Cake
uniq -u
uniq -u と同じ働きをするPerlスクリプト。
while(<>){
$lines{$_}++;
}
foreach (keys %lines){
if ($lines{$_} == 1){
print $_;
}
}
uniq は重複行を単一行にまとめる機能を持つテキスト処理ツール。-uは単一行のみを出力するオプション。
ついでにおまけ。cat a.txt ... | sort | uniq の機能を持つPerlスクリプト。
while(<>){
push(@lines,$_);
}
@sortedlines = sort @lines;
print $sortedlines[0];
for ($i=1;$i<@sortedlines;$i++){
if($sortedlines[$i] ne $sortedlines[$i-1]){
print $sortedlines[$i];
}
}
(C)jscripter