Füzérek

A füzérek, vagy sztringek igen gyakran előfordulnak a Perl programokban. Ennek az alapvető oka, hogy a Perl eredetileg UNIX rendszeradminisztrációs feladatok automatizálására találták ki, és mivel a UNIX a rossz nyelvek szerint nem más, mint szövegfájlok halmaza, ezért természetes, hogy a füzérek kezelése igen erős a Perl nyelvben.

A füzérek ugyanolyan skalár értékek, mint az egész vagy a valós számok. A program szövegében előfordulnak számos helyen, általában ' vagy " jelek között, vagy néhány esetben akár még anélkül is.

Az alapvető különbség az aposztróf és az idézőjel használata között, hogy az aposztrófok között leírt füzér az amit leírtunk, minden egyes karakter, ahogy szerepel, míg az idézőjelek használatánál a Perl részben értelmezi a füzért (interpolált füzér). A következő kis program

$a = 'alma';
print "$a\n";
print '$a\n';
kimenete
alma
$a\n
amiből rögtön két dolog is látszik:
  1. Az interpolált füzéren belül nem csak a speciális karaktereket, mint az újsor karakter értelmezi a Perl, hanem a változóneveket is kifejti.
  2. A nem interpolált füzérekben viszont még a fordított törtvonalat is közönséges karakternek tekinti a nyelv.
Nézzünk egy összetettebb példát:
$alma = 'kurta';
$korte[3] = 4;
$szilva = [ 13, 55, 33];
$szolo{ringlo} = 'hosszi';
$dinnye = { birka=>'emloves',
            csirke=>'mador',
            ponty=>'hallo'};
sub barack { return 'narancs' }

print "1=$alma $korte[3] $szilva->[0]\n";
print "2=$$szilva[1] $dinnye->{csirke} $$dinnye{ponty}\n";
print "3=@$szilva\n";
print "4=&barack\n";
aminek kimenete
1=kurta 4 13
2=55 mador hallo
3=13 55 33
4=&barack

Ebből az látszik, hogy nagyon sok mindent értelmez a nyelv az interpolált füzérekben, de nem mindent. Például nem hív meg szubrutint.

A füzérekkel kapcsolatban mindenképpen érdemes megjegyezni azt, hogy a Perl számára A füzér nem egy karaktertömb, mint a C számára, hanem egy bájtsor. Ennek következménye, hogy a Perl nem null karakterrel zárja le füzéreket, hanem tárolja minden egyes füzér hosszát. Emiatt a null karakter, éppen úgy, mint bármilyen más bájtérték része lehet egy füzérnek.


Verhás Péter Home Page . . . . . . Perl röviden, tartalomjegyzék