sub block(&) { return undef; };; print block {'whatever'} // "is undef";; String found where operator expected at (eval 10) line 1, near "// "is undef"" (Missing operator before "is undef"?) [Too many arguments for main::block at (eval 10) line 1, near "// "is undef"" syntax error at (eval 10) line 1, near "// "is undef"" print +( block {'whatever'} ) // "is undef";; is undef print block( sub{'whatever'} ) // "is undef";; is undef "is undef";;