Unary minus negates its operand, either adding a minus sign, or switching a minus sign to a plus sign or vice versa. Unary plus, on the other hand, returns its operand completely unchanged. Why is this useful? It can come in handy when dealing with ambiguous syntax.
More examples of unary plus:
print (3-1)*2; # oops! print (...) interpreted as function ...
print +(3-1)*2;
sub foo { $foo }
$h{foo}; # equivalent to $h{'foo'}
$h{+foo}; # but maybe you meant $h{foo()}
See
perlop for more on this curious operator.