in reply to Re: map a list
in thread map a list
my @result = map { local our $res; m {(?x) ^ (?(?=([a-z])$) (?{ $res = qq{$1=>fn($1)}; }) | (?(?=([a-z])=([a-z])$) (?{ $res = qq{$2=>$3}; }) | (?(?=([a-z])=\#([a-z])$) (?{ $res = qq{$4=>fn($5)}; }) | (?{ $res = q{???}; }) ) ) ) }; $res } split m{,}, $str;
Of course, the above is just an obfuscated way of doing
my @result = map { (/([a-z])$/ ? qq{$1=>fn($2)} : (/([a-z])=([a-z])$/ ? qq{$1=>$2} : (/([a-z])=\#([a-z])$/ ? qq{$1=>fn($2)} : q{???} ) ) ) } split m{,}, $str;
By no means do I consider the second snippet acceptable either.
By the way, why did you introduce limits on what the values can be? Nowhere did the OP imply the values would be single lowercase letters. If you remove that arbitrary limit, you can get rid of the "???" case.
Why did you also changed the output, returning a string where a pair of values should have been returned?
|
|---|