1 2 3 4 5 6 7 8
# eine Zeile aus einem Apache-Log #37.108.236.196 - - [12/Oct/2013:06:58:20 +0200] "GET /repo/tools/opera/extensions/searchengine-preview/1.2.8.6 HTTP/1.1" 200 575 "-" "Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.10.289 Version/12.02" my $line = <LOGFILE>; my ($ip, $date, $status) = $line =~ m|(\d+\.\d+\.\d+\.\d+).+\[(.+)\].+"\s(\d{3})\s|; print "$ip\t$date\t$status", "\n";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/perl use strict; use warnings; use 5.010; my @arr_new; for my $z (9687,4,5,9687,2,5,9673,2,5,6,8,9734,4,6,7,8) { if ($z >= 10) { # mehrstellige Zahl: neuer Eintrag push @arr_new, $z; } else { # einstellige Zahl wird an letzten Eintrag angehängt $arr_new[-1] .= $z; } } say for @arr_new;
1
2
3
4
5
6
7
8
for ($i=0;$i<=$#angerufen;$i++)
{
if (length($angerufen[$i])!= 1) { # mehrstellige Zahl: neuer Eintrag
push (@angerufen2, $angerufen[$i], "\n");
} else { # einstellige Zahl wird an letzten Eintrag angehängt
$angerufen2[-1] = $angerufen[$i].$angerufen2[-1];
}
}
Guest DanielAlso der Ansatz mit dem pushen auf das Array wenn die Zahl größer 10 ist [...]
Code: (dl )if (length($angerufen[$i])!= 1) { # mehrstellige Zahl: neuer Eintrag
2013-10-25T10:35:29 pqGuest DanielCode: (dl )if (length($angerufen[$i])!= 1) { # mehrstellige Zahl: neuer Eintrag
halten wir mal fest:
- oben schreibst du "Zahl größer 10"
- im Code steht: != 1 (das würde auch auf 2, 3 etc. zutreffen)
- im Kommentar daneben steht: mehrstellige Zahl
Guest Danielpasst da irgendwas dran nicht ?