(E-Book - Pl Pdf) Linux - Perl W Przetwarzaniu Tesktu.pdf

(224 KB) Pobierz
51108016 UNPDF
dowisku systemu UNIX , to w dziedzinie prze-
DOS em. Wszystko wiƒc, o czym bƒdzie mowa po-
winno funkcjonowa¢ w DOS owych implementacjach
. Z u»ywaniem DOS a i Perla wi¡»e siƒ jed-
jest opcja -i (sk¡din¡d bardzo po»yteczna), ale tak
siƒ nieszczƒ–liwie sk“ada, »e pod DOS em nazwy dy-
plom.tex i dyplom.tex.bak oznaczaj¡ ten sam plik.
dla wielu DOS owych implementacji Perla jest jedn¡
z metod usuniƒcia zawarto–ci pliku dyplom.tex (w
czasie prbyutworzenia pliku dyplom.tex.bak ).
Opcje wywo“ania. W wywo“aniu Perla mo»na po-
{a w“¡cza tryb automatycznego dzielenia
rekordw wej–ciowych (ang. autosplit ). Pola
{e SKRYPT umo»liwia podanie jednego
{i [EXT] powoduje modykacjƒ pliku wej–cio-
<> (ang. in-place editing ). Je»eli podane
te» sytuacje odwrotne, ale na tyle rzadko, »e ad
: Tak naprawdƒ przyk“ady by“y testowane wy“¡cz-
hoc trudno wymy–li¢ konkretny przyk“ad.
nie w systemie UNIX .
51108016.001.png 51108016.002.png
jest opcjonalne rozszerzenie EXT , to poprzed-
o nazwie z dodanym przyrostkiem EXT .
$var
korzystania z DOS owych implementacji Perla
$var[13]
trzynasty element tablicy @var .
$var{’Feb’} warto–¢ jednego z elementw
{n umieszcza skrypt w domy–lnej pƒtli
tablicy asocjacyjnej %var .
$#var
ostatni indeks tablicy @var .
@var
@var[3,4,5] przekrj tablicy @var .
{p umieszcza skrypt w domy–lnej pƒtli
%var{’a’,’b’} przekrj tablicy %var .
INPUT
*var
{w wypisuje ostrze»enia o mo»liwych b“ƒdach
Wczytywanie danych. Notacja u»ywana w Perlu do
W pierwszym przypadku WYR1 zostanie wykonane
je»eli WYR2 zwrci warto–¢ niezerow¡ (podobnie jak
W drugim przypadku wyra»enie WYR1 bƒdzie
wykonywane dopki WYR2 bƒdzie fa“szywe.
operatory logiczne || , && i ? np.:
nale»y je wcze–niej otworzy¢ funkcj¡ open . Czƒsto
u»ywan¡ notacjƒ <STDIN> mo»na skrci¢ do postaci
<> np.:
ze standardowego wej–cia do zmiennej $line ,
zmiennej $_ .
program jest przerywany( open or die ).
Przy pomocy nawiasw klamrowych {} mo»na
** { potƒgowanie.
eq , ne {rwno–¢, nierwno–¢ ci¡gw znakw.
lt , gt {znakowe mniejszy ni», wiƒkszy ni».
le , ge {znakowe mniejszy (wiƒkszy) lub rwny.
<=> {porwnywanie liczb, zwraca 1, 0 lub 1.
cmp { porwnywanie ci¡gw znakw, zwraca
1, 0 lub 1.
=~ , !~ { specykacja wzorca wyszukiwania,
.. { zakres (indeksw, lini wej–ciowych, itp.).
x { operator powtrzenia ci¡gu znakw.
. { oznacza dowolny znak oprcz znaku nowego
Instrukcja next powoduje przej–cie do nastƒpnej
(...) { nawiasy okr¡g“e grupuj¡ kilka
iteracji pƒtli (dzia“a tak jak continue w jƒzyku C),
last powoduje natychmiastowe wyj–cie z pƒtli
+ { oznacza co najmniej jedno wyst¡pienie
(tak jak break w C), a redo wykonuje tƒ sam¡
? { co najwy»ej jedno wyst¡pienie poprzedniego
zako«czenia. Ka»dej z instrukcji next , last i redo ,
* {dowolna liczba wyst¡pie« elementu (“¡cznie
{N,M} { co najmniej N wyst¡pie«, ale nie wiƒcej
[...] { oznacza klasƒ znakw (dowolny znak
(...|...|...) { jedna z alternatyw.
\w { znak alfanumeryczny (wraz z _"), \W {
\b { granica s“owa, \B { wnƒtrze s“owa.
zwy poprzedzonej znakiem & {np. &procedura($a,
\s { spacja (itd.), \S { nie spacja.
"tekst") . Je»eli procedura nie wymaga poda-
\d { cyfra, \D { nie cyfra.
\n,\r,\t,\f { CR, LF, TAB, FF.
\1...\9 { odwo“ania do kolejnych podwyra-
do procedury w specjalnej tablicy @_ .Dokolejnych
poprzez $_[1] , $_[2] itd.
przetwarzaniu tekstw. Znaczek y " oznacza, »e
{ "CMD|" {otwarcie potoku z polecenia CMD .
pop(@TABLICA)* { pobiera ostatni element
funkcji jest zmienna $_ ). Znaczek *" przy
print[([DESKR] LISTA y ) * ] { wypisuje na
chop(LISTA y ) { odcina ostatni znak z wszyst-
printf[([DESKR] LISTA) * ] { rwnowa»ne
eof[(DESKR)] { test ko«ca pliku; bez argu-
z print DESKR sprintf(LISTA) .
push(@TABLICA,LISTA) { dopisuje warto–ci
eval(WYRAENIE) { WYRAENIE jest analizo-
reverse(LISTA) *{wkontek–cie wektorowym
niowan¡, a w zmiennej $@ umieszczany jest
grep(WYR,LISTA) { oblicza wyra»enie WYR dla
scalar(%TABLICA) { zwraca warto–¢ praw-
warto–ci z listy pod zmienn¡ $_ . Modykacja $_
scalar(@TABLICA) { zwraca liczbƒ elementw
select[(DESKR)] { ustawia domy–lny kana“
join(WYR,LISTA) { “¡czy oddzielne ci¡gi
shift(@TABLICA) * { pobiera pierwszy element
WYR .
length(WYR y ) * { zwraca d“ugo–¢ wyra»enia
WYR w znakach.
na tablicy @ARGV w programie g“wnym lub na
open(DESKR[,NAZWA]) {otwiera plik i zwi¡zuje
tablicy @_ w procedurach.
sort([PROC] LISTA) * { sortuje listƒ i zwraca
{ "FILE" {otwarcie pliku do czytania.
split[(WZORZEC[,CIG y [,LIMIT]])] { dzieli
{ "<FILE" { jw.
{ ">FILE" { otwarcie pliku do pisania,
LIMIT pl. Przy braku wzorca, dzieli na
{ ">>FILE" { otwarcie pliku w trybie
“a«cuch zwraca w tablicy @_ .
sprintf(FORMAT, LISTA) { zwraca sforma-
{ "|CMD" { otwarcie potoku do polecenia
CMD .
unshift(@TABLICA,LISTA) { dodaje listƒ
substr(WYR,POCZ[,D]) { wybiera fragment
$_ { najwa»niejsza zmienna w Perlu, pe“ni¡ca
(d“ugo–ci D {je–liby“a podana) ci¡gu znakw
reprezentowanego przez WYR , pocz¡wszy od
znaku o numerze POCZ (znaki s¡ oczywi–cie
$. { numer bie»¡cego wiersza ostatnio
$/ { separator rekordw { domy–lnie znak
Funkcje wyszukiwania i zamiany. Przy przetwarza-
nowego wiersza, odpowiednik zmiennej RS
[WYR =~][m]/WZORZEC/[g][i][o]
$, { separator pl na wyj–ciu, odpowiednik OFS
$\ { separator rekordw na wyj–ciu, odpowied-
nik ORS wawku.
$0 { nazwa pliku zawieraj¡cego wykonywany
ograniczonych nawiasami (tzn. $1 , $2 , $3 ,
$ARGV {nazwa bie»¡czego pliku czytanego przy
itd.). Opcjonalne modykatory: g " oznacza
u»yciu konstrukcji <> .
dopasowanie wielokrotne, i " dopasowanie bez
$& { ci¡g znakw pasuj¡cy do ostatnio
rozr»nienia wielko–ci liter, o " rozwiniƒcie
$‘ { ci¡g znakw poprzedzaj¡cych to co
$’ { ci¡g znakw poprzedzany przez to co
[$ZM =~]s/WZORZEC/NOWY/[g][i][e][o]
$1...$9 { wzorce pasuj¡ce do podwyra»e«
@ARGV { tablica zawieraj¡ca argumenty wier-
nie zwraca zero. Opcjonalne modykatory: g "
zast¡pienie wszystkich wyst¡pie« wzorca; e "
ra»enia przed dokonaniem podstawienia; i "
@_ { tablica argumentw dla procedur.
oraz o " maj¡ znaczenie takie samo jak
[$ZM =~]tr/CIG/NOWYCIG/[c][d][s]
kich znakw z listy; s " { od ang. squeeze
na wyj–ciu (np. tr/abc/ABC/s przekszta“ci
perl -pe ’s/-\s*\n$//’ hpliki i
“a«cuch "abaaacc" na "ABAC" ).
51108016.003.png
Zgłoś jeśli naruszono regulamin