sub block(&) { return undef; } print block {'whatever'} // "is undef"; __END__ String found where operator expected at bug.pl line 6, near "// "is undef"" (Missing operator before "is undef"?) Too many arguments for main::block at bug.pl line 6, near "// "is undef"" syntax error at bug.pl line 6, near "// "is undef"" Execution of bug.pl aborted due to compilation errors.