末尾再帰は?

% cat tail.php
<?php
  function loop(){
    static $count = 0;
    echo "loop ", ++$count, "\n";
    if($count<10000) loop();
  }
  loop();
?>
% php tail.php
loop 1
loop 2
...
loop 6155
loop zsh: segmentation fault  php tail.php

ですよねー。

% cat tail.pl
our $count = 0;
sub loop{
  print ++$count, "\n";
  loop();
}
loop();
% perl tail.pl
1
2
3
...
135752
135753
135754
...

perlさんはわりとやってくれるんだなあ。

test