#!/usr/bin/perl # https://perlmonks.org/?node_id=1216162 use strict; use warnings; my @trip = ("Chicago", "Saint Looey", "Joplin", "OKC", "Amarillo", "Gallup", "Flagstaff", "Winona", "Kingman", "Barstow", "San Bernandino", "LA" ); local $_ = join "\n", @trip; printf "%15s to %-15s\n", $1, $2 while /^(.*)\n(?=(.*))/gm; my @states = ("IL", "MO", "MO", "OK", "TX", "TX", "AZ", "AZ", "AZ", "CA", "CA", "CA" ); my %info = map { $trip[$_], { state => $states[$_] } } 0..$#trip; use Data::Dump 'pp'; print pp \%info; print "\n", $info{Joplin}{state}, "\n";