Perl6 Feed Operator 左右自在に流れるパイプライン!

http://perl6advent.wordpress.com/2010/12/10/day-10-feed-operators/

Unixのパイプラインって左から右に流れる:


cat hoge.log | grep foo | sed 's/.*foo//' | cut -f2 | sort | uniq -c

ところが、perlのパイプと言うかリスト処理のチェーンは右から左に流れる。


my @new = sort { ... } map { ... } grep { ... } @original;
関数の組合せは右から左なので仕方ない。しかしシックリこない。


Perl6には「feed operator」ってのがあって、方向を明示的に表わす:


my @new <== sort { ... } <== map { ... } <== grep { ... } <== @original;
これなら方向を間違えて読むことはない。


しかし、Perl6はそれぐらいじゃスマさない。逆行も可能なのだ!


@original ==> grep { ... } ==> map { ... } ==> sort { ... } ==> my @new;
Unixのパイプ愛用者としては嬉しい表記法だ。


ツイッターの誰かが言っていたようにキモさが衰えないPerlだ。