When I run ~$ perl -MO=Deparse -e ' use constant foo => 0; if ( (int(rand(2))+1) % 2 ) { warn "foo" } elsif ( foo ) { warn "bar" } ' I get the output use constant ('foo', 0); if ((int(rand 2) + 1) % 2) { warn 'foo'; } else { '???'; } -e syntax OK I would have expected the elsif to disappear entirely. Instead it is converted to this weird empty-else. Is the SCOPE op still there or is this just Deparse being silly? Thanks!Thread Next