#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use DateTime; my @array; { local $/ = "STOPP\n"; while( my $entry = ){ my ($anfrage,$end,$id,$log); for my $line ( split /\r?\n/, $entry ){ if( $line =~ /Login/ ){ $log = (split /\s+/, $line, 3)[-1]; } elsif( $line =~ /SID anfragen/ ){ ($anfrage) = (split /\s+/, $line, 3)[1]; } elsif( $line =~ /SID fertig/ ){ ($end,$id) = (split /\s+/, $line)[1,-1]; } } my @a = split /:/, $anfrage; my @e = split /:/, $end; my $anfang = DateTime->new( day => 1, month => 1, year => 107, second => $a[2], minute => $a[1], hour => $a[0] ); my $ende = DateTime->new( day => 1, month => 1, year => 107, second => $e[2], minute => $e[1], hour => $e[0] ); my $diff = $ende - $anfang; my $string = sprintf "%s > Dauer: %s Sekunde(n)", $log, $diff->delta_seconds; push @array, $string; } } print Dumper \@array; __DATA__ 17.11.2007 06:02:42 START Clients = 2 17.11.2007 06:02:42 Login=T718052 ActionId=1-VIDCK8 GF=Bereitstellung 17.11.2007 06:02:42 lese TSAM Felder 17.11.2007 06:02:43 Datei erzeugt: 1VIDCK8.xml 17.11.2007 06:02:43 SID anfragen 17.11.2007 06:02:44 SID fertig = 00000011952757638269 17.11.2007 06:02:44 lese TSAM Felder fertig 17.11.2007 06:02:44 STOPP 17.11.2007 06:04:19 START Clients = 2 17.11.2007 06:04:19 Login=T718756 ActionId=1-VIDCL4 GF=Bereitstellung 17.11.2007 06:04:19 lese TSAM Felder 17.11.2007 06:04:21 Datei erzeugt: 1VIDCL4.xml 17.11.2007 06:04:21 SID anfragen 17.11.2007 06:04:25 SID fertig = 00000119527586128810 17.11.2007 06:04:25 lese TSAM Felder fertig 17.11.2007 06:04:25 STOPP