foo(@foo_bar); : 2 Argument "" isn't numeric in array element at (eval 2) line 1. foo($foo_bar[0..$#foo_bar]); : foo foo(@foo_bar[0,$#foo_bar]); : bar foo("foo","bar"); : # Too many arguments for main::foo at (eval 4) line 1, near ""bar")" foo(map{$_}"foo","bar"); : 2 Useless use of a constant in void context at (eval 6) line 1. foo(qw[ foo bar ]); : bar foo(@{[qw[ foo bar ]]}); : 2 foo(${[qw[ foo bar ]]}[0,1]); : bar foo(map{$_}qw[ foo bar ]); : 2 foo(reverse @foo_bar); : raboof foo(returns_two()); : bar foo(returns_two_2()); : bar foo(returns_array()); : 2