Also bei mir scheint der Wurm drin zu sein - bzw. es fehlen mir halt grundlegende Kenntnisse!
1. Problem:
In mein Script-Gerippe eingebaut sieht es so aus:
#!/usr/bin/perl -w
use strict;
use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);
package Test;
my $test_var1 = 'foo';
my $test_var2 = 'bar';
package main;
my $wert;
print "Content-type: text/html\n\n";
foreach $wert (keys %Test::) {
print scalar($wert) . ' = ' . ${"Test::$wert"} . "\n";
}
Da meckert er zurecht $wert an (Global symbol $wert requires ....
Wenn ich dies korrigiere kommt die Meldung
'Premature end of script headers'.
Daraufhin habe ich die print "Content-type...."-Anweisung eingefügt.
Da bringt er weder einen Ausdruck noch eine Fehlermeldung.
2. Problem
Ich habe in meinem Programm keine packages definiert. Ich habe es also folgendermaßen realisiert.
#!/usr/bin/perl -w
use strict;
use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);
use vars qw($t1 $t2);
$t1 = 'g1';
$t2 = 'g2';
my $test_var1 = 'foo';
my $test_var2 = 'bar';
print "Content-type: text/html\n\n";
foreach my $wert (keys %main::) {
print scalar($wert) . ' = ' . ${"main::$wert"} . "\n";
}
Da kommt eine Bildschirmausgabe, die sieht folgendermaßen aus:
/ = strike = stderr = Apache:: = URL_ENCODED = SIG = fatalsToBrowser = start_multipart_form = put = Cwd:: = _<C:/XAMPP/perl/lib/File/Spec/Unix.pm = C:/XAMPP/perl/lib/File/Spec/Unix.pm code = ilayer = br = acronym = .... den Teil erspar ich euch ....
t2 = g2 .......... t1 = g1
Soll es so sein ?
Vorhanden ist in der Ausgabe t2 = g2 und t1 = g1 aber nicht testVar1/2.