use strict; use warnings; use Data::Dumper; my %zipDB = map { $_->[0], join q{|}, @{$_}[1 .. 3] } map { chomp; [ unpack q{A5 A2 A3 A*}, $_ ] } ; print Data::Dumper->Dumpxs([\%zipDB], [qw{*zipDB}]); __END__ 00601PR787ADJUNTAS 00602PR787AGUADA 00603PR787AGUADILLA 00604PR787AGUADILLA 00605PR787AGUADILLA 00606PR787MARICAO 00610PR787ANASCO 00611PR787ANGELES 00612PR787ARECIBO 00613PR787ARECIBO #### %zipDB = ( '00611' => 'PR|787|ANGELES', '00612' => 'PR|787|ARECIBO', '00603' => 'PR|787|AGUADILLA', '00610' => 'PR|787|ANASCO', '00606' => 'PR|787|MARICAO', '00601' => 'PR|787|ADJUNTAS', '00602' => 'PR|787|AGUADA', '00605' => 'PR|787|AGUADILLA', '00613' => 'PR|787|ARECIBO', '00604' => 'PR|787|AGUADILLA' );