[perl] 一方通行call/cc
perlのgotoはlexical scopeではなくdynamic scopeだという事を知った。
具体的にはどういう事かというと、こういう事ができるという事。
sub goto_label { goto LABEL } { print 1; goto_label(); print 2; LABEL: print 3; } { print 4; goto_label(); print 5; LABEL: print 6; }
それを知ったので、gotoを使って、一方通行call/ccを作ってみた。あんまり動作確認はしてない。