Alain: eine deklarierte var die im anderen sub() nicht...

Hallo,
Ich habe eine frage betreff einer fehlerausgabe von perl.
Wieso geht das nicht,wenn ich eine variable in einer sub() deklarier mit
"my $var" und von der sub einen anderen sub() aufrufe dort diese $var dann reinschreiben möchte?
der server meldet
Global symbol "$var" requires explicit package name at...(also vom zweiten sub)
Ich kann jedoch diese ariable nicht ganz oben am anfang von perl deklarieren,weil es in einer sub benötigt wird
bzw. in einer zweiten auch zur info,wenn mir die email geschickt wird.
Es gibt zwar noch die möglichkeit den ganzen email sub strang zweimal reinzuschreiben um diesen fehler zu umgehen,
aber das scheint mir etwas zu umgänglich.
Gruss
Alain

  1. Hi,

    Wieso geht das nicht,wenn ich eine variable in einer sub() deklarier mit
    "my $var" und von der sub einen anderen sub() aufrufe dort diese $var dann reinschreiben möchte?

    Weil die Variable dann nur in dieser einen Sub verfügbar ist. Du kannst folgendes machen:

    sub einesub{
     my $variable;
     &nochnesub($variable);
    }

    sub nochnesub{
     my $variable=shift;
    }

    Also die Variable beim Aufruf der anderen Sub als Parameter übergeben.

    HTH

    ortenau-s-bahner

    --
    ss:} zu:$ ls:} fo:| de:] va:) ch:? sh:( n4:# rl:? br:> js:| ie:( fl:{ mo:)
    1. Hi,

      Weil die Variable dann nur in dieser einen Sub verfügbar ist. Du kannst folgendes machen:

      sub einesub{
       my $variable;
       &nochnesub($variable);
      }

      sub nochnesub{
       my $variable=shift;
      }

      Also die Variable beim Aufruf der anderen Sub als Parameter übergeben.

      danke,so gehts.
      Gruss
      Alain