Porady
FAQ
Słownik
Sonda
-- LICZNIK --
Licznik: 84293108

PERL - operatory
Wszystkie opisane poniżej operatory stanowią (naszym zdaniem) podstawę do dalszej nauki języka Perl. Ich znajomość jest bardzo przydatna, gdyż w wielu przypadkach jest w stanie skrócić (i to bardzo znacznie) czas pracy, czy też analizy programu.

Operatory arytmetyczne
Operatory arytmetyczne działają na danych liczbowych. Zwracane wyniki są tego samego typu co dane wejściowe.
Język Perl dysponuje operatorami :


Należy pamiętać, że operator dzielenia "/" zawsze zwraca liczbę zmiennoprzecinkową a operator reszty modulo "%" zwraca zawsze liczbę całkowitą.
$wynik = 7/6;
Wartością zmiennej $wynik będzie liczba 1.1666....
$wynik = 4 % 3;
$wynik = 4.8 % 3.21;
Wartością zmiennej $wynik w obydwu powyższych przypadkach, będzie 1.

Operatory inkrementacji (++) oraz dekrementacji (--) mogą występować po prawej, jak i po lewej stronie zmiennej. W zależności od położenia, ich "zachowanie" jest różne.
--$x lub ++$x (operator po lewej stronie) - zmienia wartość zmiennej o jeden i przekazuje zmienną.
$x-- lub $x++ (operator po prawej stronie) - przekazuje wartość zmiennej i zmienia ją o jeden.
Zależność tę ilustruje przykład:
$x = 5;
print "Zmienna przed inkrementacją : $x\n";
$x++; #tu nie ma znaczenia po której stronie użyjemy operatora zwiększenia.
print "Zmienna po inkrementacji : $x\n";
$y = $x--;
print "Zmienna Y - $y oraz zmienna X - $x\n";
$z = --$y;
print "Zmienna Z - $z oraz zmienna Y - $y\n";

Przeanalizujmy powyższy kod : mamy zmienną $x, której przypisujemy wartość 5. Następnie zwiększamy ją o jeden (w tym przypadku, nie ma znaczenia czy operator inkrementacji/dekrementacji umieścimy po lewej czy po prawej stronie). W kolejnej instrukcji przypisujemy do zmiennej $y wartość zmiennej $x, po czym zmniejszamy wartość zmiennej $x o jeden. W kolejnej instrukcji zanim przypiszemy wartość zmiennej $y do zmiennej $z, zmiejszamy wartość zmiennej $y o jeden. Proste ;-)
W przypadku potęgowania nie ma już takich problemów.
$wynik = 2 ** 2; #dwa do potęgi drugiej
$wynik = 4 ** 0.5; #cztery do potęgi 1/2... czyli pierwiastek kwadratowy z czterech.
$wynik = 2 ** -2; #dwa do potęgi minus drugiej, czyli 1 / 2 do drugiej, czyli... 1/4.
$wynik = -2 ** -3; #minus dwa do potęgi minus trzeciej, czyli 1 / -2 do trzeciej, czyli... -1/8

Operatory porównania
Operatory porównania dokonują porównania dwóch argumentów. Rozróżniamy dwa rodzaje operatorów porównań - dla liczb oraz tekstowe.


Wszystkie powyższe operatory (oprócz <=>, cmp) zwracają wartość 1, gdy dana relacja, do której się odnoszą zachodzi, w przeciwnym wypadku zwrocony zostanie pusty łańcuch "", oznaczający 0 :
$x = 5;
$y = 7;
print ($x > $y); wyświetlony zostanie znak "", czyli nic ;-)
print ($y > $x)l; wyświetlona zostanie jedynka - 1.

Operator <=>, cmp zwraca jedną z trzech wartości : 1, 0, -1 w zależności od tego, czy "lewy" argument był większy, równy czy też mniejszy od "prawego".

Operatory logiczne
Operatory logiczne zwracają wartości "prawda" lub "fałsz". Analiza wyrażanie przebiega od lewej do prawej, przy czym przy logicznym "lub" analiza jest przerywana jeśli "lewy" argument jest prawdą oraz wtedy, gdy w logicznym "i" "lewy" argument jest fałszywy.


W przypadku logicznego "lub", jak łatwo się spodziewać, wyrażenie jest prawdziwe, gdy jeden z argumentów będzie prawdą.
if (($x == 5) || ($y ==7))
{
tutaj kod...
}
Powyższy fragment wykona się, gdy jeden z warunków będzie prawdziwy. Zagnieżdżone nawiasy wynikają z natury wyrażeń warunkowych - będziemy o tym pisać szerzej w "rozdziale" o pętlach i wyrażeniach warunkowych.
W przypadku logicznego "i" wyrażenie jest prawdziwe, gdy obydwa warunki są prawdziwe.
if (($x == 5) && ($y == 7))
{
tutaj kod...
}

Operator negacji służy do przekształcenia wyrażenia prawdziwego na fałszywe lub fałszywego na prawdziwe.


Operator warunkowy "?:" nie przez wszystkich uznawany jest za operator logiczny - jednakże ze względu na warunek "jeśli prawda to... jeśli fałsz..." można go za taki uznać.
Zakładając, że zmienna $x przyjęła wartość 5, po wykonaniu poniższej instrukcji:
$wynik = ($x ==5 ? 7 : 10);
zmienna $wynik przyjmie wartość 7. W przeciwnym wypadku, przyjmie wartość10.

Operatory działające na tekście
Działają tylko na tekście, umożliwiając jego łączenie, porównywanie, zwielokrotnienia.


Popatrzy na poniższe przykłady :
$napis = "to zostanie" . "połączone";
print "napis" x 3; słowo "napis" zostanie wyświetlone trzy razy
if ($napis =~ 'wzorzec')... Ten warunek będzie prawdziwy, gdy $napis będzie zgodny ze wzorcem
if ($napis !~ 'wzorzec')... Ten warunek będzie prawdziwy, gdy $napis nie będzie zgodny ze wzorcem

Do operatorów działających na tekście możemy zaliczyć także operatory tworzące listy "," i definiujące zasięg "..", aczkolwiek te dwa ostatnie są często nazywane operatorami listowymi.


Operatory przypisania
Operator przypisania = nadaje zmiennej konkretną wartość. Po połączeniu go z innymi operatorami otrzymujemy szereg przydatnych "skrótów", np.:
$zmienna *= wartość; - jest tożsame z $zmienna = $zmienna * wartość;

Użycie każdego z poniższych operatorów wymaga dwóch argumentów - lewej i prawej. Inaczej wyrażenie będzie błędne.


Operatory bitowe
Operatory bitowe działają na binarnych reprezentacjach liczb całkowitych - wyniki są przedstawiane w postaci liczb całkowitych.


Zatrzymajmy się chwilę przy operacjach na bitach. Nie dla wszystkich są one zrozumiałe... zatem, przeanalizujmy przykład z użyciem każdego z operatorów. Za każdym razem użyjemy tych samych danych wyjściowych :
$x = 6;
$y = 3;


Najpierw dokonamy zamiany podanych liczb decymalnych na binarne.
6 dwójkowo : 0110
3 dwójkowo : 0011


Operatory plikowe
Są to operatory, które dostarczają informacji o plikach, bez ich otwierania. Wiele spośród operatorów plikowych ma zastosowanie w systemach unixopodobnych.


Operatorów plikowych używamy podobnie jak instrukcji warunkowych, z tym, że nie używamy innych operatorów...
if (-e 'nazwa_pliku')
{...}

lub
$w = (-s 'nazwa_pliku');
print "Plik nazwa_pliku ma wielkość : $w";


Cofnij...Czytaj dalej...

Opracowanie
Zawadka Andrzej
Energosystem Web Studio

Ciekawe strony WWW
Tłumacz przysięgły angielski Gliwice
Gwarantujemy najwyższą jakość tłumaczeń, terminowość, poprawność merytoryczną, leksykalną i gramatyczną, poufność oraz profesjonalny wygląd i redakcję dokumentów.
Mayoral ubranka
Sklep LULA - odzież dziecięca prowadzony jest przez firmę Krywax s.c. Jesteśmy firmą rodzinną działającą w branży dziecięcej od 1985 roku. Prawie 30-letnie doświadczenie pozwala nam dobrze zrozumieć oczekiwania i potrzeby naszych najmłodszych klientów.

skrypty skrypty