#!/usr/bin/perl use strict; my @retCodes_values; open my $read_log_file, '<', '/tmp/app.log' or die $!; while(<$read_log_file>){ next unless /retCode\=/; my ($string, $exit_code) = split /retCode\=/,$_,2; push @retCodes_values, [ $string, $exit_code ]; } foreach(@retCodes_values) { if ($_!=~3) { read 2nd log file; read 3rd log file; } } exit; __END__ D:\PerlMonks>test2.pl Bareword found where operator expected at D:\PerlMonks\test2.pl line 19, near "2nd" (Missing operator before nd?) Bareword found where operator expected at D:\PerlMonks\test2.pl line 20, near "3rd" (Missing operator before rd?) Not enough arguments for read at D:\PerlMonks\test2.pl line 19, near "2nd " syntax error at D:\PerlMonks\test2.pl line 19, near "2nd " Not enough arguments for read at D:\PerlMonks\test2.pl line 20, near "3rd " syntax error at D:\PerlMonks\test2.pl line 20, near "3rd " Execution of D:\PerlMonks\test2.pl aborted due to compilation errors.