#!/usr/bin/perl -w use strict; use Data::Dumper; my @count; my ($field1, $field2); while () { ($field1, $field2) = split/\|/; push @count, {'field1' => $field1, 'field2' => $field2}; } print Data::Dumper->Dump([\@count]); __DATA__ 10|10 20|20 30|30 10|100 15|15 50|50 15|150 #### $VAR1 = { '10' => [ '10', '100' ], '20' => [ '20' ], '30' => [ '30', ], '15' => [ '15', '150' ], '50' => [ '50' ] };