これはなに? Sub::Pipe は非常に小粒なモジュールです。どれぐらい小粒かというと、本質部分は package Sub::Pipe; use overload '|' => sub { $_[0]->( $_[1] ) }; sub joint(&) { bless $_[0], __PACKAGE__ }; この 3行のみ、というぐらい小粒なわけですが、なかなかおもしろいモジュールじゃないかと思っています。 Sub::Pipe を使うと、UNIX pipe のような記法で適用する関数を作成できます。 use Sub::Pipe; sub trim { joint { my $str = shift; $str =~ s/^\s+|\s+$//g; return $str; } } $foo = " foo " | trim; # is $foo, "foo" これは文字列の前後の空