use strict; use warnings; for my $fName ('foo', 'wibble') { my $doFoo = main->can($fName); print "Strictly: ", $doFoo ? $doFoo->() . "\n" : "Can't $fName\n"; my $cr = do {no strict; \&$fName}; print "Laxly: ", $cr ? $cr->() . "\n" : "Can't $fName\n"; } sub foo { return 1; } #### Strictly: 1 Laxly: 1 Strictly: Can't wibble Undefined subroutine &main::wibble called at noname2.pl line 13.