やはりとんでもない,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