my (@a, %h); $_ = '1:1,2:1,3:2,500:2,505:1'; #234567890#234567890#234567890#234567890#234567890#234567890 # 47 characters ... %h=map{@@=/[^:]+/g;$a[$#a+1]=$@[0];@@}/[^,]+/g; # 44 ... %h=map{@@=/[^:]+/g;push@a,$@[0];@@}/[^,]+/g; # Based on duff's whimsy above ... 42 characters %h=@a=/[^:,]+/g;@a=@a[grep!($_%2),0..$#a]; # Further whimsy ... 29 characters %h=/[^:,]+/g;@a=/([^,:]+):/g;