ぱせらんメモ このページをアンテナに追加 RSSフィード

とあるWeb系ソフトウェアエンジニアのブログ。
いちおう技術系ネタ帳ということで、日記はあまり書かない。

2009-06-22

自然順ソートを行うPerlワンライナー

| 自然順ソートを行うPerlワンライナーを含むブックマーク 自然順ソートを行うPerlワンライナーのブックマークコメント

PHPの豊富すぎる組み込みの関数の中でも、natsort関数はかなり高機能な関数の一つだと思います。他の言語なら本体に組み込まれることは有り得ないのではないでしょうか。

今回のお題は、このnatsortを使ったワンライナーです。

(from hnwの日記


というわけで、PHPワンライナーは引用元を参照してもらうとして、同じことをPerlでやってみた。

さすがに本体には組み込まれてないので、Sort::Naturallyの力を借りてみた。

$ ls bin/php-* | perl -MSort::Naturally -e 'print nsort <>'
bin/php-5.0.0
bin/php-5.0.1
bin/php-5.0.2
bin/php-5.0.3
bin/php-5.0.4
bin/php-5.0.5
bin/php-5.1.0
bin/php-5.1.1
bin/php-5.1.2
bin/php-5.1.3
bin/php-5.1.4
bin/php-5.1.5
bin/php-5.1.6
bin/php-5.2.0
bin/php-5.2.1
bin/php-5.2.2
bin/php-5.2.3
bin/php-5.2.4
bin/php-5.2.5
bin/php-5.2.6
bin/php-5.2.7
bin/php-5.2.8
bin/php-5.2.9
bin/php-5.2.10
bin/php-5.3.0RC2
bin/php-5.3.0RC4

Perl本体のみでは解決できてないけど、cpanコマンドひとつでサクっと入れておけばワンライナーとして十分使える簡潔さかと。


実はSort::Naturallyはデフォルトcase-insensitiveなので、natsortではなくnatcasesort相当だったりする。

case-sensitiveにするにはcomparatorかlowercaserで小細工しないといけないので少し面倒かも。さすがPHP、かなわないぜ!

トラックバック - http://d.hatena.ne.jp/pasela/20090622/natsort
Connection: close