my ($area1,$area2,$area4); while () { my @r = split /\|/,$_; if ($r[3] eq "Area 1") {$area1->{$r[2]} = $_} if ($r[3] eq "Area 4") {$area4->{$r[2]} = $_} } print Dumper $area1,$area4 $VAR1 = \{ 'AD-PC46' => '20150120172947|101|AD-PC46|Area 1|1| | | |0|0| |K-1|L ', 'AD-PC41' => '20150120172947|95|AD-PC41|Area 1|6| | | |0|0| |K-1|L ', 'AD-PC49' => '20150120172947|103|AD-PC49|Area 1|1| | | |0|0| |K-1|L ', 'AD-PC40' => '20150120172947|94|AD-PC40|Area 1|1| | | |4|0| |K-1|L ' }; $VAR2 = \{ 'EX-PC04' => '20150120172947|7|EX-PC04|Area 4|1| | | |4|0| |K-1|L ' };