Re: Eigenschaften von Perl
- From: "Peter J. Holzer" <hjp-usenet2@xxxxxx>
- Date: Sat, 1 Mar 2008 14:04:22 +0100
On 2008-02-28 07:38, Frank Seitz <devnull4711@xxxxxx> wrote:
Peter J. Holzer wrote:
On 2008-02-27 08:22, Ferry Bolhar <bol@xxxxxxxxxxxxxxxxx> wrote:
Keine globale Variable (die man jederzeit und von überall über Typeglobs
manipulieren kann). Deklarierst du in deinem Code $foo als lexikalisch, wird
er nicht mehr (so) funktionieren.
#!/usr/bin/perl
use strict;
use warnings;
sub foo {
$_[0]++;
}
sub bar {
my $foo = 5;
foo($foo);
print "$foo\n";
}
bar();
Hä? Was hat das mit dem ursprünglichen Code zu tun?
Das ist der ursprüngliche Code von Dir. Schau mal in
<62ibqiF22ueigU7@xxxxxxxxxxxxxxxxxx>. Wozu Felix' "Gehampel" (Zitat Frank
Seitz) gut sein sollte, habe ich nicht verstanden und es daher
ignoriert.
Es bleibt also Felix Aussage:
| Keine Variable ist vor böswilligen (oder einfach murksig
| implementierten) subs sicher.
auf die Ferry wie oben zitiert geantwortet hat.
Mit lexikalischem $foo geht es so:
sub inc ($;$) {
my $foo = \(shift);
my $bar = shift || 1;
$$foo += $bar;
}
Hier fehlt der entscheidende Teil, nämlich der Aufruf von inc.
inc($x);
erhöht den Wert von $x um 1, egal ob $x eine lexikalische oder globale
Variable ist, im Gegensatz zu Ferrys Aussage, der meinte, das
funktioniere nur bei globalen Variablen. Das lässt sich aber genauso
leicht mit der Funktion foo oben zeigen. Daher kann ich Dich nur
zitieren und fragen: "Wozu das Gehampel?"
hp
.
- Prev by Date: Re: Eigenschaften von Perl
- Next by Date: dBase Datei via Perl mit Parametern öffnen
- Previous by thread: Re: Eigenschaften von Perl
- Next by thread: Re: Eigenschaften von Perl
- Index(es):
Relevant Pages
|