Eine Weiche für STDOUT?
Alex Gots
- cgi
0 Bio- perl
0 Jörg Peschke0 Alex Gots0 Alex Gots
0 MudGuard
Hallo,
ich möchte gerne wissen, ob es möglich ist eine Weiche im Skript für STDOUT schreiben, die ein Mal Daten in den Browser schreibt und ein anderes Mal in eine HTML-Datei?
z.B.
8<----------------8<----------------8<
my $signal = 0;
if ($signal == 1){
STDOUT = $Dateiname;
}
else{}
print <<HTML;
Content-type: text/html
<html>
Test...
</html>
HTML
8<----------------8<----------------8<
Danke für Ihre baldige Beiträge
Sup!
Bestimmt. Sieh' nach im Perl-Buch Deines Vertrauens oder im Internet.
Gruesse,
Bio
Hallo Bio,
Bestimmt. Sieh' nach im Perl-Buch Deines Vertrauens oder im Internet.
Danke, super! Sehr destruktive Antwort. :( Im Buch (Wall, L: Programmiern mit Perl ISBN 3-930673-48-7) habe ich schon nachgeschaut und bereits gegooglet... sonst würde ich nicht fragen!
Danke ;)
Moin,
ich möchte gerne wissen, ob es möglich ist eine Weiche im Skript für STDOUT schreiben, die ein Mal Daten in den Browser schreibt und ein anderes Mal in eine HTML-Datei?
Mach eine Funktion, die dir abhängig vom Signal das entsprechende Handle ausspuckt:
sub getHandle() {
my $handle;
if ($_[0] = 0) {$handle = \ *STDOUT; }
else {
open OUTPUT, ">index.html" or die "Cannot open index.html";
$handle = \ *OUTPUT;
}
return($handle);
}
my $output_handle = getHandle($signal);
print $output_handle "blabla";
...
Meinst du sowas?
Gruesse,
Joerg
Hallo Joerg,
Meinst du sowas?
Ja, aber ich muss noch ausprobieren. Danke!
Hallo nochmal,
my $output_handle = getHandle($signal);
print $output_handle "blabla";
...Meinst du sowas?
In meinem Code verwende ich "Here"-Dokument (um Textblock als Ganzes auszugeben). Deswegen hackt's noch an dieser Stelle...
Sowas:
8<-------------<8-------------<8
print $output_handle<<BLOCK;
<html>
Text Anfang...
BLOCK
[...]
print $output_handle<<BLOCK;
...Text Ende.
</html>
BLOCK
8<-------------<8-------------<8
funktioniert nicht. :(
Tach,
wie wärs mit:
my $HTMLString = <<BLOCK ;
<html>
Text Anfang...
BLOCK
$HTMLString += <<BLOCK ;
...Text Ende.
</html>
BLOCK
print $output_handle $HTMLString;
Tach,
wie wärs mit:
my $HTMLString = <<BLOCK ;<html>
[...]
BLOCK
print $output_handle $HTMLString;
Der Perl meldet sich mit:
Argument "[HTML-CODE] " isn't nummeric in addition (+) at Zeile-Nr.[XX]
Wenn ich also mein Skript über den Browser aufrufe, dann kriege ich "0" angezeigt.
Tach,
Argument "[HTML-CODE] " isn't nummeric in addition (+) at Zeile-Nr.[XX]
Ich vermute mal nicht, dass Du vorhattest, CODE von HTML abzuziehen, oder?
In anderen Worten, dein Handle oder eine deiner Variablen heisst "HTML-CODE", richtig?
Perl erkennt so etwas nicht als zusammengesetzten Namen sondern als arithmetische Operation ("HTML minus CODE"), daher diese Fehlermeldung.
Versuchs mal mit einem anderen Namen, so etwas wie HTML_CODE oder HtmlCode.
Gruesse,
Joerg
Perl erkennt so etwas nicht als zusammengesetzten Namen sondern als arithmetische Operation ("HTML minus CODE"), daher diese Fehlermeldung.
Versuchs mal mit einem anderen Namen, so etwas wie HTML_CODE oder HtmlCode.
Ne, damit meinte ich irgendwelchen HTML-Kode. ;) Also [HTML-CODE] entspreche z.B.:
<html>
<title>Test</title>
<body>Text...</body>
</html>
Hi,
ich möchte gerne wissen, ob es möglich ist eine Weiche im Skript für STDOUT schreiben, die ein Mal Daten in den Browser schreibt und ein anderes Mal in eine HTML-Datei?
my $signal = 0;
sieht nach Perl aus.
Filter::tee könnte dann das richtige sein.
cu,
Andreas