Klaus: Gültigkeitsbereich von Variablen

Beitrag lesen

Hallo,
in dem nachfolgenden Programm1 ist in der Unterroutine die Variable "fehlerausgabe" vorhanden und korrekt.

Programm1:

  
#!/usr/bin/perl -w  
use strict;  
my ($sprache, $query);  
  
sub fehlerausgabe {  
    print "\$sprache=$sprache *";  
    exit ($_[2]);  
   }  
  
sub erstaufruf  
  {fehlerausgabe("p1")}  
  
use CGI;  
use CGI::Carp qw(fatalsToBrowser);  
  
print "Content-type: text/html\n\n";  
my $query = new CGI;  
$sprache="f";  
erstaufruf();  

Wenn ich die Routine wie im Programm2 auslagere, so ist die Variable "fehlerausgabe" nicht vorhanden., warum?

Programm2:

  
#!/usr/bin/perl -w  
use strict;  
my ($sprache, $query);  
  
use fehlerausgabe;  
  
sub erstaufruf  
  {fehlerausgabe("p1")}  
  
use CGI;  
use CGI::Carp qw(fatalsToBrowser);  
  
print "Content-type: text/html\n\n";  
my $query = new CGI;  
$sprache="f";  
erstaufruf();  

fehlerausgabe.pm

  
sub fehlerausgabe {  
#    print "\$sprache=$sprache *";  
#    exit ($_[2]);  
#   }  
  
1\.