#!/usr/bin/env perl -w use strict; use warnings; my @addr = qw( adresse1@foo.fr adresse2@bar.com adresse3@baz.org ); my %del = (); open(FILE, "qmail_log.txt") or die "Couldn't open qmail_log.txt"; my @lines = ; close FILE; ADDR: foreach my $dst (@addr){ L1: foreach my $l (@lines){ if ($l =~ m/starting delivery (\d+): msg \d+ to remote $dst/){ my $delivery = $1; L2: foreach my $l2 (@lines){ if ($l2 =~ m/^(2016-09-2[01] \d+:\d+:\d+)\.\d+ delivery $delivery: success/){ $del{$dst} = $1; next ADDR; } } } } } foreach (@addr){ my $time = $del{$_} || 'non remis'; print '| ' . $_ . ' | ' . $time . " |\n"; }