@ = "A", "B", "C"; my @gaps = mesh @l, @l; pop @gaps; shift @gaps; #### use strict; use warnings; use feature 'say'; use List::MoreUtils 'mesh'; use List::Util 'pairs', 'pairfirst', 'pairgrep', 'pairmap'; my @trip = ("Chicago", "Saint Looey", "Joplin", "OKC", "Amarillo", "Gallup", "Flagstaff", "Winona", "Kingman", "Barstow", "San Bernandino", "LA" ) ; # I seek, not info on the cities, but info on the # differences in going from one city to city. my @legs = mesh @trip, @trip; pop @legs; shift @legs; # I seek an idiom for the above three lines. map { printf "%15s to %-15s\n", $_->[0],$_->[1] } pairs @legs; # Further # I might have city info as such: # $info{Joplin}{state}=>"MO" # map { if ($info{$_->[0]}{state} ne $info{$_->[1]}{state}) {say "Mann Act!"} } pairs @legs; # given the above @cities array how might I produce # $info{Joplin}{state}=>"MO" # my @states = ("IL", "MO", "MO", "OK", "TX", "TX", "AZ", "AZ", "AZ", "CA", "CA", "CA" ) ; my %info; # the following does not work!!! map { $info{$_[0]}{"state"}=$_[1] } pairs mesh @trip, @states; say "print the hash:"; say join " ", %info;