This is driving me nuts. Can anyone find the syntax error: my @lines = map { "$_.foo\n", "$_\_bar.baz\n" } map { quux($_) } @$quuuuux; are those hashes or blocks? Blocks. Or, at least, they should be. did you remind perl of that? "Remind?" add a ; after the { of the first "block" your code will then work. perl only uses limited lookahead to decide Weeeeeeeeeeird. Thanks!