use List::MoreUtils qw( zip pairwise ); # ... %hash = zip @{[ pairwise { join q( ), $a, $b } @fname, @lname ]}, @state;