/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Implicit deklarering?
Fra : Morten P


Dato : 18-08-09 23:10

test.pl:

use strict;
use warnings;

my $x = undef;
my $y = $x->{'z'};
print ref($x) ."\n";

Output: HASH

Hvorfor kan jeg få lov til at anvende en udefineret variabel som var det en
hashref?

Hvorfor bliver det til en hashref derefter?





 
 
Peter Makholm (19-08-2009)
Kommentar
Fra : Peter Makholm


Dato : 19-08-09 05:19

"Morten P" <spam@spam.spam> writes:

> Hvorfor kan jeg få lov til at anvende en udefineret variabel som var det en
> hashref?

Du skal skelne imellem om variablem er deklareret (my, static, our,
local) eller om den har værdien 'undef'. Det du oplever hedder
autovivification og er dokumenteret i perlref manualsiden.

På CPAN er der et pragman-modul, der lader dig styre hvornår hashrefs
og arrayrefs bliver autovivificeret. Det modul indeholder også en
længere forklaring:

http://search.cpan.org/perldoc?autovivification

//Makholm

Morten P (19-08-2009)
Kommentar
Fra : Morten P


Dato : 19-08-09 18:01


"Peter Makholm" <peter@makholm.net> wrote in message
news:873a7ov3kl.fsf@vps1.hacking.dk...
> "Morten P" <spam@spam.spam> writes:
>
>> Hvorfor kan jeg få lov til at anvende en udefineret variabel som var det
>> en
>> hashref?
>
> Du skal skelne imellem om variablem er deklareret (my, static, our,
> local) eller om den har værdien 'undef'. Det du oplever hedder
> autovivification og er dokumenteret i perlref manualsiden.
>
> På CPAN er der et pragman-modul, der lader dig styre hvornår hashrefs
> og arrayrefs bliver autovivificeret. Det modul indeholder også en
> længere forklaring:
>
> http://search.cpan.org/perldoc?autovivification


Ahhaaaa!
Tak
Så fik jeg også det på plads!



Peter Makholm (19-08-2009)
Kommentar
Fra : Peter Makholm


Dato : 19-08-09 06:38

Peter Makholm <peter@makholm.net> writes:

> På CPAN er der et pragman-modul, der lader dig styre hvornår hashrefs
> og arrayrefs bliver autovivificeret. Det modul indeholder også en
> længere forklaring:

Der skulle så have stået pragma-modul.

//Makholm

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste