While playing with perl in interactive mode, I experienced strange
memory error in Cygwin perl. Trying the same scenario on Linux boxes
results in perl being killed after using all memory (tested on machines
with 128 - 2048 MB RAM), but on Cygwin perl dies in a different way.
The following script was executed to run perl in interactive mode:
$ cat inter.pl
#!/usr/bin/perl
use Term::ReadLine;
use IO::Handle;
my $prompt = "perl> ";
my $term = new Term::ReadLine $prompt;
my $OUT = $term->OUT;
while ( defined($_ = $term->readline($prompt)) ) {
next unless /\S/;
eval $_;
chomp $@;
printf "%s\n", $@ if $@;
}
Now how perl died:
$ ./inter.pl
perl> sub foo($){$a=shift;foo($a+1);}
perl> foo 1
Out of memory during "large" request for 134221824 bytes, total sbrk()
is 273211392 bytes at (eval 18) line 1.
perl> foo 1
Out of memory during request for 67289644 bytes, total sbrk() is
394086400 bytes
!
Attempt to free unreferenced scalar: SV 0x1d079aec, Perl interpreter:
0x10140240 at (eval 18) line 1.
Segmentation fault (core dumped)