@result=map { /=/ ? split(/=/,$_,2) : ($_,fn($_)) } split(/,/, $string); #### @result=map { /=#/? (@l=split(/=#/,$_,2) && ($l[0],fn($l[1])) : /=/ ? split(/=/,$_,2) : ($_,fn($_)) } split(/,/, $string); #### $ perl -e ' (@n=(1,2) && ($n[1],$n[0])); (@n=(1,2) && ($n[1],$n[0])); (@n=(1,2) && ($n[1],$n[0])); ' Segmentation fault