SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] To perl spørgsmål



Anders Bruun Olsen <sslug@sslug> writes:

> Jeg synes bare at den ofte (med -w) brokker sig over uninitialized variable 
> eller lign. hvis jeg ikke definerer den med 'my' .. 

Defor skal du også netop definere den uden for funktionen. Hvis du
ønsker en global variabel er det æstetisk set også pænest at erklære
den på højeste nivo.

Hvis det du egentligt ønsker er en variabel der er global, men kun
tilgængelig fra funktionen, så er du ved at genopfinde objekter, og så
er det nok en god ide at læse perltoot(1) eller perlboot(1).

En anden mulighed ville dog være at anvende en closure:

sub gen_foo {
    my $private_global = 42;
    return sub { return $private_global++; }
}

$foo = gen_foo;

print &$foo, "\n";
print &$foo, "\n";
print &$foo, "\n";
print &$foo, "\n";


Du kan ikke tilgå $private_global på andre måder end gennem
&$foo. Enhver anden måde at referere til den er effektivt smidt
væk. For de fleste perl-programmører vil ovenstående nok være en smule
sort. De fleste vil nok lave et objekt til at udføre ovenstående.

-- 
Linux lovers hate Windows, BSD lovers like UNIX
  -- Set på OSNews.com


 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:54
Denne side vedligeholdes af MHonArc .