# condition will not be true but raises no error if (defined foo) { print ref(foo); }; # raises an error as foo is marked as sub die "strange .." if foo() eq 'bar'; # also die "strange .." if (foo() eq 'bar'); # and even this does not show up _any_ errors or warnings #!/usr/bin/perl -w use strict; use diagnostics; . . . print ref(foo); # So is foo something special ? # No, no error or warning also # when replacing above line simply with print ref(bar);