# New Ticket Created by "Stephen Simmons" # Please include the string: [perl #58294] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58294 >
I wrote a two argument max function, which uses an if/elsif/elsif/else tree; the third case in the statement fails but only when $a is negative; the rest succeed. The code is: sub max($a, $b) { if defined $a && defined $b { if $a >= $b { return $a } else { return $b } } elsif defined $a { return $a } elsif defined $b { return $b } else { return undef } } say "1 <" ~ max(3, 4) ~ ">"; say "2 <" ~ max(4, 3) ~ ">"; say "3 <" ~ max(-4, undef) ~ ">";#brokensay "3.5 <" ~ max(4, undef) ~ ">"; # works say "4 <" ~ max(undef,-2) ~ ">"; say "5 <" ~ max(undef, undef) ~ ">"; The output is (except for the comment): sully:parrot-0.7.0 stephensimmons$ perl6 ../experiment/max.p6 1 <4> 2 <4> 3 <> # should have returned -43.5 <4> 4 <-2> 5 <> System/Perl6 info: sully:parrot-0.7.0 stephensimmons$ uname -a Darwin sully.local 9.4.0 Darwin Kernel Version 9.4.0: Mon Jun 9 19:30:53 PDT 2008; root:xnu-1228.5.20~1/RELEASE_I386 i386 sully:parrot-0.7.0 stephensimmons$ cat .parrot_current_rev 30440 Stephen Simmons