Some examples:
$ perl -MO=Deparse -e'"" || 1'
'???';
-e syntax OK
- - - - -
$ perl -MO=Deparse -e'undef || 1'
'???' unless undef;
-e syntax OK
- - - - -
$ perl -MO=Deparse -e'
use constant F => undef;
F and 1;
undef and 2;
'
use constant ('F', undef);
'???';
'???' if undef;
-e syntax OK
- - - - -
So compile-time-undef folds,
but runtime-undef doesn't.
(which initially surprised me, but now looks fine with me)
-- Ruud
$ perl -MO=Deparse -e'"" || 1'
'???';
-e syntax OK
- - - - -
$ perl -MO=Deparse -e'undef || 1'
'???' unless undef;
-e syntax OK
- - - - -
$ perl -MO=Deparse -e'
use constant F => undef;
F and 1;
undef and 2;
'
use constant ('F', undef);
'???';
'???' if undef;
-e syntax OK
- - - - -
So compile-time-undef folds,
but runtime-undef doesn't.
(which initially surprised me, but now looks fine with me)
-- Ruud