ich habe in meinem Perl-Programm ganz zu Beginn eine Variable mit my definiert. Dann kommen einige Unterroutinen und dann der main-Teil.
Du verwendest auch use strict und use warnings und läßt dir diese im Fehlerfall auch anzeigen?
Dort wird die Variable aus dem übergebenen Parameter (get/post) gelesen.
Also ich versteh das jetzt so:
#!/usr/bin/perl -w
use strict;
use CGI;
my $param;
sub x {}
sub y {}
package main;
$param = CGI::param('test');
Aber wozu "der main Teil"? Du brauchst kein package.
Danach werden die Unterroutinen aufgerufen.
x();
Beim ersten Aufruf ist der Wert in den Unterroutinen korrekt, beim zweiten Aufruf mit einem anderen Wert wird der Wert in main korrekt gelesen aber in den Unterroutinen ist noch der alte Wert vorhanden.
unwahrscheinlich. Es sei denn du bist in die Falle getappt, die in dem Artikel der dir schon gezeigt wurde, unter Anmerkung gezeigt wird.
Dieser Effekt tritt an meinem lokalen Rechner mit dem XAMPP-Server auf.
Im Internet ist der Wert auch beim zweiten Aufruf korrekt.
Woran könnte dies liegen?
Das ist Unsinn.
Ohne Code, der demonstriert was bei dir falsch läuft, kann man dir nicht wirklich weiterhelfen
Struppi.