Schrift
[thread]3151[/thread]

Variablendeklaration



<< >> 7 Einträge, 1 Seite
the_brain
 2005-06-19 11:50
#31099 #31099
User since
2004-08-19
30 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,

ich habe mal ein grundlegende Frage zu deren Antwort ich nun verschiedene Meinungen gehört habe:
In Bezug auf mod_perl, muss man variablen initialisieren? Oder geht auch ein
Code: (dl )
my ($var1, $var2, $var3);
im Gegensatz zu
Code: (dl )
my $var1 = ""; my $var2= ""; my $var3 = "";
ohne Probleme?

Wie gesagt, ich habe da jetzt unterschiedliche Meinungen gehört und weiss nicht mehr was ich glaube soll... Wäre schön wenn jemand Licht am Ende des Tunnels anmachen würde.
GwenDragon
 2005-06-19 12:23
#31100 #31100
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
Globale Variablen bleiben statisch, da sie nur einmal beim Start des Skripts geladen werden. Sie leben, bis der Server herunter fährt oder irgend ein Admin den Prozess mit deinem Skript löscht.

Es geht nur um die Vraiablen im Skript, sozusagen im Hauptprogramm, nicht in den Funktionen.

Was pricht denn gegen eine gute Programmierung Variablen am Anfang
Code: (dl )
BEGIN { # hier Variablen init } END { # hioer Variablen 'undef'inieren}

zu initialisieren und am Ende wieder mut undef zu löschen?
pq
 2005-06-19 12:27
#31101 #31101
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
my ($var1, $var2, $var3);
ist prima. so werden die variablen erstellt und auf undef gesetzt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2005-06-19 12:29
#31102 #31102
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=GwenDragon,19.06.2005, 10:23]Was pricht denn gegen eine gute Programmierung Variablen am Anfang
Code: (dl )
BEGIN { # hier Variablen init } END { # hioer Variablen 'undef'inieren}

zu initialisieren und am Ende wieder mut undef zu löschen?[/quote]
wozu das denn? wenn ich my()-variablen im handler() definiere,
verschwinden die automatisch.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
the_brain
 2005-06-19 13:15
#31103 #31103
User since
2004-08-19
30 Artikel
BenutzerIn
[Homepage] [default_avatar]
danke das klärt einiges
esskar
 2005-06-19 14:05
#31104 #31104
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
du könntest auch

Code: (dl )
my ($var1, $var2, $var3) = ("", "", "");


schreiben!
Taulmarill
 2005-06-20 12:30
#31105 #31105
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
die schreibweise my $foo = ""; bringt nur etwas, wenn die variable speziell mit einem leerstring initialisiert werden soll. alle variablen in perl werden mit dem wert "undef" initialisiert, der, anders als es der name vermuten lässt, ein definierter wert ist der auch abgefragt werden kann (allerdings fehler und warnungen verursachen kann, wenn man einfach mit ihm vergleicht).
das ist ein unterschied zu sprachen wie C oder C++, wo eine variable einfach den wert bekommt, den die stelle im ram hat, die der variable zuzgewiesen wird.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< >> 7 Einträge, 1 Seite



View all threads created 2005-06-19 11:50.