_  _   ,_
/^\/^\-/ @D
~(________/ PERL.LT
|L |L
L L
Straipsniai  Funkcijos 
Funkcijos/scalar - priversti dirbti skaliariniame kontekste

  • scalar EXPR

    EXPR interpretuojamas kaip skaliaras ir gražinama EXPR reikšmė

        @counts = ( scalar @a, scalar @b, scalar @c );

    Funkcijos, kuri interpoliuotų išsireiškimą kaip sarašą (list), nėra, nes praktikoje to niekada neprisireikia. Visgi, jei tikrai norite taip padaryti, galima naudoti tokią konstrukciją @{[ (išsireiškimas) ]} , bet dažnai pakanka paprasčiausio (išsireiškimas),

    nes scalar yra unarinė (susidedanti iš vieno elemento) funkcija. Jei kartais vietoj EXPR panaudojamas sąrašas, paimtas į skliaustus, tai atitinka kablelį (comma operator) skaliariniame kontekste, t.y. skaičiuojami visi elementai, išskyrus paskutinį void kontekste (arba kitais žodžiais tariant, visai neskaičiuojami), o gražinamas paskutinis sąrašo elementas kaip skaliaras. To retai norima.

    Toliau einantis sakinys:

    	print uc(scalar(&foo,$bar)),$baz;

    yra ekvivalentus šiems dviems:

    	&foo;
    	print(uc($bar),$baz);

    Plačiau perlop apie unarines funkcijas ir kablelį.

algirdas@perl.lt 2005.04.11 - $dabar