Assuming there are any number of space \t \r \n etc. at the end of each line, try something like:
c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le
"my $string = 'Return code is';
;;
my %errors;
for my $row (
qq{2015/04/06 12:38:15 (9):(5564) Return code is :55\n\r\n},
qq{2015/04/06 12:38:15 (9):(6600) Return code is :55 \r\n\r},
qq{2015/04/06 12:41:31 (9):(3604) Return code is :1\t\n\r},
) {
++$errors{$1} if $row =~ m{ \Q$string\E \s* : (\d+) \s* \z }xms;
}
dd \%errors;
;;
my $total;
for my $err_no (sort { $a <=> $b } keys %errors) {
print qq{error $err_no - $errors{$err_no} total};
$total += $errors{$err_no};
}
print qq{total errors: $total};
"
{ 1 => 1, 55 => 2 }
error 1 - 1 total
error 55 - 2 total
total errors: 3
Give a man a fish: <%-{-{-{-<
|