HOME -> PERL_TUTORIAL -> perl-04 Lørdag, 19. august 2017

HOME
FORUM
OPEN DIRECTORY
BOOKMARK
Offentliggjort 2003 - Opdateret n/a

Lektion 04

Skalare variabler

Indhold

 

TopIndledning
Perl arbejder med tre forskellige typer af variabler, det drejer sig om skalare, arrays og associeret array (hashes).

Variable navne som $flintstone eller $Flinistone eller $FLINTstone refererer til hver sin variabel. Perl skelner altså mellem store og små bogstaver.

Tildeling af variabel navne skal overholde visse regler, se evt. lektionen "Regler for variable navne" (kommer i en senere lektion).

Ydermere gemmes variabler fra skalar, array og hashes forskellige steder i hukommelsen. Derfor kan du have en skalar variabel og en array variabel som begge hedder flintstone.

Denne artikel beskæftiger sig med skalare variabler.

 

TopHvad er en skalar variable?
I perl bliver en variabel som kan indeholde en streng (tal eller en tekst) betegnet som en skalar. Skalare variabler begynder altid med et dollar tegn ($), og kan indeholde en enkelt værdi. I perl er en skalar variable den simpleste form for variabel definition.

En skalar variable kan have følgende konstruktion:


my $navn = "Flintstone"; #indeholder en tekst

eller

my $navn = "123456"; #indeholder numerisk værdi


Hvis du har brug for det, kan du undlade at erklære din variabel. I perl vil en ikke erklæret variabel opfattes som værende globalt. Dog vil du, hvis du anvender optionen -w, få en påmindelse om at du har en ikke erklæret variabel.


my $navn; #en ikke erklæret variabel


 

TopEksempel, skalar variable

#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

my $navn = "Fred";
my $alder = 35;
my $navn_2 = "Wilma";
my $alder_2 = $alder-2;
my $enavn = "Flintstone";

print "Content-type: text/html\n\n";
#Her kan du placere din doctype!
print "<html><head><title>Eksempel på skalar</title>\n";
print "</head><body>\n";

print "$navn $enavn er mit navn, jeg er $alder år.<br>\n";
print "Min kone hedder $navn_2, hun er $alder_2 år.<br>\n";

print "</body></html>\n";


Resultat:


Gennemgang af scriptet.

I eksemplet erklæres fem skalarer, disse er $navn, $alder, $navn_2, $alder_2 og $enavn. Vi erklærer skalarerne via my, dette er nødvendig da vi anvender use strict; Hvis vi ikke anvendte use strict; kunne skalarerne være erklæret uden my. Men ved at erklære skalarerne på denne måde, kan en eventuel fejlsøgning forenkles, scriptet bliver også mere overskuelig ved denne metode. Hver skalar har fået tildelt en værdi via lighedstegnet (=). På venstre side af lighedstegnet er skalaren og på højre værdien. Værdien kan som tidligere nævnt være en tekst eller et tal, det er op til dig hvilken værdi skalaren skal have. Dog skal en streng altid stå i anførselstegn eller citationstegn som det også kaldes, dette kan være dobbelte eller enkelt anførselstegn. Dette gennemgår jeg i en senere lektionen.

 

TopSkift indhold i en skalar variabel
En skalar kan altså indeholde en tekst eller en numerisk værdi, men .... en skalar kan skifte indhold undervejs. Ved hjælp af et lille eksempel vil jeg illustrere dette.


#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

my $tal = 1234567890;
my $tal_2 = substr ($tal,2,4);
$tal = $tal_2;

print "Content-type: text/html\n\n";
#Her kan du placere din doctype!
print "<html><head><title>Eksempel</title>\n";
print "</head><body>\n";

print "\$tal_2 er $tal_2<br /><br />\n";
print "Indhold i \$tal der oprindelig var 1234567890<br />\n";
print "er ændret til værdien $tal\n";

print "</body></html>\n";


Resultat:


Gennemgang af scriptet.

I eksemplet er der erklæret en skalar variabel der hedder $tal, denne har fået tildelt en talværdi, nemlig 1234567890. Endvidere er der defineret en anden skalar som hedder $tal_2, denne skalar for tildelt en retur værdi fra funktionen substr.
substr ($tal,2,4); gør følgende: Fra vores skalar variabel $tal som er 1234567890 starter vi ved position to som er 3 (i perl er første position 0). Herefter tages fire positioner i alt, nemlig 3456.

 

Næste lektion omhandler brugen af arrays og lister.

ARRAYS OG LISTER >>

 

Copyright © 2002 - 2017
NETeXplorer.dk · All rights reserved Top