#!./perl BEGIN { chdir 't' if -d 't'; require './test.pl'; set_up_inc('../lib'); } is( 1 ? 1 : 0, 1, 'compile time, true' ); is( 0 ? 0 : 1, 1, 'compile time, false' ); $x = 1; is( $x ? 1 : 0, 1, 'run time, true'); is( !$x ? 0 : 1, 1, 'run time, false'); # This used to SEGV due to deep recursion in Perl_scalar(). # (Actually it only SEGVed with the depth being about 100_000; but # compiling the nested condition goes quadratic in some way, so I've # reduced to the count to a manageable size. So this is not so much a # proper test, as it is a comment on the sort of thing that used to break) { my $e = "1"; $e = "(\$x ? 1 : $e)" for 1..20_000; $e = "\$x = $e"; eval $e; is $@, "", "SEGV in Perl_scalar"; } done_testing();