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'}; " ''
In reply to Re^2: Assign result of map to scalar variable
by AnomalousMonk
in thread Assign result of map to scalar variable
by ram31
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |