$ perl -l
use strict;
use warnings;
my $i = undef;
$i = $_ for (1 .. 3);
($i) ? print $i : warn "pre-defined - missing";
my $j = $_ for (1 ..3);
($j) ? print $j : warn "direct - missing";
__END__
3
direct - missing at - line 9.
####
$ perl -l
$j = $_ for (1 ..3);
($j) ? print $j : warn "no warnings - missing";
__END__
3
####
This is perl, v5.8.5 built for i386-linux-thread-multi