2013-02-10T20:31:37 Student87Lexikalisch meint also, man kann den Gültigkeitsbereich der Variable einfach durch Lesen des Programmcodes erkennen.
1
2
3
4
5
6
7
8
9
10
11
####
if (1) {
####
my $x = do { #### };
# gueltig hier
for (42) {
# gueltig hier
}
# gueltig hier
}
####
perldoc strict: strict varsThis generates a compile-time error if you access a variable that was neither explicitly declared (using any of my, our, state, or use vars ) nor fully qualified. (Because this is to avoid variable suicide problems and subtle dynamic scoping issues, a merely local variable isn't good enough.) See my, our, state, local, and vars.
Code: (dl )1
2
3
4
5
6
7use strict 'vars';
$X::foo = 1; # ok, fully qualified
my $foo = 10; # ok, my() var
local $baz = 9; # blows up, $baz not declared before
package Cinna;
our $bar; # Declares $bar in current package
$bar = 'HgS'; # ok, global declared via pragma
The local() generated a compile-time error because you just touched a global name without fully qualifying it.
Because of their special use by sort(), the variables $a and $b are exempted from this check.
2013-02-17T11:58:06 Student87Heißt das, man sollte sowieso in Subroutinen immer nur Variablen verwenden, die per @_ an die Subroutine übergeben wurden? So dass es dann egal ist, ob die Subroutinen an Anfang, am Ende oder sonstwo stehen?
2013-02-17T11:58:06 Student87
QuoteAlle folgenden Anweisungen rufen diese Subroutine auf. Beachte, dass der Buchstabe & am Anfang des Namens stehen muss. (V5: nicht mehr nötig, aber empfohlen.)
2013-02-17T12:38:14 Raubtier2013-02-17T11:58:06 Student87
Wie hast du denn diese uralte Anleitung ausgegraben?
[.......]
Schau dir am besten moderne Perl-Tutorials an, z.B. von http://perl-tutorial.org/
Guest werDie Seite wurde mit Netscape 4.6 erzeugt. Dieser wurde im Mai 1999 veröffentlicht. Die Seite wurde irgendwann zwischen 1999 und 2002 erstellt.