#! /usr/bin/perl -l use strict; use warnings ; my @arr = ( {'a' => 'x', 'b' => 'y', 'c' => 'z'}, {'a' => 'x1', 'b' => 'y1', 'c' => 'z1'} ) ; my %h = map {;"$_->{'a'}_$_->{'c'}" => $_->{'b'} } @arr ; print "$_ -- $h{$_}" foreach ( keys %h ) ;