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


in reply to Assign result of map to scalar variable

Capturing parens return an array of the results, and you only have one set of capturing parens, so you can just return that:
my ($val) = map { /^\*\s\(?([^\)]+)\)?/} @GET_STRING; # Or (as others have suggested) my ($val) = map { /^\*\s\(?([^\)]+)\)?/ ? $1 : () } @GET_STRING;