use Data::Dumper; $VAR1 = { 'cli_config' => 'logging size', 'jobid' => '982505', 'status' => 'pass', 'component1' => 'archive-config-log', 'test_name' => '{PRCIII.etest: logging size 200}', 'testcase_name' => 'TC11327641669.xml', 'color_bool' => 1 }; %row = %$VAR1; print Dumper \%row; ##### THIS DATA SHOWN ABOVE if( $row{test_name} =~ "BEFORE-AFTER" ) { push(@loop6,\%row); } elsif( $row{test_name} =~ "DEFAULT" ) { push(@loop7,\%row); } elsif( $row{test_name} =~ "ORDER-ROLLBACK" ) { push(@loop8,\%row); } elsif( $row{test_name} =~ "PRCIII" ) { print "PRCIII------"; push(@loop9,\%row); } elsif( $row{test_name} =~ "ROLLBACK" ) { push(@loop10,\%row); } elsif( $row{test_name} =~ "SIDE-EFFECTS" ) { push(@loop11,\%row); } elsif( $row{test_name} =~ "SYNTAX" ) { push(@loop12,\%row); } __END__ #### $VAR1 = { 'cli_config' => 'logging size', 'jobid' => '982505', 'status' => 'pass', 'component1' => 'archive-config-log', 'test_name' => '{PRCIII.etest: logging size 200}', 'testcase_name' => 'TC11327641669.xml', 'color_bool' => 1 }; PRCIII------