sivut.web

ohjeita web-sivuston tekijälle

Perl-opas: Skalaarimuuttujat

Yleistä

Skalaarimuuttujat ovat perl-kielen tavallisimpia muuttujia. Ne voivat saada arvoikseen sekä merkkijonoja että numeroita. Viittaukset skalaarimuuttujiin alkavat aina merkillä $, myös silloin kun viitataan skalaariin, joka on osa taulukkoa.

Esimerkiksi:

$priority = 9;

asettaa muuttujan $priority arvoksi 9, mutta samalle muuttujalle voitaisiin yhtä hyvin antaa arvoksi merkkijono:

$priority = 'high';

Perl hyväksyy myös numerot merkkijonona:

$priority = '9';
$default = '0009';

ja voi edelleen suorittaa niin aritmeettisia kuin muitakin operaatioita. Muuttujien nimet koostuvat numeroista, kirjaimista ja alaviivoista, mutta eivät saa alkaa numerolla ja muuttuja $_ on varattu erikoismuuttuja, josta lisää myöhemmin. Perl käsittelee isoja ja pieniä kirjaimia eri asioina muuttujien nimissä, eli $a ja $A ovat eri muuttujia.

Arvojen liittäminen

$a = $b   asettaa $a:n arvoksi $b:n
$a += $b  lisää $b:n $a:han
$a -= $b  vähentää $b:n $a:sta
$a .= $b  lisää $b:n $a:n

HUOM! Kun Perlin yhdistäessä arvot $a = $b se tekee kopion $b: stä ja sen jälkeen yhdistää sen $a: han. Joten kun seuraavan kerran muutat $b: n arvoa $a ei muutu.

Muista operaattoreista saa tietoa kirjoittamalla UNIX:ssa man perlop.

Interpolointi

Seuraava koodi tulostaa "apples ja pears" käyttäen yhdistelyä:

$a = 'apples';
$b = 'pears';
print $a . ' and ' . $b;

Olisi mukavampaa käyttää ainoastaan yhtä merkkijonoa mutta rivi

print '$a and $b';

tulostaa kirjaimellisesti "$a and $b" mikä ei ole se mitä haluttiin. Sen sijaan voidaan käyttää kaksinkertaisia lainausmerkkejä yksinkertaisten asemasta:

print "$a and $b";

Kaksinkertaiset lainausmerkit pakottavat kaiken koodin interpoloinnin, mukaanlukien muuttujien tulkinnan. Tämä on siistimpi ratkaisu kuin alkuperäinen lausekkeemme. Muita tulkittavia merkkejä ovat erikoismerkit kuten:

\n rivinvaihto
\t sarkain

Joista lisää Regular Expression-osassa.

Seuraava sivu: Taulukot.


Käyttäjien kommentit

14.10.2004 12:32
Marsu

Jos <blockquote>print $a . ' and ' . $b;</blockquote> todella tulostaa "apples ja pears" niin... :-)

11.11.2007 01:43
Tate

lol. nyyps. 8)

Lisää oma kommentti


Ari Paulin
ari.paulin@pp.htv.fi
http://www.pp.htv.fi/apaulin/