pao - Perl Array Operators
id:tokuhiromに触発されてPerlVM拡張モジュールを書いてみた。
http://www.ipe.tsukuba.ac.jp/~s0710509/pao-0.01.tar.gz *1
これでRubyのように配列演算ができる。
use pao; $a = [1, 2, 3] + [4]; # => [1, 2, 3, 4] $a = [1, 2, 3] - [2]; # => [1, 3] $a = [1, 2, 3] & [2]; # => [2] $a = [1, 2, 3] | [1, 2, 3, 4]; # => [1, 2, 3, 4]
ところで,VMに直接手を加えるのでさぞ高速だろうと思いきや,下手をすると同様の処理をPurePerlでするよりも遅かったりする*2。まさに「Perlの代わりにCを書くことなかれ」を実感してしまった。
なお,Perl5.10で導入されたレキシカルプラグマ機能を使っているので5.10でしか動かない。