| ���������� | ����������� | �������� | ������
| ����� 1 | ����� 2 | ����� 3 | ����� 4 | ����� 5 | ����� 6 | ����� 7 | ����� 8 | ����� 9 | ����� 10
| ����� 11 | ����� 12 | ����� 13 | ����� 14 | ����� 15 | ����� 16 | ����� 17 | ����� 18 | ����� 19
| ���������� � | ���������� � | ���������� � | ���������� � |

���������� �

����, ������� �� �� ���������

��� �� �������, ���� ��� ����� ������ ����� ��������� ������� ��� ����� �������� �������������. ������ ���������� �������� �������� �������������� ����������.

���������� ����� ������� � �� ������� ��� ��� �����, ������� ����������� �����, � ������ ���� �� ��������. �� ���������� ����������� ����������� � ����� Programming Perl, �� man-�������� perl(l)perlfaq(l), � HTML-����������, ��������� � �������� doc ������ CPAN, � � ���������� ��������������� Usenet.

������ ������������� ��������������

��, Perl ����� ������� ������������ ������ � �������� ����. ����� ��������� ������ TCP/IP, ������� �� ������������� � ���������� �, Perl ������������ ����� (���� ���� ������� ������ � �����) �������� ����� UNIX, �������� ��������� �� ��������� UDP, ��������� ������������ ������, ��������, ����������� � ������������� ������ � ��������� ��������. ����������� ������ ����������� � ����� 6 ����� Programming Perl � �� man-�������� perlipc(l), � ������ ���������� ������� ���� � � ������� �������� ������� CPAN, ����������� �����.

��, �� ������ Perl ����� ������������ ������� ����� � �������������� ������ TCP/IP, �������� ������ UNIX � ���������� ������ ��������� ������������ ������ � ��������� � ��������, ������� ������������ ��� �����������. ���������� �������� ��. �� man-�������� perlipc(l).

��������

� Perl ���� �������� ��������, ���������� �� ������ ��������� ����. � ��� �������������� �� man-�������� perldebug(l).

��������� ������

��� ������� �������������� Perl ����� ��������� ��������� ������ ��������� ������. ��. man-�������� perlrun(\').

������ ��������

������ ���������� � �����, ������������ � ������ ��������. ��������, �������� "�������". ���� ����� �������� ��������������� ������ &, I, � ~, ����������� �������� ?\ :, �������� . . � ... � ������.

������� ����� �������� ��������, ��������, ����������� ������������� ������������ � � �������� �������������. �� ���� � ������ ������ �������������� �� man-�������� perlop(l).

������ �������

� Perl ����� ����� �������. �� �� ���������� ����� �� ��� �����������, ������ ��� ����� ������� ������ ������ � ��� � ��� ��������� ������ � �������� � ����� Programming Perl � man-�������� perlfunc(l). ��� ��������� �� �������� ���������� �������.

������� grep � ���

������� grep �������� �������� �� ������ ���������� �� ��������� ���������� ���������, ������� ����������� ����������� �� ����������, ��� ���� ���������� $_ ��������������� ��������������� ������ ������� �������� ������:

@bigpowers = grep $_ > 6, 1, 2, 4, 8, 16; # �������� (8, 16) @b_names = grep /^�/, qw(fred barney betty wilma) ;

Stextfiles = grep -T, <*>;

������� map ������ �� grep, �� ������ ������ � ���������� ��������� �� ������ ���������� ��� ������ ������ ���������� ���������� ��������� (������������ � ��������� ���������):

@more = map $_ + 3, 3, 5, 7; # �������� 6, 8, 10 @square s == map $_ * $_, 1. .10; # �������� ������ 10 ����� @that = map "$_\n", Sthis; # ��� unchop

Ctriangle - map !..$_, 1..5; # 1,1,2,1,2,3,1,2,3,4,1,2,3,4,5 %sizes = map ( $_, -s ) <*>; # ��� ������ � ��������

�������� eval (� s///e)

��, �� ������ ������� �������� ���� �� ����� ������ ��������� � ��������� ��� ��� ������ ������� eval ����� ��� ��, ��� � shell. ��� ��-���������� �������� �����������, ��������� ������� ����� ��������� ����������� ������� ���������� (��������, �������� ��������������� ���������� ���������) �� ����� ����������. � �� ������� ����� ����� ����������� �� ��������� ���� ������, ������� � ��������� ������ ����� ����������: ��������� ������ ������ eval ������ �������� � ������ �� ���� ������� � ������ ������������ ��� ������.

���, ��������, ���������, ������� ������ ������ Perl-����, �������� �������������, � ����� ��������� �� ���, ��� ����� ��� ����� Perl-���������:

print "code line: ";

choptScode = <STDIN� ;

eval $code; die "eval: $@" if $@;

Perl-��� ����� �������� � ���������� ������ ��� ���������� �������� ������ � ������� ����� �. ��� ������, ���� �� ������ �������� � ���������� ������ ����� �������, ��������, ����� ������������, ������� ���������� �� ���������� ������ � ���� ������. ��� ����, ������� �������������� �������� ������ ������� ��� ���� �����:

while (�) (

s/" (\S+)/$l+l/e; f $1+1 is Perl code, not a string

printf;

}

������� evai ������������ ����� ��� �������� ��������� ����������:

eval {

some_hairy_routine_that_might_die(Oargs);

};

if ($0) (

print "oops... some_hairy died with $@";

1

����� ������ $@ ���� �� ��� ���, ���� ���� eval �������� ���������, � � ��������� ������ ���� ���� ������ "��������� � ������".

�� ���� ���� ����������� (eval "������", eval { ���� } � s///e) ������ ������ ������������� ������������� ����� �������������� �� eval �� shell. ��������� ��� ������������� "�� ����", ��� ������ �� ����� �������������� �������� ������������������.

���������������� ����������

�� ��� ������� � ����������� ����������������� �����������, ��������, � ���������� $_. �� ������� ������. � ���� �� ����������� ��������� ����� ��� ����� ����������. ����� ��� ������� man-�������� perlvar(\), � ����� ������ English �� �������� perlmod(Y).

��������� ������� �������� � ������� *FRED

�� ������ ������� b ����������� ��� � � ������� �������� *� = *�. ��� ������, ��� $� � $� ���������� ���� � �� �� ����������, ����� ��� @� � @�, � ���� ����������� ������ � ������� � � b. �� ������ ����� �������� *� ��������� ��� ������� ����� � ������� �������� local (*b), ��� �������� ��� ����� ��������� ����������� ������, ������� � ������ ����. ��� ������ ��������������, �� ������ ������ ������ �������.

�������������� ����������� ���������� ���������

���������� ��������� ����� ����� "�����������" ��������� (� ������� ���������� ������� �� �����������, ������� ���������� ��������� ����� ����������� �� ��������� ����� � ��������� ������� Perl-�����������), � ����� ����� ������������� � ������������� "����������". ���� ��������� ������� ��������� ���������, �� �� ��������� � ���������� � ����� Programming Perl ��� man-�������� perlre(l). ��� ��� � ������ ������ ������������ � ����� ������ (Friedl) Mastering Regular Expressions (������������ O'Reilly & Associates).

������

���� ��� ����� �������� �������� ����� ����� ��� ���� �� � ������� ��������, �� ������ ������� ������������ ���� ���������� � ������� �������. ����� � ��� ������ ������� �������, ������� �������� ����� ������� ����������� ���������� (����� ���, ������� ��������� ��������� ��). ������� ���� �������, �� ��������� ������ ����������. ��� ��������� ������:

$� = 123; # ��� �� ����� ���� $main::a $main::a++; # �� �� ����������, ������ 124 package fred; t ������ ������� � fred $� = 456; # ��� $fred::a

print $a - $roain::a; t ������� 456-124

package main; t ������� � ��������������� �������� �� ���������

print $� + $fred::a; t ������� 124+456

����� �������, ����� ��� � ����� ������ ������ ������������ ��� ����, � ��� ��������� ����� ��������� �������������� �������� ������, ������� ������ �� ���������. ������ �������� ��� �������� ����� ��� �����, � �� ������ ������ ������������ ����� main � ������ �����. ����������� ��. �� man-�������� perlsub(\).

�������������� � �������������

"������������" Perl ���������� ���������� ������ ��� ����, ����� ����������� �����������-�������������� Perl � ������ ���������� (���, ��� ��� ��� ������� � Web-�������� Apache � ��������� ���������� vi) ��� ���������� Perl ����� ���������� � ���� ������������� ����, ����������� �� � (��� �������� �-�������� ���������), ����� ������������ ��������� �������. ����� ����, ����� ������ ����� ���������� ������������ �� Perl ��������� ������ �������� ����������� � ���������� ����� �����. �������� ��� ������� �������� �� man-��������� perlembed(l), perlapio(l), perlxs( 1), perlxstut( 1), perlguts( 1) � perlcall( 1).

��������� Perl ����� �������� ���������, �� ������ �������� ����������� ��������� �������� ����������� ������, ��������� ���������� Perl ��� ���������� ��������� � �� ������� � �� ����� �� ����� �� ��� ��� ����. ���������.

������� ������������

Perl ���������� � ������ ���������� ������������. ���������� � ����� 6 ����� Programming Perl ��� �� man-�������� perlsec(l) �������� � "�������� �������" (taint checking). "�������� �������" � ��� ����� ��� ������, ����� �� ��������� ������ ���������, � �� ����, ������� �� ��������� � ��� ��� ����� ������ � UNIX � �����������, � ������� ����������� ������������� ������������, � �� ���� �������� � �����������, ������������ ��������. ������ Safe, ������� ������ �� man-�������� Safe(3) � � ����� 7 ����� Programming Perl, ������������ ����� ���������� ���� � ������, ����������� ��� ���������� (��� � ������ � eval) �������������� ����.

��������� swithch � case

���, ����� ���������� � Perl ���, �� �� ����� ������� � ������� ������� �����������. ��. ����� 2 ����� Programming ���1� man-�������� perlfunc(\).

 

������ ����-�����: sysopen, sysread, syswrite, sysseek

������ �������� �����-������ Perl ����������� ������� ���������������� ��� ������� ����� ���� ������. � ����� 3 ����� Programming Perl � �� man-�������� perlfunc(l) ��������������� ������ ����������������� ������������� ������� ��������� ������� ��� �����-������.

���������� Perl

���� �� �������, ��� Perl ����������� ��� ��� ����� ���, ��� ��� ���������, ��� ���������������� ����� �� �������� "������" ��������� �����. ���������� Perl, ���������� ����������� ����, ����� ������� �� ������ Perl-�������� ����������� �������� ��� ��� ������������� �-���. ���������, ��� � ������ Perl 5.005 ����� �������� ����������� ��������� ������������ ����. ����������� ��. � ���������, �������������� �� man-�������� perlfaq(3).

��������� ��� ������

��, Perl ����� ���������� ���������������� �������������� � ������������� ��������� ��� ������, ������� Oracle, Sybase, Informix � ODBC, �� ������ ������ ������. ��������������� ������ ���������� �� ������� � ������� ��� ������ � �������� ������� CPAN.

������� ��������� ������

��������� ������, �� ������ ��������� ��������� ������ ������������ ������� ���������. ������� �� ���������� ��������������� � ����� 4 ����� Programming Perl � �� man-��������� perllol(l), perldsc(l)perlref(l). ���� �� ������������� ��������-��������������� ��������� ������, ���������� � ����� 5 �������������� ����� � man-��������� perltoot(\)perlobj(l).

��������� �� �������

Perl ����� ��������� � ���������� ��������� �� ������� ����������� ������ ���� \&funcname, � ����� �������� �� �������� ����������� ������ &$funcptr ($args). ����� ���� ������ �������, ������� ������� � ���������� ����� ��������� �������, ��� � ������ Lisp � Scheme. ����� ��������� ������� ����� �������� ����������� (closures). ����������� ��. � ����� 2 ����� Programming Perl � �� man-��������� perlsub(l)perlfaq7(l).

� ������

Perl � ������ ���� ���������� ��� ����� ������ � ��������, ������� ����������� ���������� ����������� ��� ������������ � �������� ������� ������. (��� �����, ����� ����, � ��� ��������� ���� ����� �� ������ ��������� ��� ����� ������ Visual Perl?) � ����� ������ � �������, �����!

 




|     �����     |


| ���������� | ����������� | �������� | ������
| ����� 1 | ����� 2 | ����� 3 | ����� 4 | ����� 5 | ����� 6 | ����� 7 | ����� 8 | ����� 9 | ����� 10
| ����� 11 | ����� 12 | ����� 13 | ����� 14 | ����� 15 | ����� 16 | ����� 17 | ����� 18 | ����� 19
| ���������� � | ���������� � | ���������� � | ���������� � |