in reply to problem in search pattern

Exact data and code. Please help me to resolve this string manipulation. Really some problem still hinders me.
$VAR1 = { 'cli_config' => 'logging size', 'jobid' => '982505', 'status +' => 'skip', 'component1' => 'archive-config-log', 'test_name' => 'BE +FORE-AFTER.etest', 'testcase_name' => 'TC11327641669.xml', 'color_boo +l' => 0 }; $VAR1 = { 'cli_config' => 'logging size', 'jobid' => '9825 +05', 'status' => 'skip', 'component1' => 'archive-config-log', 'test_ +name' => 'DEFAULT.etest', 'testcase_name' => 'TC11327641669.xml', 'co +lor_bool' => 1 }; $VAR1 = { 'cli_config' => 'logging size', 'jobid' = +> '982505', 'status' => 'skip', 'component1' => 'archive-config-log', + 'test_name' => 'ORDER-ROLLBACK.etest', 'testcase_name' => 'TC1132764 +1669.xml', 'color_bool' => '' }; $VAR1 = { 'cli_config' => 'logging s +ize', 'jobid' => '982505', 'status' => 'pass', 'component1' => 'archi +ve-config-log', 'test_name' => '{PRCIII.etest: logging size 200}', 't +estcase_name' => 'TC11327641669.xml', 'color_bool' => 1 }; $VAR1 = { +'cli_config' => 'logging size', 'jobid' => '982505', 'status' => 'ski +p', 'component1' => 'archive-config-log', 'test_name' => 'ROLLBACK.et +est', 'testcase_name' => 'TC11327641669.xml', 'color_bool' => '' }; $ +VAR1 = { 'cli_config' => 'logging size', 'jobid' => '982505', 'status +' => 'skip', 'component1' => 'archive-config-log', 'test_name' => 'SI +DE-EFFECTS.etest', 'testcase_name' => 'TC11327641669.xml', 'color_boo +l' => 1 }; $VAR1 = { 'cli_config' => 'logging size', 'jobid' => '9825 +05', 'status' => 'skip', 'component1' => 'archive-config-log', 'test_ +name' => 'SYNTAX.etest', 'testcase_name' => 'TC11327641669.xml', 'col +or_bool' => '' };

In total 7 hashes. I loop through for every hash and search for the key, "test_name" and parsing the data.

for my $j(0..$len - 1 ) { my ($component1,$cli_config,$testcase_name,$test_id, $test_name, $status) = split (/\,/,$test_status[$j]); my %row = (); %row = ( component1 => $component1, cli_config => $cli_config, testcase_name => $testcase_name, test_name => "$test_name", ### This IS THE ONE status => $status, jobid => $jobid, color_bool => $color); 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); } }

All other "test_name" i could parse. But not the "PRCIII". Please help me out.
Thanks
rsennat

Replies are listed 'Best First'.
Re^2: problem in search pattern
by Happy-the-monk (Canon) on Dec 16, 2005 at 15:06 UTC

    Update 2: I re-ran your programme with the "real" life data and it works fine again. The error you are looking for is not in the code you posted.

    Maybe you don't see the print output because it is redirected somewhere you didn't expect?

    Update: I searched for the string in your data, and my browser told me it wasn't there... now I see it. Whatever went wrong.

    In your Dumper output of the test data, there is no string that matches "PRCIII".

    That in turn makes your test for the string "PRCIII" fail.
    In order to make it succeed, put that string in your test data.

    Cheers, Sören

      Yeah right. Atleast you got it.
      "PRCIII" is there in the data.
      Please help me out of this. This really screws me.

      thanks
      Can you please share your code.

      Really something goes wrong here. unable to figure it out. i tried chopping, removing curly braces etc... nothing worked.

        Can you please share your code.

        use Data::Dumper; $VAR1 = { 'cli_config' => 'logging size', 'jobid' => '982505', 'status +' => 'pass', 'component1' => 'archive-config-log', 'test_name' => '{P +RCIII.etest: logging size 200}', 'testcase_name' => 'TC11327641669.xm +l', '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__

        ...prints...

        $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------

        Cheers, Sören