in reply to Re^2: Do not run code even if one element has matched exit code value
in thread Do not run code even if one element has matched exit code value

The main issue is that you are creating an array of arrays, which you then need to dereference:
use warnings; use strict; my @retCodes_values; while (<DATA>) { next unless /retCode\=/; chomp; my ( $string, $exit_code ) = split /retCode\=/, $_, 2; push @retCodes_values, [ $string, $exit_code ]; } for my $aref (@retCodes_values) { if ($aref->[1] != 3) { print "@{ $aref }\n"; } } __DATA__ 15288 :: Mon Mar 2 13:23:32 2015::App.pm:status returned with retCode= +1 15288 :: Mon Mar 2 13:24:32 2015::App.pm:status returned with retCode= +3 15288 :: Mon Mar 2 13:25:32 2015::App.pm:status returned with retCode= +4 15288 :: Mon Mar 2 13:23:32 2015::App.pm:status returned with retCode= +5

Outputs:

15288 :: Mon Mar 2 13:23:32 2015::App.pm:status returned with 1 15288 :: Mon Mar 2 13:25:32 2015::App.pm:status returned with 4 15288 :: Mon Mar 2 13:23:32 2015::App.pm:status returned with 5

See also:

Replies are listed 'Best First'.
Re^4: Do not run code even if one element has matched exit code value
by jayu_rao (Sexton) on Mar 12, 2015 at 16:02 UTC
    Thanks. How do I loop to check all lines for an existence of 3.

    It could occur in any line number of the log file and not necessarily at $aref->1. I'll have to read more about array of arrays.

    Regards,

    Jay

      For checking whether a list contains an element matching certain criteria or not, grep is a natural choice (natural for me, anyway). So if you merely need to know whether this retCode occurs, you could do this (based on toolic's script):

      #!/usr/bin/perl use strict; use warnings; use feature qw/say/; my @retCodes_values; while (<DATA>) { next unless /retCode\=/; chomp; my ($string, $exit_code) = split /retCode\=/, $_, 2; push @retCodes_values, [ $string, $exit_code ]; } if(grep { $_->[1] == 3 } @retCodes_values) { say "retCode=3 occurred!" } __DATA__ 15288 :: Mon Mar 2 13:23:32 2015::App.pm:status returned with retCode= +1 15288 :: Mon Mar 2 13:24:32 2015::App.pm:status returned with retCode= +3 15288 :: Mon Mar 2 13:25:32 2015::App.pm:status returned with retCode= +4 15288 :: Mon Mar 2 13:23:32 2015::App.pm:status returned with retCode= +5

      If you also need information on e.g. the associated log message, just save grep's result to another array.

        Thanks much :) This definitely helped me.