[ Pobierz całość w formacie PDF ]
.Kontekst skalarny a kontekst listowyDwa podstawowe konteksty Perla to kontekst skalarny i listowy.Kiedy Perlspodziewa siê listy, traktuje dane w kontekœcie listowym, a kiedy spodziewa siêskalara, dane trak­tuje w kontekœcie skalarnym.Jeœli zatem oczekuje siê listy,dane traktuje siê jak listê, a jeœli oczekuje siê skalara, dane s¹ traktowanejako dane skalarne.Innymi s³owy, spo­sób traktowania danych jest w Perluokreœlony niejawnie, przez kontekst, w którym danych siê u¿ywa — nie mo¿na tegosposobu okreœliæ jawnie, programowo.Tabela A.2.Znaki specjalneZnak specjalny Znaczenie\’ Cudzys³Ã³w pojedynczy.\” Cudzys³Ã³w podwójny.\t Tabulator.\n Znak nowego wiersza.\u Zamiana nastêpnego znaku na wielk¹ literê.\l Zmiana nastêpnego znaku na ma³¹ literê.\U Zmiana wszystkich dalszych znaków na wielkie litery.\L Zmiana wszystkich dalszych znaków na ma³e litery.\Q Dodanie lewego ukoœnika do wszystkich dalszych znaków niealfanumerycznych.\E Koñczy dzia³anie \U, \L lub \Q.\r Znak powrotu kursora.\f Otwarcie strony.\b Backspace.\a Sygna³ dŸwiêkowy.\e Escape.\033 Znak zapisany w postaci kodu ósemkowego.\x1b Znak zapisany w postaci kodu szesnastkowego.\c[ Znak kontrolny.TabliceZmienne tablicowe zaczynaj¹ siê znakiem @.Tablicê tworzy siê, przypisuj¹ctakiej zmiennej listê: @tablica = (l, 2, 3).Do elementów tablicy mo¿na siêodwo³ywaæ jako do skalarów, poprzedzaj¹c odwo³ania znakiem $, a ¿¹dany indekspodaje siê w na­wiasach kwadratowych.Jeœli tablica nazywa siê @tablica, towyra¿enie $#tablica okreœla indeks ostatniej wartoœci z tej tablicy.AsocjacjeAsocjacje s¹ nazywane tak¿e tablicami asocjacyjnymi.Ta ostatnia nazwa doœædobrze opisuje ich konstrukcjê: do wskazywania danych — zamiast indeksównumerycznych — u¿ywa siê w nich klucza, który ma postaæ napisu, a jest zwi¹zanyz potrzebn¹ wartoœci¹.Nazwy asocjacji poprzedza siê znakiem %.Jak w przypadkutablic, przy pracy z poszczególnymi elementami asocjacji u¿ywa siê wyró¿nik^ $.Do wartoœci mo¿na odwo³ywaæ siê przez ich klucz:$wartoœæ = $asocjacja{$klucz}Typy ogólneTypy ogólne Perla zachowuj¹ siê jak aliasy.Typów tych mo¿na u¿ywaæ do wi¹zanianazwy zmiennej (na przyk³ad dane) z inn¹ nazw¹ (na przyk³ad takzedane).W tensposób wszystkie zmienne, w których u¿yto nowej nazwy, czyli $takzedane,@takzedane, %takzedane i tak dalej, odnosz¹ siê do tych samych danych, cozmienne zawieraj¹ce pierwsz¹ nazwê, odpowiednio $dane, @dane, %dane i takdalej.OperatoryW tabeli A.3 zestawiono operatory Perla w kolejnoœci malej¹cego priorytetu.Przypisywanie wartoœciOperator przypisania, =, przypisuje zmiennej wartoœæ:$zmiennal = 5Mo¿na te¿ u¿yæ skróconego zapisu operatorów przypisania, polegaj¹cego napo³¹czeniu przypisania z innym operatorem, na przyk³ad:$dwarazy *= 2Powy¿sze przypisanie przemno¿y wartoœæ $dwarazy przez 2 i wynik zapisze zpow­rotem w tej samej zmiennej.Oto komplet dozwolonych operatorówprzypisania:= **= += &= = ||=.= %= ^= x=Operatory porównaniaOperatory porównania pozwalaj¹ porównaæ ze sob¹ dwa argumenty i zwracaj¹wartoœæ zgodnie z tabel¹ A.4.Tabela A.3.Operatory PerlaOperatory £¹cznoœæTermy i lewostronne operatory list lewostronna-> lewostronna++ -- nie dotyczy** prawostronna! ~ \ unarny + unarny - prawostronna=~ !~ lewostronna* / % x lewostronna+ -.lewostronna> lewostronnanazwane operatory unarne, operatory testowania plików nie dotyczy< > lt gt le ge nie dotyczy++ != ó eq ne cmp nie dotyczy& lewostronna| ^ lewostronna&& lewostronna|| lewostronna.nie dotyczy?: prawostronna= += -= *= prawostronna, => lewostronnaprawostronne operatory list nie dotyczynot prawostronnaand lewostronnaor xor lewostronnaOperatory równoœciOperatory równoœci porównuj¹ dwa argumenty i zwracaj¹ wartoœæ zale¿n¹ od wynikuporównania—zestawiono je w tabeli A.5.Tabela A.4.Operatory porównaniaOperator Typ danych Zwraca< liczbowe Prawdê, jeœli lewy argument jest mniejszy od prawego.> liczbowe Prawdê, jeœli lewy argument jest wiêkszy od prawego.= liczbowe Prawdê, jeœli lewy argument jest wiêkszy lub równy z prawym.lt tekstowe Prawdê, jeœli lewy argument jest mniejszy od prawego.gt tekstowe Prawdê, jeœli lewy argument jest wiêkszy od prawego.le tekstowe Prawdê, jeœli lewy argument jest mniejszy lub równy z prawymge tekstowe Prawdê, jeœli lewy argument jest wiêkszy lub równy z prawym.Tabela A.5.Operatory równoœciOperator Typ danych Zwraca== liczbowe Prawdê, jeœli lewy argument jest równy prawemu argumentowi.!= liczbowe Prawdê, jeœli lewy argument nie jest równy prawemu argumentowi.liczbowe -1, 0 lub 1 w zale¿noœci od tego, czy lewy argument jestnumerycznie odpowiednio mniejszy, równyb¹dŸ wiêkszy od prawego argumentu.eq tekstowe Prawdê, jeœli lewy argument jest równy prawemu argumentowi.ne tekstowe Prawdê, jeœli lewy argument nie jest równy prawemu argumentowi.cmp tekstowe -1, 0 lub 1 w zale¿noœci od tego, czy lewy argument jestodpowiednio mniejszy, równy b¹dŸ wiêkszyInstrukcja ifInstrukcja i f sprawdza, czy podany w nawiasach warunek jest spe³niony.Jeœliwyra­¿enie w nawiasach zwraca wartoœæ prawdy (czyli nie 0), wykonywany jestblok kodu instrukcji if.Istnieje te¿ mo¿liwoœæ wykorzystania frazy elsezawieraj¹cej kod wykonywany w przypadku niespe³nienia warunku, mo¿na w koñcuzastosowaæ frazê elsif (nie myliæ z else if czy elseif), która pozwalazrealizowaæ dodatkowe kon­trole.Oto sk³adnia instrukcji i f:if (WYRA¯ENIE) BLOKif (WYRA¯ENIE) BLOK else BLOKif (WYRA¯ENIE) BLOK elsif (WYRA¯ENIE) BLOK.else BLOKInstrukcja unlessInstrukcja unless dzia³a wprost przeciwnie ni¿ instrukcja if — blok kodu jestwyko­nywany wtedy, gdy podany warunek nie zostanie spe³niony.Oto sk³adniaunless:unless (WYRA¯ENIE) BLOKunless (WYRA¯ENIE) BLOK else BLOKunless (WYRA¯ENIE) BLOK elsif (WYRA¯ENIE) BLOK.else BLOKInstrukcja forPêtli for u¿ywa siê do wielokrotnego wykonywania instrukcji, zwykle stosuje siêprzy tym indeks pêtli.Oto konstrukcja pêtli for:ETYKIETA for (WYRA¯ENIE; WYRA¯ENIE; WYRA¯ENIE) BLOKPierwsze wyra¿enie jest wykonywane przed wykonaniem bloku, drugie natomiastjest sprawdzane przed ka¿d¹ iteracj ¹ pêtli i jeœli jego wartoœci¹ jest fa³sz,pêtla jest koñczona (w zwi¹zku z tym blok mo¿e nie wykonaæ siê ani razu).Trzecie wyra¿enie jest wyko­nywane po ka¿dej iteracji.Instrukcja foreachPêtla ta jest w³aœciwie t¹ sam¹ pêtl¹ co for, ale programiœci czêsto u¿ywaj¹jej do ite­racji po elementach listy [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • orla.opx.pl