From ram31's OP:
I am using the below code and it works when i use print. I want to assign it to scalar variable because only one element will be the output of map.
One has to do a lot of guessing when reading a post like this. Does "... one element will be the output of map" mean that that's what ram31 wants to be the case, or is it an assertion that it is the case? It's easy to demonstrate, as you have done, that the latter is false: there is an empty string output for every non-match in the map input for the $1 if /(...)/ sub block code. The suspicion that ram31 did not understand this was bolstered by the statement "... it works when i use print" because print, with the default $, value, simply masks the presence of all those empty strings.
That's how I arrived at my assumption that the @GET_STRING array could contain any number of matching and non-matching strings in any order, and, from the OPed code, that ram31 wanted to extract and return a sub-string from the first (i.e., lowest-index) match. (The assumption of any number of matching strings was defensive.)
So I was at some pains to explain to ram31 why many empty strings would potentially be generated by the OPed code, and that there was another approach that entirely avoided this complication. (It remained for runrig to point out the most elegant and, I believe, most efficient approach.)
So what? The fact remains that, as you and I and others have pointed out, a for-loop approach remains the most efficient for what I understand ram31 to want. Be that as it may, ram31 specifically wrote that he or she was aware of that approach and was instead interested in a map approach. So that's what we've all spent most of our time and effort discussing. Caveat praeceptor.
So what's the point of this reply? None, really, except that I enjoyed reading your thoughtful and detailed post and I wanted to respond in kind.
In reply to Re^4: Assign result of map to scalar variable
by AnomalousMonk
in thread Assign result of map to scalar variable
by ram31
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |