Thread Variablen global bei require (49 answers)
Opened by freddy at 2009-08-24 13:38

topeg
 2009-08-25 10:48
#124732 #124732
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Sowas hatte ich mir gedacht. Das kann nicht funktionieren.
Das "Problem" ist, dass Perl eine Datei als geschossenes etwas ansieht, aus dem so ohne weiteres keine Informationen (über Variablen) raus kommen (wenn du nicht etwas anderes verlangst) (siehe "Scope")
Du hast nun in einer Datei eine Variable definiert und in einer anderen willst du sie nutzen. Das klappt nur wenn du explizit sagst, dass die Variable überall zu lesen sein soll. (siehe "our") So was sollte man wirklich nur dann machen, wenn man wirklich überhaupt keine andere Lösung findet.

Die bessere Lösung in deinem Beispiel währe der Funktion Parameter mit zu geben:

Code (perl): (dl )
1
2
3
4
5
6
#!/usr/bin/perl
use strict;
use warnings;
require 'testvarsub.pl';

testsub('hallo');


testsvarsub.pl
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
use strict;
use warnings;

sub testsub ($)
{
  my $test=shift(@_);
  print $test;
}

return 1;

Last edited: 2009-08-25 10:50:28 +0200 (CEST)

View full thread Variablen global bei require