Ocenite etot tekst:


     Prezhde  chem  pristupit' k posledovatel'nomu oznakomleniyu s
ne znakomym dlya vas yazykom, dolzhen ogovorit'sya i  skazat',  chto
vse primery da i sam yazyk opisaniyu kotorogo posvyashchena eta kniga
eto Perl versii 5.003 dlya operacionnoj sistemy  FreeBSD  versii
2.01.   Sushchestvuyut  realizacii  etogo  yazyka  dlya  operacionnyh
sistem OS/2 , MS-DOS i Windows NT no  oni  nemnogo  otstayut  po
vozmozhnostyam ot originala, rozhdennogo v nedrah YUniksa.



		#!/usr/local/bin/perl
		# Soderzhimoe fajla test1.pl
		print "Nashe Vam s kistochkoj!\n";

A teper' podrobno razberem kazhduyu stroku.

#!/usr/local/bin/perl
	Dannaya stroka dolzhna byt' pervoj v lyuboj Pel-programme.
Ona ukazyvanet sistemnomu interpretatoru chto dannyj fajl - eto  Pel-programma.

# Soderzhimoe fajla test1.pl
	|ta stroka nazyvaetsya kommentariem. Ona vsegda nachinaetsya
simvolom '#' i zakanchivaetsya takim  ob®yasneniem chto kak govoril
velikij  Hodzha Nasreddin "eto tonkij filosovskij
vopros", a govorya prostym yazykom zdes' mozhno pisat' vse chto ugodno.
Dazhe pozhelanie  rukovodstvu. Uzh zdes' ono tochno do nego ne
dojdet.

print "Nashe Vam s kistochkoj!\n";
	Samaya poslednyaya nu i konechno glavnaya. Ona prosto vyvodit
na ekran nadpis' "Nashe Vam s kistochkoj!".

Zdes' slovo print - eto komanda "vyvesti". Vse chto v kavychkah - eto simvoly,
\n - perevod stroki i ';' - priznak konca komandy. On obyazatelen.
V odnoj stroke mozhet byt' neskol'ko komand i vse oni dolzhny zavershat'sya
simvolom ';'. Posle nego mozhet byt' simvol '#' - eto znachit ostatok
stroki schitaetsya kommentariem.

Nad etoj strokoj avtoru
prishlos' bol'she vsego polomat' golovu tak kak v nee postoyanno
lezli kakie to strannye "hello", "hello all", "Postroemsya i spasemsya",
"Stroj nashe spasenie" i t.d i t.p.

Esli vy nikogda ne rabotali s Pel, to b®yus' na spor v 10$, chto dannaya
programma srazu u vas ne zarabotaet!
Ne potomu chto ona ne verna, a potomu chto "Nel'zya ob®yat' neob®yatnoe".
Srazu, potom mozhno, da i to chastyami.
Snachalo sdelajte vash fajl test1.pl ispolnyaemym. Dlya etogo vvedite
komandu:

	chmod +x test1.pl

Zatem prover'te gde u vas Pel. Dlya etogo vvedite:

	which perl

Sistema vam vydast chto to vrode: /usr/bin/perl

Esli: perl: Command not found.

To togda zakrojte knizhku i lozhites' spat'. U vas prosto net Pel ili
on ne ustanovlen. A mne ostaetsya poslat' vas k sistemnomu administratoru
ili k man (dlya perevodchikov- man sokrashchenie ot manual a ne to chto vy podumali).

Teper' prover'te chto by stroka 01 soderzhala to chto vydala komanda which.
Esli sovpalo to vvedite:

	test1.pl

i b®s' na 50$ chto i teper' programma ne zarabotaet, tak kak pravil'nej
vvesti:

	./test1.pl

Esli ya proigral, to ne radujtes'. Da zhe esli vam udalos' zapustit' programmu
kak test1.pl eto znachit, chto u vas budut nepriyatnosti v budushchem.



	#!/usr/local/bin/perl
	open(PASS, ")
	    {
	    print;
	    }
	close(PASS);

Poyasneniya:

open(PASS, ")
	CHitat' po odnoj stroke fajla v peremennuyu po umolchaniyu $_.

  {
	Otkryt' blok operatorov.

  print;
	Vyvesti na ekran peremennuyu po umolchaniyu $_

   }
	Konec bloka.

close(PASS);
	Zakryt' fajl. |togo mozhno i ne delat' tak-kak fajl avtomaticheski
zakroetsya posle okonchaniya programmy.

Rezul'tat raboty etoj programmy tot zhe chto i komandy cat /etc/passwd.
Po ekranu probezhali neponyatnye stroki no zato teper' pered vami
otkryty gorizonty Pel programmirovaniya!
Vse posleduyushchie primery budut razvitiem etoj programmy i ona
prevratitsya iz gadkogo utenka v prekrasnogo lebedya (ne generala).



      #!/usr/local/bin/perl
      open(PASS, ")
          {
	    ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
	    print "$login \t $name\n";
          }
      close(PASS);

Poyasnenie:

($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
	Prisvoit' ukazannym peremennym polya vhodnoj stroki, schitaya razdelitelem simvol ':'.

print "$login \t $name\n";
	Vyvesti login - imya pol'zovatelya i ego opisanie. Polya razdeleny simvolom '\t' - tabulyacii.




	#!/usr/local/bin/perl
	open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Fajl ne najden!";
	while()
	    {
	    ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
	    print "$login \t $gid \t $name\n";
	    }
	close(PASS);

Poesneniya:

open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Fajl ne najden!";
	V dannoj stroke ves' fokus! Vhodnym fajlom dlya nashej programmy
stal vyhod komandy sort kotoraya i otsortiruet vhodnye dannye.


Formatirovannyj vyvod.

Nu a teper' napechataem na ekrane vse nashi dannye v udobnoj forme.


#!/usr/local/bin/perl

open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Fajl ne najden!";
while()
    {
    ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
    write();	# Formatirovannyj yvod dannyh.
    }
close(PASS);
exit 0;		# Zavershenie programmy

############ Opisanie formy vyvoda ##################

format STDOUT =

Pol'zovatel': ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
				$name
              ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                $name
              ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                $name
----------------------------------------------------------------------
Login:@<<<<<<<<   Uid:@<<<  Gid:@<<<  Home dir:@<<<<<<<<<<<<<<<<<<<<<
      $login,         $uid,     $gid,          $home_dir
----------------------------------------------------------------------

.	# |to poslednyaya stroka programmy


Fragment rezul'tata:

Pol'zovatel': Kaluzhskij likero-vodochnyj zavod. Luchshie vodki i
              nastojki. Zvonit' tol'ko pered prazdnikom Kostrikovu
              Anatoliyu t. 2-23-06,,,
----------------------------------------------------------------------
Login:uucryst     Uid:1055  Gid:66    Home dir:/var/spool/uucppublic/
----------------------------------------------------------------------


Pol'zovatel': Torgovyj Dom Dilen,,,


----------------------------------------------------------------------
Login:uudilen     Uid:1075  Gid:66    Home dir:/var/spool/uucppublic
----------------------------------------------------------------------

Esli vam interesno uznat' kak rabotaet eta programma, to perevernite
stranicu i nachinite svoe puteshestvie v mire Pel.
ZHelayu udachi!

Last-modified: Thu, 24 Apr 1997 17:43:55 GMT
Ocenite etot tekst: