format
Markus Banach
- perl
0 Cheatah0 Jörk Behrends
Liebe Forumsbesucher,
mit dem folgenden Code wollte ich erreichen , dass die formatierten Zeilen in das array @tpt gespeichert werden.
Werden Sie aber nicht !?
open ( LOG, "$FileName" ) die "can`t open $FileName : $!" ;
while (<LOG>) {
($sid, $host, $date, $time, $access, $url, $http) = split ( /:/, $_ ) ;
write ;
@tpt = <LOG> ; }
close(LOG) die "$!" ;
format STDOUT =
@>>> @<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<< @<<<<<<< @>>>>> @<<<<<<<<<<<<<<<<<<<< @<<<<<<<
$sid, $host, $date, $time, $access, $url, $http
.
Vielen Dank fuer Eure Tips
Markus Banach
Hi,
mit dem folgenden Code wollte ich erreichen , dass die formatierten Zeilen in das array @tpt gespeichert werden.
Werden Sie aber nicht !?
nein, das kann ich mir denken ;-)
open ( LOG, "$FileName" ) die "can`t open $FileName : $!" ;
while (<LOG>) {
Dies entspricht der Zeile:
while ($_ = <LOG>) {
Es wird also eine Zeile (oder was immer $/ als Trennzeichen vorgibt) eingelesen und der magischen Variable $_ zugewiesen. Der Zeiger auf die Datei ist entsprechend weitergerückt.
write ;
Höh?
@tpt = <LOG> ; }
Hier wird der Rest aus der Datei eingelesen. Versuche lieber
push(@tpt,$_);
denn selbst _wenn_ obiges klappen würde, würdest Du das Array jedes Mal neu definieren.
Cheatah
Hi Markus!
open ( LOG, "$FileName" ) die "can`t open $FileName : $!" ;
while (<LOG>) {
($sid, $host, $date, $time, $access, $url, $http) = split ( /:/, $_ ) ;
write ;
Das hier nichts rauskommt liegt möglicherweise daran, daß das format vorher definiert werden
muß ... bin mir da aber nicht so sicher.
@tpt = <LOG> ; }
Hier hat Cheatah natürlich recht. Durch diesen Befehl liest Du die restlichen Zeilen aus der
Datei, ohne sie zu bearbeiten ...
format STDOUT =
@>>> @<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<< @<<<<<<< @>>>>> @<<<<<<<<<<<<<<<<<<<< @<<<<<<<
$sid, $host, $date, $time, $access, $url, $http
.
Wie gesagt, diesen Teil einfach mal ein bißchen höher einsetzen.
Jörk