Olli: Im Fehlerfall mail an mich mit allen Variablen

Beitrag lesen

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.