http://qiita.com/tag1216/items/25ff0f957340c54ae73c Perl6 だと eval が EVAL になってるのと、文字列結合演算子が ~ になっているのと実行が異常に遅いこと以外は違いはない。 calc(1, 1); sub calc { my ($b, $n) = @_; if ($n==9) { say $b if EVAL($b) == 100; } else { for ('+', '-', '') { calc($b ~ $_ ~ ($n+1), $n+1); } } } Perl5 なら以下のように極めてわかりやすく記述することが可能。 my $x = 1; for ('+', '-', '') { my $x = $x . $_ . 2; for ('+', '-', '') { my $x = $x . $_ . 3; for