http://www.perlmonks.org?node_id=1040704


in reply to Confused by '+' syntax in code sample.

It is to prevent say interpreting the parenthesised expression as its function arguments, at least not before only using the first element of the array returned from split instead of the entire array.

It doesn't really "do" anything except assist how Perl interprets the expression.

# say would think that its arguments are the whole statement in bracke +ts say +(split ':')[0] while (<DATA>); #..so we use the + to make it clear that the contents of the brackets +are not function arguments # but part of an expression say +(split ':')[0] while (<DATA>);
If you spot any bugs in my solutions, it's because I've deliberately left them in as an exercise for the reader! :-)