作者: dune
日時: 2004/1/01(02:02)
極悪です。

Ueta Masayuki さんの [TSfree:584] Re: 欄区切りのソート から
>(改行が欄の区切りで、空行がレコードの区切り)

それでは、各レコードは空行で区切られており、ひとつのレコード
は改行で区切られた複数のフィールドから成ってる、ということで。

D:% cat sort_fields2.pl
use Sort::Fields;
$/ = "";
my @paragraph = grep(s/\n*\Z/\n\n/,<STDIN>);
print fieldsort([@ARGV,0],@paragraph);

D:% cat hoge2.txt
お
け
さ

え
こ
し

う
く
せ

あ
か
そ

い
き
す
D:% perl sort_fields2.pl 3 < hoge2.txt
お
け
さ

え
こ
し

い
き
す

う
く
せ

あ
か
そ


D:%

Sort::Fields::fieldsort() の中身は Schwartz 変換なので、
速さを競うなら Guttman-Rosler 変換にしたほうがよさげです。
-- 
FZH01112 at nifty.com
http://hpcgi1.nifty.com/dune/gwiki.pl?