やはりとんでもない,Storable

どうやらPerlはプログラムコードもシリアライズできるらしい.たぶん,スクリプト OR バイトコード のままシリアライズ化して,デシリアライズはevalで評価するんでしょ.

サンプル:Hello World

perl -MStorable -e '$Storable::Deparse = 1; $a = sub { print "Hello World\n" }; store \$a, "hello_world.bin";'

perl -MStorable -e '$Storable::Eval = 1; $a = retrieve("hello_world.bin"); &$$a();'

ファイルに吐くだけじゃなく,メモリにも展開できるらしい.
詳しくは

Storable - Perlデータ構造体の永続化
http://perldoc.jp/docs/modules/Storable-2.05/Storable.pod


つまり,プログラムコードをメモリにシリアライズ化して,ネットワークで転送してデシリアライズして実行すれば,リモート実行やRPCやマスターワーカーモデルなど結構簡単に書ける.まあ,パフォーマンスはどうか知らないけどw