『Rubyによるデザイン・パターン』を読み終えて内部DSLが分かった気になった。調子に乗ってPackRat*1をPerlに移植してみた。少しPerl風にアレンジ。
まず、内部DSLから。
# 内部DSL(backup.pr) backup { from => '/home/hoge/old1', to => '/tmp/backup', file_regx => '^.+\.(txt|doc)$', interval => 60, }; backup { from => '/home/hoge/old2', to => '/tmp/backup', file_regx => '^.+\.(mp3|wav)$', interval => 30, };
バックアップの定義を行っている。もちろん文法はPerlに従う。そして、内部DSLを実行する部分は次のとおり。
続きを読む