サブルーチンリファレンス
しばらく前に書いたコードを眺めてたら、あまりにも変態的なのでちょっと晒しておきます。
my $prev_file = sub { (my $current = shift)--; return "$html_filename$current.html"; }; my $next_file = sub { (my $current = shift)++; return "$html_filename$current.html"; }; ... $PREV_FILE = $prev_file->($current_page); $NEXT_FILE = $next_file->($current_page);
en passantでs/foo/bar/
とかは結構見るけど、インクリメント・デクリメントするようなコードはあんまり見た記憶がないです。Best Practiceからはかけ離れてる。dankogai氏が見たら怒り狂いそうな気がしないでもないですが、書き直すのもいいアイデアがないので放置。
$PREV_FILE = "$html_filename@{[$current_page - 1]}.html"; $NEXT_FILE = "$html_filename@{[$current_page + 1]}.html";
なんてやるのとどっちもどっちだよねぇ… こういう場合のBest Practiceってどう書けばいいんだろう?