in reply to Re: Assign result of map to scalar variable
in thread Assign result of map to scalar variable

You just need parentheses around the LHS to force list context...

(Note: In the code originally replied to, the map block statement was  $1 if /^\*\s\(?([^\)]+)\)?/)   (tag – you're it)

But that would only work if the first item in  @GET_STRING matched the regex. (I'm assuming this array may contain any number of matching or non-matching strings in any order.) If it did not, an empty string would be assigned to the scalar. See first example below.

Update: Also:

>perl -wMstrict -le "my @GET_STRING = ('no', '*nine', '*(not)', '* yes', '* (yup)', '* ya)'); ;; my ($first) = map { $1 if / ^ \* \s \(? ([^\)]+) \)? /x } @GET_STRING; print qq{'$first'}; " ''