Thread Globale Variable in BEGIN Block setzen: Interaktion von my, our, undef und BEGIN (25 answers)
Opened by murphy at 2005-09-15 04:25

pKai
 2005-09-15 16:50
#58038 #58038
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
This is perl, v5.8.6 built for MSWin32-x86-multi-thread

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
>perl
use strict;
use warnings;
my $stuff = undef;
BEGIN { $stuff = 1; }
print "$stuff\n";
^Z
1

>perl -MO=Deparse
use strict;
use warnings;
my $stuff = undef;
BEGIN { $stuff = 1; }
print "$stuff\n";
^Z
use warnings;
use strict 'refs';
my $stuff;
sub BEGIN {
$stuff = 1;
}
print "$stuff\n";
- syntax OK

>perl
use strict;
use warnings;
my $stuff;
BEGIN { $stuff = 1; }
print "$stuff\n";
^Z
1

Die Leute mit der uninitialized-Warnung sollten mal die Variante mit der Variablendeklaration ohne Initialisierung (letzter perl-Aufruf, oder die Deparse-Ausgabe) laufen lassen. Meine Vermutung wäre, dass die ohne Mucken läuft.
I sense a soul in search of answers.

View full thread Globale Variable in BEGIN Block setzen: Interaktion von my, our, undef und BEGIN