Hallo, Helfen kann ich dir zwar nicht, aber wenigstens ergänzen. On Saturday 10 April 2004 14:39, Joerg Rossdeutscher wrote:
Moin, weiss zufällig jemand, ob sich mit perl 5.8.3 die Gültigkeitsbereiche von Variablen verändern, wenn man Code mit "require" einbezieht?
Ich nicht. Vielleicht geht 'local' in den meisten Fällen statt 'my'.
Ich habe hier einen relativ umfangreichen Source, und plötzlich funktionieren solche Sachen nicht mehr, die mal gingen:
sub hauptprogramm{ my $a="Hallo"; require "ausgeben.pl"; }
Und die Datei "ausgeben.pl": print $a;
$a ist undefined. Es kann sein, daß es mit globalen und lokalen Variablen zusammenhängt. Es geht, wenn ich "my" durch "our" ersetze und "require" durch "do".
'do' braucht man IMHO nicht. Nur 'our'. Der Gültigkeitsbereich ist ja bei my nur lokal innerhalb der {}. Das require gehört da nicht dazu. local und our deklariert Variablen global. Da hättest du keine Probleme.
Und, was das wichtigste ist: Es ging ja. Plötzlich geht es nicht mehr. Daher ist die Vermutung "neue perl-Version" nur so ein Verdacht, ich kann gar nicht sagen, wann mit welchem Update Online-Update dieses Perl auf den Rechner gekommen ist. Ist'n Debian unstable.
Welche Perl-Version war es vorher? Mit 5.6.1 für Hurd geht es genauso schlecht, wie mit der 5.8.0 der Suse 8.2. Ferdinand