upakovannom vide. Dlya raspakovki primenyajte: ($a, $b, $c, $d) = unpack('C4',$addr[0]); getsockname sokit Vozvrashchaet upakovannyj adress sokita lokal'noj mashiny. getsockopt sokit, uroven', opciya Vozvrashchaet opciyu sokita. glob vyrazhenie Vozvrashchaet spisok fajlov udovletvoryayushchih vyrazheniyu s '*' kak v komande ls. gmtime vyrazhenie Perevodit mestnoe vremya poluchennoe funkciej time() vo vremya po Grinvichu. Obychno ispol'zuetsya v vide: ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=gmtime(time); goto metka goto vyrazhenie goto &podprogramma Buzuslovnyj perehod na metku. Nel'zya delat' perehod na metku v strukturu kotoraya dolzhna byt' iniciirovana naprimer podprogrammu ili cikl foreach i t.d. Vtoraya forma primenyaetsya dlya dinamicheskogo opredeleniya perehoda. Naprimer: goto ('metka1', 'metka2', 'metka3')[$i]; Zdes' pri $i = 0 budet perehod na 'metka1', $i = 1 na 'metka2' i t.d. Tret'ya forma (goto &podprogramma) dovol'no "hitryj" metod podmeny imeni vyzyvaemoj podprogrammy imenem tekushchej. |to ispol'zuetsya v metode avtozagruzki kogda nuzhno zapustit' druguyu proceduru no pod imenem tekushchej kak-budto ta byla vyzvana ran'she. grep blok, spisok grep vyrazhenie, spisok Vypolnyat blok ili vyrazhenie dlya kazhdogo elementa spiska. Peremennaya $_ soderzhit tekushchij element. Vozvrashchaet spisok elementov s kotorymi vyrazhenie dalo rezul'tat true. V skalyarnom kontekste vozvrashchaet kolichestvo rezul'tatov true. hex vyrazhenie Vosprinimaet vyrazhenie kak stroku shestnadcetirichnyh cifr i vozvrashchaet desyatichnoe znachenie. import V Pel net vstroennoj funkcii import, no est' metod s pomoshch'yu kotorogo moduli mogut eksportirovat' oblast' imen drugim modulyam. Podrobno smotrite funkciyu use(). index stroka, podstroka, poziciya index stroka, podstroka Vozvrashchaet poziciyu pervogo vhozhdeniya podstroki v stroke nachinaya s ukazannoj pozicii. Esli poziciya otsutsvuet to sravnenie nachinaetsya s nachala stroki. Otschet pozicii vedetsya s 0 esli tol'ko ne izmeneno znachenie vstroenoj peremennoj $[. Esli podstroka ne najdena to rezul'tat men'she pervoj pozicii na 1. Obychno eto -1. int vyrazhenie Vozvrashchaet celuyu chast' vyrazheniya. ioctl FILEHANDLE, FUNCTION, SCALAR Vypolnyaet sistemnyj vyzov ioctl(). V nachale programmy neobhodimo ukazat': require "ioctl.ph"; join vyrazhenie, spisok Soedinyaet stroki spiska ili massiva v odnu stroku s kodom razdelitelya ravnomu vyrazheniyu. keys hesh Vozvrashchaet massiv vseh klyuchej hesha. V skalyarnom kontekste - kolichestvo klyuchej. Poryadok sledovaniya klyuchej analogichen poryadku v each funucii. kill spisok Poslat' signal (pervyj element) ukazannym v spiske processam. Vozvrashchaet kolichestvo processov kotorye signal prinyali. last metka last Funkciya analogichnaya break v S. Preryvaet cikl i perehodit na ukazannuyu metku. Esli metki net na blizhajshij vneshnij cikl. Blok continue ne vypolnyaetsya. lc vyrazhenie Preobrazovat' stroku v bukvy nizhnego registra. lcfirst vyrazhenie Zamenit' pervuyu bukvu stroki na maluyu. length vyrazhenie Vozvrashchaet dlinu stroki vyrazheniya. link OLDFILE, NEWFILE Sozdat' fajl NEWFILE svyazannyj s fajlom OLDFILE. listen SOCKET, QUEUESIZE Vypolnit' sistemnyj listen(). local spisok Ob座avlyaet perechislennye peremennye kak lokal'nye v tekushchem bloke ili podprogramme. Esli ukazano dva i bolee imeni ih neobhodimo zaklyuchit' v kruglye skobki. Predpochtitel'nej ispol'zovat' funkciyu my(). localtime vyrazhenie Preobrazovat' 9-elementnyj massiv vozvrashchaemyj fugkciej time otnositel'no mestnogo vremeni. Upotreblyaetsya kak: ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); log vyrazhenie Vozvrashchaet natural'nyj logarifm vyrazheniya. lstat fajl lstat vyrazhenie To zhe chto i sistemnyj vyzov stat() no kasatel'no ssylki na fajl a ne samogo fajla. m// Operator soavpadeniya. Smotri glavu "Operatory" map blok, spisok map vyrazhenie, spisok Vypolnyaet blok ili vyrazhenie dlya kazhdogo elementa spiska. Vozvrashchaet spisok rezul'tatov. mkdir direktoriya, prava Sozdat' direktoriyu s ukazannymi pravami dostupa. Vozvrashchaet 1 pri uspehe i 0 pri neudache. msgctl ID, CMD, ARG Sistemnyj vyzov msgctl() System V msgget KEY, FLAGS Sistemnyj vyzov msgget() System V msgsnd ID, MSG, FLAGS Sistemnyj vyzov msgsnd() System V msgrcv ID, VAR, SIZE, TYPE, FLAGS Sistemnyj vyzov msgrcv() System V my spisok Ob座avlyaet lokal'nymi peremennye v spiske. Esli dva ili bolee imeni ih neobhodimo zaklyuchit' v kruglye skobki. next metka next Analogichen continue v S. Perehod k sleduyushchej iteracii v cikle. Esli v cikle prisutsvuet blok continue on tak zhe vypolnyaetsya. Esli metka otsutsvuet - perehod na blizhajshij vnutrennij cikl. no Module spisok. Isklyuchit' ispol'zovanie ukazannyh modulej. oct vyrazhenie Vozvrashchaet desyatichnoe chislo predstavlennoe vos'merichnymi ciframi. open fajl,vyrazhenie open fajl Otkryt' fajl s ukazannym imenem. Argument "fajl" - eto fakticheski ukazatel' na blok opisaniya fajla. Esli imya (vyrazhenie) fajla otsutsvuet to imya schitaetsya takim zhe kak i ukazatel' fajla. Esli pered imenem stoit simvol '<' to fajl otkryvaetsya tol'ko na chtenie (znachenie po umolchaniyu). Esli '>' - na zapis'. Esli '>>' - na dobavlenie zapisej. '+>' ili '+<' - fajl otkryt na chtenie i zapis' odnovremenno. Esli imya fajla nachinaetsya s simvola '|' to imya schitaetsya sistemnoj komandoj na vhod kotoroj vyvodyatsya dannye (potok). Imya '-' - standartnyj vhod (STDIN), '>-' - standartnyj vyvod (STDOUT). Funkciya vozvrashchaet true pri uspehe i false - neudache. Esli imya (vyrazhenie) nachinaetsya s simvolov ">&" to ostatok imeni schitaetsya imenem ukazatelya fajla kotoryj okryvaetsya povtorno. Simvol '&' mozhet stoyat' posle '<', '>>', '+>', '+>>' i '+<'. Rezhim povtornogo otkrytiya dolzhen sootvetsvovat' pervomu. Vyrazhenie vida "<&=N" gde N -chislo, ekvivalentno sistemnomu vyzovu fdopen(). Esli imya "|-" ili "-|" to proishodit "rasshcheplenie" (fork) processa na potomka i roditelya. Pri etom vozvrashchaetsya nomer processa potomka (PID) vnutri roditel'skogo processa i 0 - vnutri potomka. Pri etom zapis'/chtenie v fajl roditel'skim processom vosprinimaetsya kak chtenie/zapis' potomkom. Dlya potomka eto standartnyj vvod/vyvod. Roditel'skij process zhdet zaversheniya potomka posle zakrytiya potoka i poluchaet kod zaversheniya v peremennoj $?. Imya fajla ne dolzhno soderzhat' probelov kak v nachale tak i v konce. opendir ukazatel', vyrazhenie Otkryt' direktoriyu s imenem vyrazheniya dlya obrabotki funkciyami readdir(), telldir(), seekdir(), rewinddir() i closedir(). Vozvrashchaet true pri uspehe. ord vyrazhenie Vozvrashchaet ascii kod pervogo simvola vyrazheniya. pack shablon, spisok Upakovyvaet spisok v dvoichnuyu strukturu po shablonu. SHablon - eto stroka simvolov opisyvayushchaya poryadok i tip upakovannyh znachenij. A - tekstovaya stroka, dobavlyaetsya probelami. a - tekstovaya stroka, dobavlyaetsya 0 simvolom. b - bitovaya stroka (vozrastayushchaya numeraciya bit) B - bitovaya stroka (ubyvayushchaya numeraciya bit) h - shestnadcaterichnaya stroka ( mladshij bajt - pervyj) H - shestnadcaterichnaya stroka (starshij bajt pervyj) c - simvol so znakom C - simvol bez znaka. s - korotkoe celoe (odin bajt) so znakom. S - korotkoe celoe bez znaka. i - celoe (dva bajta) so znakom. I - celoe bez znaka. l - dlinnoe celoe (4 bajta) so znakom. L - dlinnoe celoe bez znaka. n - korotkoe v "setevom" formate. N - dlinnoe v "setevom" formate. v - korotkoe v "VAX" formate. V - dlinnoe v "VAX" formate. f - single float. F - double float. p - ukazatel' na stroku ogranichennuyu 0. P - ukazatel' na strukturu s fiksirovannoj dlinoj. u - upakovka uuencode. x - nul'-bajt X - rezervnyj bajt. @ - zapolnit' nulyami poziciyu. Za kazhdoj bukvoj mozhet stoyat' chislo oznachayushchee kolichestvo povtorov. Dlya vseh tipov za isklyucheniem 'a', 'A', 'b', 'B', 'h' i 'H', upakovyvaetsya maksimal'no vozmozhnoe kolichestvo znachenij iz spiska. Simvol '*' posle tipa oznachaet ispol'zovat' ostavshiesya parametry. Tip 'a' i 'A' ispol'zuet tol'ko odno znachenie iz spiska i dobavlyaet ostatok polya libo nul'-simvolami libo probelami (pri raspakovke po tipu 'A' probely i nuli otbrasyvayutsya, a po 'a' - net). Tipy 'b' i 'B' upakovyvayut stroku v ukazannoe chislo bit. Tak zhe kak i 'h' i 'H' v chislo niblov (bajt). 'P' - upakovyvaet ukazatel' na strukturu s ukazannoj dlinoj. CHisla s plavayushchej zapyatoj (floats i double) zapisyvayutsya v standartnom dlya kazhdoj mashiny formate i mogut byt' raznymi dlya raznyh tipov mashin. Zamet'te, chto Pel vsegda ispol'zuet dvojnuyu tochnost' (double) poetomu upakovka i raspakovka po tipu 'f' privedet k potere tochnosti. SHablony dlya raspakovki i upakovki sovershenno odinakovy. Primery: print(pack("ccc",65,66,67)); # Rezul'tat ABC print(pack("A4A3","ab","cdefg")); # "ab cde" print(pack("a4a3","ab","cdefg")); # "ab\0\0cde" pipe READHANDLE, WRITEHANDLE Analogichen sistemnomu pipe(). pop massiv Udalyaet i vozvrashchaet poslednij element massiva. Dlina massiva umen'shaetsya na 1. Rezul'tat ne opredelen esli massiv pustoj. Esli imya massiva otsutsvuet to izvlekaet iz @ARGV dlya golovnoj programmy i @_ dlya polprogrammy. pos skalyar Vozvrashchaet smeshchenie ot poslednego m//g poiska. print fajl spisok print spisok print Vyvodit stroku ili spisok strok v fajl. Vozvrashchaet true pri uspehe. Argument fajl mozhet byt' skalyarnoj peremennoj soderzhashchej imya ukazatelya fajla esli on otsutsvuet to osushchestvlyaetsya vyvod v standartnyj vyhodnoj potok STDOUT (esli ne bylo vyzova select()). Esli spisok otsutsvuet to vyvoditsya znachenie peremennoj $_. Dlya vyvoda po umolchaniyu v drugoj fajl neobhodimo ispol'zovat' funkciyu select(). Tak kak print rabotaet v spiskovom kontekste, to vse elementy spiska tak zhe vychislyayutsya v spiskovom kontekste t.e. funkcii budut vozvrashchat' spiskovye znacheniya. Argumenty mozhno zaklyuchat' v kruglye skobki. Esli ukazatel' fajla - element massiva to element nuzhno zaklyuchit' v figurnye skobki dlya vychisleniya bloka. printf fajl spisok printf spisok Analogichen vyzovu "print fajl sprintf(spisok)". Pervyj element spiska dolzhen byt' formatom printf() kak i v S. push massiv, spisok Dobavit' elementy massiva znacheniyami iz spiska. Dlina massiva uvelichivaetsya na kolichestvo elementov spiska. q/stroka/ qq/stroka/ qx/stroka/ qw/stroka/ Obychnye operatory strok. Smotri glavu Operatory. quotemeta vyrazhenie Vychislyaet vyrazhenie v kotorom metasimvoly rassmatrivayutsya kak obychnye simvoly. rand vyrazhenie rand Vozvrashchaet sluchajnoe chislo v diappazone mezhdu 0 i vyrazheniem. Esli vyrazhenie otsutsvuet - mezhdu 0 i 1. Dannaya psevdosluchajnaya posledovatel'nost' sbrasyvaetsya funkciej srand(). read fajl, skalyar, dlina, smeshchenie read fajl, skalyar, dlina Prochitat' ukazannoe chislo bajt iz fajla v skalyarnuyu peremennuyu. Vozvrashchaet kolichestvo prochitanyh bajt ili neopredelennost' pri oshibke. Dlina skalyara stanet ravnoj kolichestvu schitannyh bajt. Smeshchenie ukazyvayut esli dannye nuzhno pomestit' ne s samogo nachala stroki. readdir direktoriya Vozvrashchaet imya sleduyushchego fajla v direktorii otkrytoj komandoj opendir(). V skalyarnom kontekste vozvrashchaet vse ostavshiesya imena fajlov. Esli fajlov bol'she net to vozvrashchaet neopredelennost' v skalyarnom kontekste i pustuyu stroku v spiskovom. readlink vyrazhenie Vozvrashchaet znachenie simvolicheskoj ssylki. Pri oshibke vozvrashchaet neopredelennoe znachenie. recv SOCKIT, SCALAR, LEN, FLAGS Poluchit' soobshchenie iz sokita. Analogichen sistemnomu recvfrom(). redo metka redo Perejti k nachalu bloka minuya vychislenie usloviya i bloka continue. Esli metka otsutsvuet to perehod k blizhajshemu vneshnemu bloku. ref vyrazhenie Vozvrashchaet true esli vyrazhenie eto ssylka inache - false. Vozvrashchaemoe znachenie zavisit ot tipa ssylki. Sushchestvuyut sleduyushchie tipy ssylok: REF, SCALAR, ARRAY, HASH, CODE, GLOB Esli argument - ssylka na klass to vozvrashchaetsya imya klassa. Funkciya ref() analogichna funkcii typeof(). rename staroe_imya, novoe_imya_fajla Pereimenovat' fajl. Vozvrashchaet 1 v sluchae uspeha inache 0. require vyrazhenie require Esli vyrazhenie - chislo, trebuet chto by tekushchaya versiya Pel byla ne nizhe ukazannoj. Esli stroka - schityvaet bibliotechnyj fajl s ukazannym imenem esli on eshche ne prochitan. Poslednij operator bibliotechnogo fajla dolzhen vozvrashchat' true. Obychno eto stroka vida 1; Esli rasshirenie imeni fajla otsutsvuet to po umolchaniyu prinimaetsya ".pm" V dannoj funkcii mozhno ukazyvat' put' raspolozheniya fajla, a esli biblioteka raspolozhena v standartnoj sistemnoj oblasti Pel to vmesto require predpochtitel'nej ispol'zovat' use(). reset vyrazhenie reset Obychno ispol'zuetsya v blokah continue ciklov dlya ochistki peremennyh i poiska dlya povtornogo primeneniya. Vyrazhenie vosprinimaetsya kak spisok simvolov. Dlya ukazaniya diappazona mozhno primenyat' simvol minus '-'. Vse peremennye i massiva nachinayushchiesya s etih simvolov obnulyayutsya. Esli vyrazhenie otsutsvuet to obnulyaestya poisk ?shablon? dlya povtornogo poiska. Sbrasyvayutsya tol'ko peremennye tekushchego modulya. Primer: reset 'a'; # ochistit' vse peremennye nachinayushchiesya # bukvoj 'a' reset 'a-z' # vse peremennye s malyh bukv. Vyrazhenie vida: 'A-Z' upotreblyat' ne rekomenduestya t.k. obnulyayutsya vazhnye massivy @ARGV i @ENV. return spisok Vyhod iz podprogrammy s ukazannym kodom. Esli dannaya funkciya otsutsvuet to vyhod iz podprogrammy osushchestvlyaetsya s kodom poslednego vypolnennogo operatora. reverse spisok V spiskovom kontekste vozvrashchaet spisok s elementami v obratnom poryadke ukazannomu spisku. V skalyarnom kontekste vozvrashchaet stroku sperestavlennymi simvolami pervogo elementa spiska. rewindir direktriya Ustanavlivaet ukazatel' fajlov otkrytoj direktorii v nachalo dlya posleduyushchego chteniya funkciej readdir(). rindex stroka, podstroka, poziciya rindex stroka, podstroka Podobna funkcii index , no vozvrashchaet poziciyu poslednego vhozhdeniya podstroki v stroku. Esli ukazana poziciya, to prosmotr vypolnyaetsya do nee. rmdir direktoriya Udalit' ukazannuyu direktoriyu esli v nej net nikakih fajlov. Vozvrashchaet 1 pri uspehe i 0 pri ne udache. Pri etom peremennaya $! soderzhit kod (errno). s/// Operator podstanovki. Smotri glavu "Operatory". scalar vyrazhenie Vychislyaet vyrazhenie v skalyarnom kontekste i vozvrashchaet rezul'tat. V Pel net special'noj funkcii dlya prinuditel'nogo vychisleniya v spiskovom kontekste t.k. dlya dostatochno zaklyuchit' ego v kruglye skobki. seek fajl, poziciya, otschet Ustanovit' ukazatel' na proizvol'nuyu poziciyu v fajle. Esli otschet raven 0 - pozicionirovat' ot nachala fajla, esli 1 - ot tekushchego polozheniya, 2 - ot konca fajla. Vozvrashchaet 1 pri uspehe i 0 - neudache. seekdir direktoriya, poziciya Ustanovit' ukazatel' fajla v otkrytoj direktorii dlya posleduyushchego chteniya funkciej readdir(). Tekushchaya poziciya mozhet byt' poluchena funkciej telldir(). select fajl select Vozvrashchaet tekushchij ukazatel' fajla- po umolchaniyu ili delaet tekushchim ukazannyj. Takim obrazom esli v funkciyah print ili write ne ukazan fajl vyvoda to eto osushchestvlyaetsya v fajl ukazannyj select. Peremennye svyazannye s vyvodom tak zhe dejstvuyut na vyvod v etot fajl. select RBITS, WBITS, EBITS, TIMEOUT Vypolnyaet sistemnyj select() semctl ID, SEMNUM, CMD, ARG Sistemnyj vyzov semctl() dlya SYSTEM V. semget KEY, NSEMS, FLAGS Sistemnyj vyzov semget() dlya SYSTEM V. semop KEY, OPSTRING Sistemnyj vyzov semop() dlya SYSTEM V. send SOCKET, MSG, FLAGS, TO send SOCKET, MSG, FLAGS Poslat' soobshchenie cherez sokit. Analogichno sistemnomu send(). setpgrp PID, PGRP Ustanovit' nomer gruppy PGRP processu s nomerom PID 0 = dlya tekushchego processa. setpriority WHICH, WHO, PRIORITY Ustanovit' prioritet PRIORITY processu pol'zovatelya WHO i gruppe WHICH. setsockopt SOCKET, LEVEL, OPTNAME, OPTVAL Ustanovit' parametry sokita. Vozzvrashchaet neopredelennost' pri oshibke. shift massiv shift Udalyaet pervyj element massiva i vozvrashchaet ego znachenie. Esli massiv pustoj to rezul'tat neopredelennost'. Esli argument opushchen - obrabatyvaetsya massiv @ARGV v golovnoj programme ili @_ v podprogramme. shmctl ID, CMD, ARG Sistemnyj vyzov shmctl() System V shmget KEY, SIZE, FLAGS Sistemnyj vyzov shmget() System V shmread ID, VAR, POS, SIZE shmread ID, STRING, POS, SIZE Pishet ili chitaet segment obshchedostupnoj pamyati v System V. shutdown SOCKET, HOW Prekrashchaet rabotu sokita metodom HOW. sin vyrazhenie Vozvrashchaet v radianah sinus vyrazheniya. sleep vyrazhenie sleep Priostanavlivaet rabotu processa na ukazannoe chislo sekund ili zaciklivaetsya esli argument otsutsvuet. Rabota prodolzhaetsya esli poluchen signal SIGALARM. Vozvrashchaet vremya fakticheskoj pauzy. socket SOCKET, DOMAIN, TYPE, PROTOCOL Otkryvaet sokit i privyazyvaet ego k ukazatelyu SOCKET. socketpair SOCKET1, SOCKET2, DOMAIN, TYPE, PROTOCOL Sozdaet "bezymyannuyu" paru sokitov v ukazanom DOMAIN. Vozvrashchaet true pri uspehe i false - neudache. sort podprogramma spisok sort blok spisok sort spisok Sortiruet elementy spiska i vozvrashchaet poluchennyj spisok. Ne sushchestvuyushchie elementy spiska otbrasyvayutsya. Esli ne ukazano imya podprogrammy ili blok to sortiruet v standartnom strokovom poryadke. Ukazannaya podprogramma vozvrashchaet znacheniya bol'she, men'she ili ravnoe nulyu v zavisimosti ot dvuh sosednih elementov spiska. Imya podprogrammy mozhet byt' ukazano peremennoj. Ona ne dolzhna byt' rekursivnoj i dva sravnivaemyh elementa spiska peredayutsya kak global'nye peremennye $main::a i $main::b. |to ssylki poetomu ih izmenenie privodit k izmeneniyu samih elementov spiska. splice massiv, smeshchenie, dlina, spisok splice massiv, smeshchenie, dlina splice massiv, smeshchenie Udalyaet elementy massiva nachinaya so smeshcheniya i ukazannoj dliny. Zamenyaet ih ukazannym spiskom. Vozvrashchaet udalennyj spisok. Esli dlina ne ukazana udalyaet vse elementy spiska nachinaya so smeshcheniya. split /shablon/, vyrazhenie, predel split /shablon/, vyrazhenie split /shablon/ split Razdelyaet stroku,ukazannuyu vyrazheniem, na massiv elementov i vozvrashchaet ego. V skalyarnom kontekste vozvrashchaet kolichestvo poluchennyh elementov massiva, a sam massiv pomeshchaet v @_ (v spiskovom kontekste pomestit' rezul'tat v @_ mozhno esli primenit' ?shablon?) Esli vyrazhenie otsutsvuet to obrabatyvaetsya soderzhimoe peremennoj $_. Esli shablon otsutsvuet to razdelitelem yavlyaetsya probel. Vse chto podhodit po shablonu schitaetsya razdelitelem. Esli ukazan predel to eto maksimal'noe chislo razdelenij. Otricatel'noe znachenie predela vosprinimaetsya kak neogranichenno bol'shoj predel. Esli pustaya stroka pohodit pod shablon razdelitelya to ishodnoe znachenie razdelyaetsya po simvol'no. Predel udobno ispol'zovat' dlya chastichnogo razdeleniya stroki. Primer: ($a, $b, $ostatok) = split(/ /, "Odin Dva Tri CHetyre",3); zdes' $a = 'Odin', $b = 'Dva' i $ostatok = 'Tri CHetyre' Esli shablon soderzhit kruglye skobki to simvoly-razdeliteli ukazannye v nih vstavlyayutsya v rezul'tiruyushchij spisok kak obychnye elementy, prichem vstavlyaetsya simvol kotoryj sovpal s razdelitelem. Primer: @a = split(/([,.])/, "Odin,Dva.Tri"); zdes' @a = ("Odin", "," ,"Dva", ".", "Tri") sprintf format, spisok Formatiruet spisok po ukazannomu formatu analogichno funkcii sprintf() yazyka S. sqrt vyrazhenie Vozvrashchaet koren' kvadratnyj vyrazheniya. srand vyrazhenie Zadaet nachal'noe znachenie dlya generatora sluchajnyh chisel operatora rand. Esli argument otsutsvuet to ispol'zuetsya tekushchee mashinnoe vremya. stat fajl stat vyrazhenie Vozvrashchaet 13 elementnyj massiv parametrov ukazannogo fajla ili pustoj spisok pri oshibke. Primenyaetsya obychno sleduyushchim obrazom: ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat($filename); gde $dev - imya ustrojstva $ino - nomer i-uzla $mode - prava dostupa $nlink - kolichestvo svyazej $uid - identifikator vladel'ca $gid - identifikator gruppy $rdev - tip ustrojstva $size - razmer fajla v bajtah $atime - data poslednego obrashcheniya $mtime - data poslednej modifikacii $ctime - data poslednego izmeneniya statusa $blksize - razmer bloka na diske $blocks - kolichestvo blokov v fajle. Esli ukazan argument '_' to vozvrashchaetsya rezul'tata predydushchego vyzova stat(). study skalyar study Vlyuchenie metoda chastotnogo sravneniya. Celesoobraznost' primeneniya zavisit ot kolichestva poiskov i kolichestva konstant v stroke v kotoroj vedetsya poisk. Funkciya rabotaet sleduyushchim obrazom: Dlya ukazannogo skalyara (esli argument otsutsvuet beretsya znachenie peremennoj $_) stroitsya spisok ukazatelej na kazhdyj simvol stroki. Zatem kogda nachinaetsya poisk pervymi prosmatrivayutsya simvoly kotorye naibolee redko vstrechayutsya v anglijskom yazyke. Vyigrysh po vremeni ocheviden kogda vypolnyaetsya mnogokratnyj poisk v odnoj i toj zhe stroke i vremya zatrachennoj na indeksaciyu okupaetsya. substr vyrazhenie, smeshchenie, dlina substr vyrazhenie, smeshchenie Vozvrashchaet podstroku vyrazheniya nachinaya so smeshcheniya i zadannoj dliny. Esli smeshchenie otricatel'noe to otschet vedetsya ot konca stroki. Esli dlina ne ukazana to beretsya vse do konca stroki. symlink staryj_fajl, novyj_fajl Sozdaet novyj fajl simvolicheski svyazannyj so starym t.e. sozdaet ssylku na fajl. Vozvrashchaet 1 pri uspehe i 0 - neudache. syscall spisok Vypolnyaet sistemnuyu funkciyu. Pervyj element spiska - eto imya funkcii a ostal'nye elementy - ee argumenty. Esli funkciya ne vypolnima to vozvrashchaetsya fatal'naya oshibka. Argumenty interpretiruyutsya sleduyushchim obrazom. Esli argument chislo, to ono schitaestya celym. Esli ne chislo to argument schitaetsya ukazatelem na stroku. Vam neobhodimo obespechit' dostatochnuyu dlinu argumenta dlya podstanovki znacheniya ukazatelya. V Pel peredaetsya maksimum 14 parametrov. Obychno etogo dostatochno. sysread fajl, skalyar, dlina, smeshchenie sysread fajl, skalyar, dlina Prochitat' iz fajla ukazannoe chislo bajt v skalyar s pomoshch'yu sistemnogo vyzova read(). Smeshchenie oboznachaet poziciyu v skalyare posle kotoroj budut vstavleny prochitannye bajty. system spisok Delaet to zhe samoe chto i "exec spisok" s toj lish' raznicej chto vyzov fork() delaetsya pervym i roditel'skij process zhdet zaversheniya potomka. Vozvrashchaet znachenie analogichnoe funkcii wait(). Dlya polucheniya dejstvitel'nogo koda zaversheniya neobhodimo razdelit' na 256. syswrite fajl, skalyar, dlina, smeshchenie syswrite fajl, skalyar, dlina Zapisat' v fajl ukzannoe chislo bajt skalyara s pomoshch'yu sistemnogo vyzova write(). Smeshchenie ukazyvaet poziciyu v skalyare otkuda nachinaetsya zapis'. tell fajl tell Vozvrashchaet tekushchuyu poziciyu ukazatelya v otkrytom fajle. Esli fajl ne ukazan to poslednego chitaemogo fajla. telldir direktoriya Vozvrashchaet tekushchuyu poziciyu ukazatelya v otkrytoj direktorii. Obychno eto parametr dlya pozicionirovaniya ukazatelya direktorii funkciej seekdir(). tie peremennaya, klass, spisok Prisvaivaet peremennuyu klassu. Spisok - eto argumenty new metoda klassa (TIESCALAR, TIEARRAY ili TIEHASH). Vozvrashchaet ukazatel' na sozdannyj novyj ob容kt klassa kotoryj udoben dlya vyzova drugih metodov klassa. Vnimanie! Takie funkcii kak keys() i values() mogut vernut' v kacheste znacheniya ogromnoe kolichestvo dannyh. Dlya sozdaniya ob容kta associativnogo tipa neobhodimo opredelenie sleduyushchih metodov: TIEHASH classname, LIST DESTROY this FETCH this, key STORE this, key, value DELETE this, key EXISTS this, key FIRSTKEY this NEXTKEY this, lastkey Obychnogo massiva: TIEHASH classname, LIST DESTROY this FETCH this, key STORE this, key, value [others TBD] Skalyarnogo tipa: TIEHASH classname, LIST DESTROY this FETCH this, key STORE this, key, value time Vozvrashchaet kolichistvo sekund nachinaya s 1 yanvarya 1970 g 00:00:00 UTC. Gody ne razdelyayutsya na visokosnye. times Vozvrashchaet 4-h elementnyj massiv znachenij: ($user, $system, $cuser, $csystem) = times; gde: $user - pol'zovatel'skoe vremya processa v sekundah. $system - sistemnoe vremya tekushchego processa. $cuser - vremya processa-potomka tekushchego prcessa. $csystem - ego sistemnoe vremya. tr/// Oprerator translyator. Podrobno smotri glavu "Operatory". truncate fajl, dlina truncate vyrazhenie, dlina Usekaet dlinu ukazannogo fajla. uc vyrashchenie Vozvrashchaet stroku vyrazheniya v kotoroj malye bukvy zameneny na zaglavnye. ucfirst vyrazhenie Vozvrashchaet stroku vyrazheniya v kotoroj pervaya bukva zamenena na zaglavnuyu. umask vyrazhenie umask Ustanavlivaet masku umask i vozvrashchaet staroe znachenie. Bez argumenta vozvrashchaet tekushchee znachenie. undef vyrazhenie undef Delaet neopredelennym znachenie vyrazheniya. Primenyaetsya tol'ko dlya skalyarnyh peremennyh, celyh massivov ili podprogramm. Vsegda vozvrashchaet neopredelennoe znachenie. unlink spisok Udalyaet fajly ukazannye v spiske. Vozvrashchaet kolichestvo udalennyh fajlov. Tol'ko supervizor mozhet udalyat' direktorii s fajlami esli Pel zapushchen s klyuchom -U. unpack shablon, vyrazhenie Funkciya obratnaya pack(). Raspakovyvaet stroku vyrazheniya po ukazannomu shablonu v massiv znachenij. V skalyarnom kontekste vozvrashchaet znachenie tol'ko pervogo elementa. SHablony takie zhe kak i v pack(). Simvol '%' v shablone oznachaet chto vy hotite poluchit' vmesto znacheniya ego kontrol'nuyu summu. Po umolchaniyu 16 bitovuyu. untie peremennaya Isklyuchaet peremennuyu iz klassa ukazannogo tie(). unshift massiv, spisok Protivopolozhnoe shift. Pomeshchaet elementy spiska v nachalo massiva. use modul' spisok use modul' Ukazyvaet bibliotechnyj modul' iz kotorogo mozhno vyzyvat' podprogrammy. Spisok perechislyaet imena podprogramm kotorye dobavlyayutsya k tekushchej oblast' imen. Esli ne ukazan to vse imena. Dejstvie analogichno bloku: BEGIN { require modul'; import modul' spisok; } Sam modul' dolzhen raspologat'sya v sistemnoj oblasti Pel fajlov. utime spisok Izmenyaet datu obrashcheniya i modifikacii fajlov iz spiska. Pervye dva elementa spiska dolzhny ukazyvat' novoe znachenie daty obrashcheniya i modifikacii. Vozvrashchaet kolichestvo izmenennyh fajlov. values hesh Vozvrashchaet obychnyj massiv so vsemi znacheniyami hesha. V skalyarnom kontekste vozvrashchaet kolichestvo znachenij hesha. vec vyrazhenie, smeshchenie, bit Vozvrashchaet znacheni stroki kak vektor bez znakovyh celyh. wait Ozhidat' okonchanie porozhdennogo processa. Vozvrashchaet PID dlya roditel'skogo processa ili -1 esli net processa potomka. Kod zaversheniya zapisyvaetsya v peremennuyu $?. waitpid PID, FLAGS Ozhidat' okonchaniya processa potomka s ukazannym PID. Vozvrashchaet libo PID etogo processa libo -1 esli net takogo processa. Kod zaversheniya zapisyvaetsya v permennuyu $?. wantarray Vozvrashchaet true esli podprogramma vyzyvaetsya v spiskovom kontekste i false - v skalyarnom. warn spisok Vyodit v standartnyj potok oshibok STDERR soobshchenie analogichno die(), no ne prekrashchaet rabotu programmy. write fajl write vyrazhenie write Vyvodit v fajl formatirovannye dannye po operatoru format. Po umolchaniyu imya formata sovpadaet s imenem ukazatelya fajla. Imya fajla-po umolchaniyu mozhno izmenit' funkciej select(), a imya formata pri etom nado prisvoit' peremennoj $~. Zagolovok lista pishetsya avtomaticheski. Esli na liste ne hvataet mesta dlya vyvoda to vyvoditsya "perevod formata" i special'naya forma zagolovka lista zatem sami zapisi. Po umolchaniyu imya formata zagolovka lista sostoit iz imeni ukazatelya fajla i dobavlennoj stroki "_TOP". Dinamicheski eto mlzhno delat' prisvaivaya format peremennoj $^. Kolichestvo ostavshihsya strok lista soderzhitsya v peremennoj $- i esli prisvoit' ej 0 to proizojdet smena lista. Podrobno opisanie formatov smotri v glave "Formaty". y/// Operator translyator. Smotri glavu "Operatory".  * Podprogrammy *  Dlya primeneniya podprogrammy ee neobhodimo opredelit' libo v tekshchem module (fajle) libo vo vneshnem module (fajle). Podprogrammy opredelyayutsya i deklariruyutsya sleduyushchim obrazom: sub imya; # Tol'ko deklaraciya. Opredelenie nizhe. sub imya (prototipy); To zhe no s deklaraciej parametrov. sub imya blok; # Deklaraciya i opredelenie. sub imya (prototipy) blok; # To zhe, no s parammetrami. Dlya opredeleniya dinamichskoj anonimnoj podprogrammy mozhno ukazat': $peremennaya = sub blok; Dlya importirovaniya podprogramm iz drugih modulej ispol'zujte: use modul' qw(podprogramma1 podprogramma2 ); Vyzov podprogrammy: imya(spisok parametrov); # simvol '&' mozhno ne ukazyvat'. imya spisok; # Esli podprogrmma uzhe deklarirovana. &imya; # Parametry v @_ Vse parametry peredayutsya podprogramme kak massiv @_. Sootvetsvenno $_[0] - pervyj parametr, $_[1] - vtoroj i t.d. Massiv @_ - lokal'nyj, no on soderzhit adresa parametrov poetomu mozhno izmenyat' znachenie parametrov. Vozvrashchaemoe znachenie podprogrammy - rezul'tat poslednego operatora. |to mozhet byt' kak skalyar tak i massiv. Mozhno prinuditel'no vozvrashchat' rezul'tat ispol'zuya funkciyu return(). Podprogrammu mozhno vyzvat' ispol'zuya prefiks '&' pered imenem podprogrammy. Esli podprogramma predvaritel'no prodeklarirovana to prefiks i skobki mozhno opustit'. Private peremennye. Dlya primeneniya peremennyh dostupnyh tol'ko vnutri bloka ili podprogrammy neobhodimo opredelit' ih s pomoshch'yu funkcii my(spisok). Esli peremennaya odna to skobki mozhno opustit'. my() deklariruet private peremennye v predelah tekushchej podprogrammy, bloka, funkcii eval() ili do/require/use fajlov. Private peremennye analogichny auto peremennym v S. Primer: # Programma vychisleniya faktoriala. print fact(3); # vychislit' faktorial 3*2*1 sub fact # Opredelyaem podprogrammu. { my $m; # private peremennaya no ne local ! $m = $_[0]; return 1 if $m <= 1; return($m * fact($m -1)); } Mozhno ukazyvat' nachal'nye znacheniya private peremennyh kak: my(spisok) = vyrazhenie; Tak dlya vysheprivedennogo primera luchshe bylo napisat': my($m) = $_[0]; Peremennye tipa local. V obshchem luchshe ispol'zovat' private peremennye tak-kak eto nadezhnej i bystree. private peremennye obespechivayut leksicheskuyu oblast' primeneniya (vidimosti) a local - dinamicheskuyu. Obychno eto peremennye formatov znachenie kotoryh dolzhno byt' vidimo iz vyzyvaemyh podprogramm. Primenenie funkcii local() ne celesoobrazno v ciklah tak kak ona vyzyvaetsya kazhdyj raz i takim obrazom zametno zamedlyaet vremya vypolneniya cikla. Prototipy (prototypes). Dlya kratkogo opisanya tipa parametrov peredavaemyh podprogramme mozhno primenyat' prototipy. V Pel sushchestvuyut sleduyushchie prototipy: Deklaraciya Primer vyzova sub mylink($$) mylink $old, $new sub myvec($$$) myvec $var, $offset, 1 sub myindex($$;$) myindex &getstring, "substr" sub myreverse(@) myreverse $a, $b, $c sub myjoin($@) myjoin ":",$a,$b,$c sub mypop(\@) mypop @array sub mysplice(\@$$@) mysplice @array, @array, 0, @pushme sub mykeys(\%) mykeys %{$hashref} sub myopen(*;$) myopen HANDLE, $name sub mypipe(**) mypipe READHANDLE, WRITEHANDLE sub mygrep(&@) mygrep { /foo/ } $a, $b, $c sub myrand($) myrand 42 sub mytime() mytime Zdes': \'simvol' - parametr s tipom 'simvol' '@' ili '%' - vse ostavshiesya parametry kak spisok '$' - skalyar '&' - bezimyannaya podprogramma '*' - ssylka na tablicu imen ';' - razgranichitel' obyazatel'nyh i ne obyazatel'nyh paramettrov. Ssylka kak parametr. Inogda nuzhno v kachestve parametra peredat' podprogramme ne znachenie elementa massiva a ssylku na nego, chto by podprogramma mogla izmenit' znachenie elementa. Dlya etogo v Pel k imeni peremennoj dobavlyaetsya simvol '*' Podbnoe vyrazhenie nazyvayut 'type glob' tak kak v YUnikse simvolom '*' oboznachayut "vse vozmozhnye znacheniya". Poetomu '*' dlya massiva oznachaet "vse elementy massiva". Dlya skalyarov upotryablyat' '*' ne imeet smysla t.k. oni i tak peredayutsya ssylkoj i vy mozhete izmenyat' znachenie parametra izmenyaya naprimer peremennuyu $_[0]. Pereopredelenie vstroennyh funkcij. Bol'shinstvo vstroennyh funkcij Pel mozhno pereopredelit' svoimi sobstvennymi. Obychno eto delayut dlya udobstva sovmestimosti Pel dlya raznyh platform sistem. Dlya etogo nuzhno perechislit' imena etih funkcij v vide: use subs 'funkciya1', 'funkciya2' ....; i dalee v module opredelit' sami funkcii. Avtozagruzka. Esli vy popytaetes' vyzvat' ne sushchestvuyushchuyu funkciyu to Pel vydast nemedlenno soobshchenie ob oshibke. No esli vy opredelite podprogrammu s imenem 'AUTOLOAD' to ona budet vyzvana s temi zhe parametrami a peremennaya $AUTOLOAD budet soderzhat' imya ne sushchestvuyushchej podprogrammy. Dannyj mehanizm ochen' udoben dlya sredstv otladki.  * Moduli (packages) *  V Pel realizovan mehanizm modulej. Modul' eto gruppa podprogramm i peremennyh obychno vklyuchennyh v odin fajl. Vnutri odnogo modulya mozhno opredelit' drugoj modul'. Nachalo modulya opredelyaetsya direktivoj: packages imya_modulya; Konec modulya eto konec bloka ili fajla. Golovnoj modul' imeet po umolchaniyu imya main. Na imya vnutri modulya mozhno ssylat'sya dobavlyaya '::' posle imeni modulya. Naprimer: $main::var1 - peremennaya v golovnom module. ::var1 - to zhe samoe. Imya main mozhno opuskat'. $modul'1::var1 - peremennaya v module 'modul'1' $modul'1::modul'2::var1 - Modul'2 soderzhitsya v module 1. Tol'ko identifikatory nachinayushchiesya s bukvy ili simvola '_' hranyatsya v prostrantsve imen tekushchego modulya. Ostal'nye hranyatsya v prostranstve golovnogo modulya main. Krome etogo imena STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INC i SIG tak zhe hranyatsya v golovnom module. Tablicy imen. Vse imena modulya hranyatsya v associativnom massive (heshe) s imenem modulya k kotoromu dobavleny simvoly "::". Takim obrazom imena golovnogo modulya hranyatsya v %main:: , modulya 'mod1' v %mod1:: i t.d. Vyrazhenie vida *imya ukazyvaet znachenie elementa hesha 'imya' eto udobno dlya opredeleniya konstant. Naprimer: *pi = \3.14159; Zdes' peremennaya $pi - eto konstanta pi kotoruyu uzhe nel'zya izmenit'. Konstruktory i destruktory. Konstruktor - eto podprogramma kotoraya vypolnyaetsya v moment sozdaniya ob容kta, a destruktor - udaleniya ob容kta. Dlya modulya eto podprogrammy s imenami BEGIN i END. Pri opredelenii etih podprogramm slovo sub mozhno opuskat'. Konstruktor BEGIN vypolnyaetsya srazu kak tol'ko vozmozhno t.e. kak tol'ko on opredelen dazhe ne zavershaya dal'nejshij razbor programmy. Mozhno ukazat' neskol'ko blokov BEGIN. Oni budut vypolnyat'sya odin za drugim v poryadke opredeleniya. Destruktor END vypolnyaetsya poslednim kak tol'ko vozmozhno t.e. pri zavershenii raboty interpreratora. Mozhno ukazat' nesol'ko blokov END pri etom oni budut vypolnyat'sya v obratnom opredeleniyu poryadke. Klassy. V Pel net special'nogo sintaksisa dlya klassov. No funkcional'no polnocennymi klassami mogut byt' moduli. Pri etom podprogrammy modulya stanovyatsya metodami, a s pomoshch'yu massiva @ISA mozhno realizovat' mehanizm nasledovaniya v klassah. Bolee podrobno klassy opisany otdel'no. Sozdanie biblioteki. Esli vy hotoite sozdat' modul' otdel'nym fajlom i ispol'zovat' kak biblioteku podprogramm, pri etom vyzyvat' podprogrammy biblioteki ne ukazyvaya imeni modulya, vam neobhodimo oformit' modul' sleduyushchim obrazom: package imya_modulya; # Takoe zhe kak i imya etogo fajla bez rasshireniya '.pm' require Exporter; # Obyazatel'naya stroka dlya eksporta imen @ISA = qw(Exporter); # -//- @EXPORT = qw(func1 func2) # Perechislyaem imena funkcij. Vnimanie ! net zapyatoj! @EXPORT_OK = qw( $peremennaya @massiv ); # Ukazat' publichnye peremennye, massivy i t.d. esli neobhodimo { # Nachalo bloka modulya ..... sub func1 ........ sub func2 ........ 1; } Dannyj fajl s rasshireniem ".pm" dolzhen hranit'sya v odnoj iz bibliotechnyh direktorij Pel. Oni perechisleny v massive @INC odno iz nih obychno "/usr/local/lib/perl/". V golovnoj programme vy ukazyvaete: use imya_modulya; i vam stanovyatsya dostupny imena podprogramm dannogo modulya. Standartnye Pel biblioteki. Standartnyj nabor bibliotek obychno postavlyaetsya s distributivom Pel oni razdelyayutsya na pragma biblioteki (rabotayut kak direktivy kompilyatoru) i standartnye biblioteki. Pragma bibliototeki. Dannye biblioteki ispol'zuyut kak: use imya; kogda hotyat vklyuchit' dejstvie i no imya; kogda vyklyuchit'. V standartnyj nabor vhodyat sleduyushchie pragma: diagnostics Vklyuchit' rezhim rasshirennoj diagnostiki. integer Ispol'zovat' celochislennuyu arifmetiku. less Rezhim minimal'noj zagruzki kompilyatora. overload Rezhim pereopredeleniya operatorov. sigtrap Rezhim slezheniya za preryvaniyami. strict Rezhim ogranichennogo ispol'zovaniya "opasnyh" operatorov. subs Rezhim obyazatel'nogo deklarirovaniya podprogramm. Standartnye biblioteki. AnyDBM_File Vozmozhnost' raboty s raznymi tipami baz dannyh. AutoLoader Zagruzka v pamyat' funkcij tol'ko vo vremya vyzova. AutoSplit Razdelit' modul' dlya avtozagruzki. Benchmark Analiz skorosti ispolneniya programmy. Carp Preduprezhdeniya ob oshibkah. Config Dostup k konfiguracii Pel. Cwd Poluchit' imya tekushchej rabochej direktorii. DB_File Rabota s bazoj dannyh formata Berkley DB. Devel::SelfStubber Rezhim otladki avtozagruzki. DynaLoader Dinamicheskaya zagruzka bibliotek C. English Ispol'zovat' dlinnye imena vstroennyh peremennyh. Env Importirovat' imena peremennyh okruzheniya Exporter Obespechivaet eksport/import dlya modulej. ExtUtils::LibList Opredelyaet ispol'zuemye biblioteki. ExtUtils::MakeMaker Sozdaet fajl proekta Makefile ExtUtils::Manifest Programmy dlya sozdaniya i proverki fajla MANIFEST ExtUtils::Mkbootstrap Primeneie fajla nachal'noj zagruzki dlya DynaLoader. Fcntl Opredeleniya kak i v S Fcntl.h File::Basename Sintaksicheskij razbor specifikacii fajla. File::CheckTree Bystryj prohod po direktoriyam diska. File::Find Bystryj poisk fajlov po direktoriyam. FileHandle Obespechivaet ob容ktnyj metod dostupa k ukazatelyam fajlov. File::Path Sozdanie/udalenie direktorij. Getopt::Long Rasshirennaya obrabotka opcij. Getopt::Std Standartnaya obrabotka opcij. I18N::Collate Sravnenie simvolov lokalbnoj kodirovki. IPC::Open2 Mezhprocessornyj obmen po chteniyu i zapisi. IPC::Open3 Mezhprocessornyj obmen po chteniyu, zapisi, i obraboki oshibok. Net::Ping Test dostupa k hostu. POSIX Standartnyj interfejs po IEEE Std 1003.1 SelfLoader Zagruzka funkcij tol'ko po vyzovu. Socket Opredelenie struktur i konstant kak i v S socket.h Test::Harness Standartnyj test s statistikoj. Text::Abbrev Sozdanie tablicy sokrashchenij po spisku. Podrobnoe opisanie kazhdoj biblioteki zapisano v samom fajle. CPAN Programisty vsego mira rabotayushchie s Pel sozdali obshchedostupnuyu biblioteku modulej CPAN. Ona dostupna cherez Internet i soderzhit ogromnoe kolichestvo razlichnyh po naznacheniyu modulej. K nim otnosyatsya dokumentatory, sistemnye interfesy, interfejsy raboty s bazami dannyh, rabota v seti, s fajlami, Internet-brouzery, sistemy poiska, ogromnoe kolichestvo CGI skriptov dlya Web serverov i mnogoe mnogoe drugoe. Spisok nekotoryh CPAN serverov vy mozhete najti v prilozhenii.  * Formaty *  V Pel realizovan udobnyj metod sozdaniya formatirovannyh otchetov. S pomoshch'yu operatora format vy opisyvaete zagolovki, razmery polej, ukazyvaete polozhenie dannyh na liste v udobnoj tekstovoj forme. Zatem vypolnyaete komandu write(fajl) kotoraya vyvodit otformatirovannye dannye v ukazannyj fajl. Operator format imeet sleduyushchij sintaksis: format imya = FORMLIST . Obratite vnimanie na to chto opisanie formata idet posle stroki format i zakanchivaetsya simvolom '.' v nachale stroki. Zdes' 'imya' - eto imya formata, takoe zhe kak i imya ukazatelya vyhodnogo fajla. Esli 'imya' otsutsvuet to znachenie po umolchaniyu - STDOUT. FORMLIST - eto stroki formata. Oni byvayut treh tipov: 1. Kommentarij. Stroka nachinaetsya simvolom '#'. 2. Opisatel' polej dannyh (picture). 3. Stroka argumentov ispol'zuemyh opisatelem. Opisatel' - eto stroka kotoraya vyvoditsya v vide "kak est'" za isklyucheniem special'no oboznachennyh formatov polej dannyh. Kazhdoe pole nachinaetsya libo simvolom '@' libo '^'. V opisatel'noj stroke ukazyvaetsya tol'ko polozhenie i vid vyvodimyh dannyh, no ne imena polej i peremennyh. Dlya etogo prednaznachena sleduyushchaya stroka argumentov kotoraya sleduet vsegda posle opisatelya i soderzhit imena peremennyh ili celye vyrazheniya v poryadke ukazannom opisatelem. Razmer i vid polya v opisatele oboznachaetsya sleduyushchimi simvolami: ">>>>" - vyrovnit' znachenie po pravomu krayu. "<<<<" - -//- po levomu. "||||" - -//- po centru. "####.###" - format chisla s tochkoj. "@*" - mnogostrochnaya stroka. Dannye vyvodyatsya v kolonku. Razmer polya raven kolichestvu ukazann