[ Pobierz całość w formacie PDF ]
.2):pipe(READER, WRITER);autoflush WRITER 1;Poni¿szy kod zadzia³a tak samo:pipe(READER, WRITER);WRITER->autoflush(1);$~ — nazwa formatu raportowaniaZmienna ta zawiera nazwê obowi¹zuj¹cego formatu raportowania bie¿¹cego kana³uwyjœciowego.$+ — ostatnie dopasowanie nawiasówZmienna $+ zawiera ostatnie dopasowanie wzorca ujêtego w nawiasy.Spójrz nana­stêpuj¹cy przyk³ad:$text = "Here is the text.";$text =~ /(\w+) is the (\w+)./;print $+;textZmienna ta jest przeznaczona tylko do odczytu.$< — rzeczywisty UIDZmienna $< zawiera rzeczywisty UID (identyfikator u¿ytkownika) bie¿¹cegoprocesu, co jest przydatne w zasadzie tylko w systemie Unix.Oto przyk³ad:print $ — obowi¹zuj¹cy UIDZmienna $> zawiera obowi¹zuj¹cy aktualnie UID (identyfikator u¿ytkownika)bie¿¹­cego procesu.Zmienna ta jest przydatna w zasadzie tylko w systemie Unix.Oto przyk³ad:print $>;166$0 — nazwa programuZmienna $0 zawiera nazwê wykonywanego w³aœnie skryptu Perla, na przyk³ad:print $0;script.pl$ARGV — nazwa bie¿¹cego plikuZmienna $argv zawiera nazwê bie¿¹cego pliku, odczytywanego przez o.Na przyk³adskrypt mo¿na uruchomiæ nastêpuj¹co:%perl read.pl file.txtW tym przypadku $argv zawiera nazwê pliku przekazanego skryptowi w wierszupoleceñ:$text = ;print $ARGV;file.txt$n — dopasowanie numer nZmienne $n zawieraj¹ dopasowania wzorca odpowiadaj¹cego parze nawiasów numer n(o nawiasach dowiesz siê wiêcej w rozdziale 6.).Oto przyk³ad, w którymzmieniamy kolejnoœæ s³Ã³w w tekœcie:$text = "nie i tak";$text =~ s/(\w+) (\w+) (\w+)/$3 $2 $!/;print $text;tak i nieZmienne $l, $2 — i tak dalej — s¹ tylko do odczytu.Zagadnienie zwi¹zane:Odwo³ania do poprzednich dopasowañ%ENV —-ustawienia œrodowiskaAsocjacja %ENV zawiera ustawienia zmiennych œrodowiskowych, przy czym zestawklu­czy jest zale¿ny od stosowanego systemu operacyjnego.Zobacz, jakiego typuwartoœci mo¿na oczekiwaæ w systemie Unix:while(($key, $value) = each(%ENV)) {print "$key => $value\n";}SHELL => /bin/cshHOME => /home/username%INC — pliki w³¹czaneAsocjacja %INC zawiera jedn¹ pozycjê, która opisuje ka¿dy plik w³¹czonyinstrukcjami do i re¹uire.Kluczem jest nazwa pliku, wartoœci¹ po³o¿enie pliku(zreszt¹ tej w³aœnie asocjacji u¿ywa sam Perl do sprawdzenia, czy dany plik by³ju¿ w³¹czony).%SIG — obs³uga sygna³Ã³wAsocjacji %SIG mo¿na u¿yæ do okreœlania procedur obs³ugi sygna³Ã³w, na przyk³adzg³a­szanie b³êdów wy³¹cza siê nastêpuj¹co:local $SIG{_WARN _) - sub{};@_ — parametry procedurParametry przekazywane procedurom s¹ umieszczane w tablicy @_ i stamt¹d mo¿naje pobieraæ, jak w poni¿szym przyk³adzie:sub addem ($valuel = shift@_;$value2 = shift@_;print "$valuel + $value2 = ".($valuel + $value2)."\n";}addem(2, 2);2 + 2 = 4Zagadnienie zwi¹zane:Odczytywanie parametrów procedury@ARGV — parametry wiersza poleceñTablica @ARGV zawiera parametry wiersza poleceñ przekazane skryptowi.Za³Ã³¿myna przyk³ad, ¿e wywo³anie ma tak¹ postaæ:%perl script.pl a b c dJeœli skrypt wydrukuje elementy @ARGV, wynik bêdzie nastêpuj¹cy:print join(", ", @ARGV);a, b, c, dPierwszy parametr przekazany skryptowi to $ARGV[0], zatem $#ARGV to liczbaparametrów pomniejszona o jeden.@INC — po³o¿enie uruchamianych skryptówTablica @INC zawiera listê miejsc, w których Perl ma szukaæ skryptówuruchamianych poleceniami do, require i use, na przyk³ad:print join(', ', @INC);/usr/local/lib/perl5/sun/5.00502, /usr/local/lib/perl5,/usr/local/lib/perl5/site_perl/sun, /usr/local/lib/perl5/site_perl,Rozdzia³ 10.Wbudowane funkcje: przetwarzanie danychW skrócieFunkcje wbudowanePerl standardowo zawiera szereg funkcji wbudowanych, z których wielu ju¿u¿ywaliœ­my — na przyk³ad funkcji push umieszczaj¹cej w tablicy nowe wartoœci:push(@array, "raz");push(@array, "dwa");push(@array, "trzy");print $array[0];razW tym rozdziale przyjrzymy siê funkcjom Perla, przeznaczonym do przetwarzania iob­s³ugi danych (w tym funkcjom u¿ywanym do obs³ugi tekstu, sortowania danych),a tak­¿e matematycznym, obs³ugi tablic, asocjacji i innym.W nastêpnymrozdziale omówimy wbudowane funkcje obs³ugi wejœcia-wyjœcia oraz komunikacjimiêdzy procesami.Funkcje omawiane w tym rozdziale — poza grup¹ funkcji POSIX (Przenoœnyinterfejs dostêpu do systemu operacyjnego) — s¹ wbudowane bezpoœrednio w samegoPerla, zatem mo¿na ich u¿yæ w dowolnej chwili bez jakichkolwiek dodatkowychprzygoto­wañ.Wiele z nich nieraz ju¿ stosowaliœmy, zatem nie wymagaj¹ onedodatkowych wstêpów — od razu przejdziemy do szczegó³Ã³w.Zagadnienia:abs — wartoœæ bezwzglêdnaFunkcja ta zwraca wartoœæ bezwzglêdn¹ liczby podanej jako parametr (jeœliparametr nie zostanie podany, funkcja u¿yje wartoœci ze zmiennej domyœlnej$_):abs WARTOŒÆabsOto przyk³ad:print abs -5;5atan2 — arcus tangensFunkcja atan2 zwraca arcus tangens stosunku Y/x (zwracana wartoœæ nale¿y doza­kresu od -pi do pi):atan2 Y, XNie istnieje natomiast w Perlu funkcja tan (jest jednak dostêpna w pakieciePOSIX ja­ko POSIK::tan.Zajrzyj do punktu „POSDC (grupa funkcji)" w dalszejczêœci tego rozdzia³u).Wartoœæ tangensa mo¿na te¿ oczywiœcie uzyskaæ, dziel¹c sinus przez cosinus.chomp — usuniêcie koñców wierszyFunkcja chomp usuwa z tekstu lub tekstów koñce wierszy.Niepodanie parametrówfun­kcji chomp powoduje u¿ycie wartoœci zmiennej $_:chomp ZMIENNAchomp LISTAchompFunkcja chomp zwraca liczbê znaków usuniêtych ze wszystkich przekazanychpara­metrów.W przypadku u¿ycia tej funkcji na liœcie usuwane s¹ koñcewszystkich elemen­tów listy, ale zwracana wartoœæ dotyczy tylko ostatniegoelementu.Omawianej funkcji zwykle u¿ywa siê do usuwania znaków koñca wierszaze strumienia wejœciowego, na przyk³ad:while () {chomp;print;}Do okreœlenia, co jest zakoñczeniem wiersza, funkcja chomp wykorzystuje zmienn¹$/.chop — usuniêcie ostatniego znakuFunkcja chop usuwa z tekstu lub tekstów ostatni znak i go zwraca.Jeœliniepodane zos­tan¹ parametry tej funkcji, chop u¿yje wartoœci zmiennej $_:chop ZMIENNAchop LISTAchopJeœli funkcja zostanie uruchomiona na liœcie, jest ona wykonywana na wszystkichele­mentach tej listy, ale zwracana wartoœæ dotyczy ostatniego elementu.Otoprzyk³ad:while () {chop ;print;}Przyjmuje siê, ¿e zamiast chop bezpieczniej jest u¿ywaæ funkcji chomp, gdy¿stosuje ona jedynie znaki koñca wiersza.chr — znak o podanym kodzieFunkcja chr zwraca znak odpowiadaj¹cy podanemu kodowi ASCII.Brak parametrupowoduje u¿ycie zmiennej $_:chr LICZBAchrOto przyk³ad:print chr 65;Acos — cosinusFunkcja cos zwraca wartoœæ podanego w radianach k¹ta (dwa pi radianów to k¹tpe³ny, 360°).Jeœli nie zostanie podany parametr, funkcja u¿yje wartoœcizmiennej $_.cos WYRA¯ENIEcosAby uzyskaæ wartoœæ arcus cosinusa, nale¿y zastosowaæ funkcjê POSIX::acos(zajrzyj do punktu „POSIX (grupa funkcji)" w dalszej czêœci tego rozdzia³u).each — pary kluczy i wartoœci asocjacjiW kontekœcie list funkcja each zwraca pary klucz+wartoœæ (jako listy)asocjacji [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • listy-do-eda.opx.pl