Eine detailliertere Einführung in Perl Formate finden Sie in man perlform.
print using ####.##write()
einsteigen sollten wir uns vor Augen führen, daß Formate in
Perl gerade mal ein besserer Ersatz für BASIC's
print using ####.## ist.
Leider gibt es in Perl (jedenfalls bis Version 5.004_01) noch keine explizite Mittel um Fußzeilen zu unterstützen.
format STDOUT_TOP =
======================================================================
WWW Statistik für den Monat @<<<<<<<<<<< Seite: @<<
$monat, $%
======================================================================
Domaine | Hits | CGI-Aufrufe
----------------------------------------------------------------------
.
Beispiel für den passenden Rumpf:
format STDOUT = @<<<<<<<<<<<<<<<<<<<<<<<<<<< | @<<<<<<<<<<<<<<< | @>>>>>>>>>>>>>>>> $dom, $hits, $cgi_hits .
write()
automatisch aktiviert:
# gemeinsamer header
$monat = "Juni 1997";
# statistik lesen und aufbereiten:
while ($line = <IFHSTAT>) {
chop $line;
($dom, $hits, $cgi_hits) = split(/:/, $line);
write;
}
Die Ausgabe sieht dann z.B. so aus:
======================================================================
WWW Statistik für den Monat Juni 1997 Seite: 1
======================================================================
Domaine | Hits | CGI-Aufrufe
----------------------------------------------------------------------
uni-koeln.de | 12342 | 2343
uni-wuppertal.de | 4442 | 310
aol.com | 34321 | 1210
[...]
^L
======================================================================
WWW Statistik für den Monat Juni 1997 Seite: 2
======================================================================
Domaine | Hits | CGI-Aufrufe
----------------------------------------------------------------------
mit.edu | 983 | 11
nasa.gov | 1442 | 341
STDOUT verbunden, da wir unsere
Ausgabe nach STDOUT haben wollten. Daher hieß auch
der Report-Name: STDOUT_TOP und STDOUT.
Die Funktion
write()
wurde ohne Argumente und ohne Filehandle
aufgerufen. Die Argumente sind im den Format-Schablonen eingepflegt
gewesen (Variablen). Der Filehandle wird durch die Funktion
select()
festgelegt!
open (OFILE, "> $outfilename")
or die "can't open file $outfilename: $!\n";
$old_file_handle = select(OFILE);
$^ = 'OFILE_TOP'; # Header-Schablone
$~ = 'OFILE'; # Rumpf-Schablone
while (<>) {
# ....
write; # nach OFILE_TOP, OFILE
}
select($old_file_handle);
close (OFILE);
Vorherige Seite, Nächste Seite, Index, Hauptindex.