[Vienna-pm] use strict und dann wieder nicht....
LAUN Wolfgang
wolfgang.laun at alcatel.at
Mon Feb 23 02:01:21 CST 2004
Nur um die Verwirrung nicht zu vergrößern, s.u.
> -----Original Message-----
> From: Thomas Klausner [mailto:domm at zsi.at]
> Sent: Sunday, February 22, 2004 9:44 PM
> To: vienna-pm
> Subject: Re: [Vienna-pm] use strict und dann wieder nicht....
>
>
> Hi!
>
> On Sun, Feb 22, 2004 at 12:54:17PM +0100, Klaus Zahradnik wrote:
>
>
> > Im Kapitel "Subroutines" wird auch der "namespace" erkl?rt. Dazu gibt es
> > dann auch folgenden Code:
> >
> > #!/usr/bin/perl
> > use warnings;
> >
>
> > $main::name = "Klaus Zahradnik";
> > $Fred::name = "Fred Flintstone";
> > $Barney::name = "Barney Rubble";
> >
>
> > print "\$name in package main is $name\n";
> > print "\$name in package Fred is $Fred::name\n";
> > print "\$name in package Barney is $Barney::name\n";
> >
> >
> > So steht der im Buch.
>
> Scheint ein Fehler im Buch zu sein.
>
Wo soll hier ein Fehler sein? (Wir sind in package main, also ist mit
$name - in Abwesenheit von use strict - $main::name gemeint.)
> Hast du auf ww.oreilly.com die Errata-Section deiner Verion von Learning
> Perl gecheckt?
>
> > Ich habe allerdings use strict reingeschrieben. Das hatte dann diese
> > Fehlermeldung zu folge:
> > [klaus at cujo Scripts]$ ./globals.pl
> > Variable "$name" is not imported at ./globals.pl line 9.
> > Global symbol "$name" requires explicit package name at ./globals.pl
> > line 9.
> > Execution of ./globals.pl aborted due to compilation errors.
> >
> > Wenn ich Zeile mit der ersten print Anweisung wie folgt ?ndere,
> > funktioniert das auch mit use strict:
> > print "\$name in package main is $main::name\n";
> >
> > Im orignalzustand funktioniert das nat?rlich auch ohne use strict.
>
> Klar. Ohne strict kann man immer&uberall variablen einfach so deklarieren.
s/deklarieren/verwenden/
> Mit strict (bzw use stricts 'vars') muessen Variablen explizit deklariert
> werden (mit our, my, use vars oder 'fully qualified', i.e.
> mit der package. (siehe perldoc strict))
>
Da fehlt mir das Zeitwort:
"...oder 'fully qualified', d.h. mit dem Package-Namen, angegeben werden."
lg
Wolfgang Laun
Transport Solutions Division
Alcatel Austria AG
Phone +43 1 27722 5662
Fax +43 1 27722 1173
More information about the Vienna-pm
mailing list