[vienna.pm] Wirkungsbereich von "my"
Roland Bauer
roland.bauer at fff.at
Mon Feb 28 15:20:11 CST 2000
* * * vienna-pm-list * * *
Hallo Peter,
> Ich habe in einer if-Schachtelung Variablendefinitionen mit my
> vorgenommen:
>
> if (-e $directory) {
> my %strings_db = ();
> %strings_db = &read_database ($filename);
> }
>
> Nun bin ich draufgestossen, dass die Werte auf dem Hash ausserhalb
> der if-Schachtelung nicht mehr vorhanden sind. Offensichtlich ist die
> Variable nur fuer die if-Abfrage definiert worden.
Stimmt. Gilt nur innerhalb des Blocks ... { my $xx }
> Ist es ueblich,
> diese am Programm anfang einfach mit
> my %strings_db = ();
> zu definieren?
Nicht am Programmanfang, sondern (idealerweise)
nur gerade in dem Block der
alle umschliesst, in denen Du die Variable verwenden willst:
#!/usr/bin/perl
{
{
}
{
# BEGINN
my $x;
{ $x; }
{ $x; }
# ENDE
}
{
#hier ist $x unbekannt
}
}
Manchmal ist das aber der Programmanfang ;-)
> Ist es hier sinnvoll gleich fest definierte Startwerte
> (also z.B. leerer Hash) vorzugeben, oder ist das nicht noetig und man
> handlet sich damit mehr Schwierigkeiten ein als erwartet.
Ich mach das meistens nicht, aber bei
my $xx;
jammert er unter "use diagnostics;" bzw "-w", dass er nicht
weiss, ob du "" oder 0 gemaint hast.
> P.S.: Das Camel-Buch muss ich erst von der Post abholen :-) .
Ohne Kamel ist's natuerlich hart ;-)
> Habs am
> Freitag bestellt und am Samstag war ich dummerweise auf der CeBit...
Und, gab's was Interessantes?
Roland
###
You are subscribed to vienna-pm-list as Roland Bauer <roland.bauer at fff.at>
http://www.fff.at/fff/vienna.pm/
More information about the Vienna-pm
mailing list