Thread abgedrehtes problem mit switch: oder bin ich blind?
(71 answers)
Opened by deepblack at 2004-06-16 21:56
(Als ich diesen Beitrag schrieb war pq's Beitrag noch nicht da, deshalb überschneidet sich dies...)
Interessant ist dieses: Code: (dl
)
1 #!/usr/bin/perl Ausgabe: Code: (dl
)
1 Use of uninitialized value in warn at C:\Daten\perl\BEGIN.pl line 8. Ich erkläre mir das jetzt mal laienhaft so: 1) Deklaration der globalen im normalen Teil vor dem BEGIN wird interpretiert. 2) Der Code im BEGIN-Block wird interpretiert, dabei stößt Perl auf eine uninitialisierte unbekannte Variable. 3) Dann wird die Definition "= 1234" im normalen Code interpretiert. Lässt man das Wort "BEGIN" weg, ist die Ausgabe diese: Code: (dl
)
1 1234 at C:\Daten\perl\BEGIN2.pl line 8. Also: Möchte man lexikalische Variablen im BEGIN-Block definieren, so darf man sie außerhalb nur deklarieren, aber nicht definieren (also keinen Wert zuweisen), da dieser sonst die Initialisierung innerhalb des BEGIN-Blocks wieder überschreiben würde, da der Definitionsteil erst nach dem BEGIN-Block interpretiert wird: Ausgabe: aha Im Gegensatz zu welches NIXNIX ausgibt. Alles ganz logisch, aber man muss es halt wissen, wie es funktioniert. Ich glaube ich habe es jetzt verstanden...\n\n <!--EDIT|Crian|1089209158--> s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite |