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

����� 2

    � ���� �����:


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

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

������ � ��� ���������� ��� ������, �������� ������������ Perl. ������ � ��� ���� ����� (��������, 4 ��� 3.25�20), ���� ������ �������� (��������, hello ��� Gettysburg Address). ���� � �����-�� ����� � ������ � ��� ���������� ������ ����, � Perl ��� ������������ ����������� ��� ���������������� �������, ������� �� ������ �� � ����� �����.

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

�����

���� ������ � ��� ���� �����, ���� ������*, � ������ ������ ��� ����� ������� ����������� �� ��������. ����, ������� �����, � ����� ������ � ������.

� Perl ��� ���� ����� ������������ ���� � ��� �� ���������� ������

��� ������ ���� �� ���������� ��������� �������, ����� �������� � ����� (����� �������� ��������, �������� 17 ��� 342), � ����� � ��������� ������� (�������������� �����, �������� 3,14 ��� 1,35, ���������� �� 1025). ��� ����

 

 

* ��� ������, �� ��� ����� ������� ����.

�� ���������� ����������� Perl ���������� ������ �������� � ��������� ������� ������� ��������*. ��� ������, ��� ���������� ����� ������� � Perl ���; ������������� ��������� � ��������� ��������������� ��� ������������� �������� � ��������� �������**. ��, ��������, �� �������� ����� �������������� (��� �������� �������������� ���), �� � ����� ������ �� ����� ������ ������������� �������� (��� ���������� � ��������� � ��������� �������), ��� �� �������� ���.

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

������� � ��� ������ ������������� �������� � ������ Perl-���������. � ����� ��������� �� ������ �������� ������� ����������, �� �� ����� ������������ �������� �������. �������� � ��� ������ ������������� ������ � �������� ������ ����� ��������� ��� ������� ���������� ��� ����������� Perl. (������, ������� �������� �� ������ ��� ������������ � �����, ���������� ������, �� �� ������ ���.)

Perl ��������� ������ ����� ��������� � ��������� �������, �������� ���������� ������������, ���������� �� �. ����������� ����� � ����������� �������� � ��� ��� (������� �������������� ������� "����" ��� "�����"). ����� ����, ����� ������������ ���������� ������� ����� ������ (���������������� �������������) � ������ �. ��������:

1.25 # ����� ������� � ��������� 7.25�45 # 7,25, ���������� �� 10 � 45-� ������� (������� �����)

-6.5�24 # ����� 6,5, ���������� �� 10 � 24-� �������

# ("�������" ������������� �����)

-12�-24 # ����� 12, ���������� �� 10 � ����� 24-� �������

# (����� ��������� ������������� �����)

-1.2�-23 # ��� ���� ����� ������ ����� �����

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

������������� �������� ����� ������ ������, ��������:

12 15

-2004 3485

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

- �������� � ��������� ������� ������� �������� � ��� ��, ��� ���������� �, ������� ������������ Perl, ����������� ��� ���������� double.

-* ���� ������ �� �� ����������� "������������� �����", �� �� ��������� �� �� �������.

-** "��������� ����" �������� ������ � ���������, �� �� ��������� ��� �������������� �������������� ����� � �����. ������ ������, ���������� ��� ������������ ��� ����-������������� ��������, ����� ������������� � ����� � ������� ������� oct ��� hex.

�� � �� F (� ����� ��������) ���������� ������� �������� �������� �� 10 �� 15. ��������:

0377 t ������������ 377, �� �� �����, ��� ���������� 255

-Oxff # ������������� ����������������� FF, �� �� �����, ��� ���������� -255

������

������ � ��� ������������������ �������� (��������, hello). ������ ������ ������������ ����� 8-������� �������� �� 256-����������� ������ (��� ���� ������ NUL ������ ����������, ��� � ��������� ������, ����� �� ������������).

����� �������� �� ��������� ����� �� �������� �� ������ �������. ����� ������� ������ ��������� ��� �������� ������ (�� ������� � ��� ���-���� �� ���� �� �������). ��� ������������� �������� "���������� ���������� �����������", �������� Perl ������� ��� ������ �����������. ������ ������ ������������ ����� ������������������ ����, ���� � ������ ����������, ���� ������� ����� � ��������� ASCII 32 � 126. ������ ����������� ������� � ������ ������ ������� � ����� �� 0 �� 255 ��������, ��� �� ������ ���������, ������������� �������������� �������� ������ � �������������� ��� ��� �������� � ��, ��� ������� �� ��������� ��������� � ����������� ������ ������. (��������, ����� "��������" ���� ������������ �������, �������� ������ �������� ���� ��� Perl-������, ����� ��������� � ������� ��������� ������� �� ����.)

��� � �����, ������ ����� ����� ����������� ������������� (������ ������������� ���������� �������� � Perl-���������). ����������� ������ ������ ���� �����: � ��������� ��������� ������� ��������*. ���� ��� ���� ������� �����: ������ � �������� �������� ('��� �����'). ��� �� ������� ����������� ������, ������� ������ ���������� ������� ������ � ��������� �� �����������. ����� �������� ���� ������ ��������������� � ����� 14.

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

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

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

* ���� ����� here -������, ������� �� here-���� ����� shell. ��� ��������������� � ����� 19, ���������������� CGI. ��. ����� ����� 2 ����� Programming ���� man-�������� pcrldata( I).

� ������ � ��������� �������� �������� �����, ��������� ����� ��� ��� ���� �������� ����� �����. �������:

'hello' # ���� ��������: h, e, 1, 1, �

'don\'t' # ���� ��������: d, �, �, ��������� �������, t

'' # ������ ������ (��� ��������)

'silly\\me' # silly, �������� �����, ��

'hello\n' # hello, �������� �����, �

'hello

there' # hello, ����� ������, there (����� 11 ��������)

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

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

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

"hello world\n" # hello world � ����� ������

"new \177" # new, ������ � ������ �������� (������������ 177)

"coke\tsprite" # coke, ���� ���������, sprite

������ ������������ ��������� �������� ����� ����� � ���������� ��������� (��� ���������� ����������� ������������������ � �������� �����). ������ �������� ����������� �������������������, ������� ����������� � ������� � ������� ��������, �������� � ����. 2.1.

������� 2.1. ����������� ������������������

�����������

��������

\�

������� �� ����� ������ (Newline)

\�

������� � ������ ������ (Return)

\t

���������

\f

������� � ����� �������� (Formfeed)

\b

������� �� ���������� ������� � ��������� ������� (Backspace)

\�

������

\�

Escape

�����������

��������

\007

������������ ASCII-�������� (� ������ ������ 07 = ������)

\x7f

����������������� ASCII-�������� (� ������ ������ 7f = �������)

\��

����������� ������ (����� Ctri+C)

\\

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

\"

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

\1

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

\L

������� � ������ ������� ���� ����������� ���� �� \�

\U

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

\U

������� � ������� ������� ���� ��������� ���� �� \�

\Q

��������� � �������� ����� ��� ����������� � ��� ���������� ������� �� \�

\E

�������� �������� ������������������ \L, \u ��� \Q

 

��� ���� ����������� ����� � ������� �������� ������� � ���, ��� � ��� ������������ ������������ ����������, �.�. ��� ������������� ������ ��� ��������� ���������� � ����������-������� � ��� ���������� �� �������� ����������. ��, ������, ��������� ��� �� ������� � ���, ��� ����� ���������� (�� ����������� �������� ������, ������� � ����� 1), ������� �� �������� � ����� ������� �������.

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

�������� ���������� ���������� ������������ ��������, ��������� ������� ��������� ����� �������� (���������) �� ������ ��� ���������� ������ �������� (���������). ��������, ������ + ���������� ��������, ������ ��� ��� ��� ������������� ������� ��� ����� (��������, ��������, 5 � 6) � ��������� ����� �������� (11, ���������).

������ ������, �������� � ��������� Perl ������������ ����� ������������ �������� � ���������, ��������� � ����������� ������ �����-� �������-�������� ������ ���������������� (����� � ��� Java). ��� ���������� �������� �������������� ������� ��� ��������, ��� ��������� ��������� (���� ��������� ��������� ���� �����). ���� �� ������� ��������� ������� ���, ��� ������ ���� �����, ��� ��������. Perl ������������� ����������� ���� �������, ��������� ������ ������� ���������������� �������, ������� �� �������� ���������� ���� � ������� "�������������� ����� � ������ � �������".

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

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

2+3 #2 ���� 3, ��� 5 5.1-2.4 #5,1 ����� 2,4, ��� �������������� 2,7 3 * 12 #3 �������� �� 12 = 36 14/2 #14 ������ �� 2, ��� 7 10.2/0.3 # 10,2 ������ �� 0,3, ��� �������������� 34 10/3 # ������ �������� ������� ����� � ��������� �������, # ������� ��������� �������������� ����� 3,3333333...

����� ����, � Perl ������������ �������-�������� �������� ���������� � �������, �� ������� ������ ������� � ������� � �. ��� �������� ������������ ����� �����������, �������� 2**3 ����� ���� � ������� ���, ��� ������. (���� ���� ��������� "�� ����������" � ����� � ��������� ������� ������� ��������, ��������, ������������� ����� ���������� � ������� ������� ��� ������� ����� ���������� � ������� �������, �������� ��������� �� ������ � fatal error)

Perl ������������ ����� �������� ������� � ��������. �������� ��������� 10 % 3 � ������� �� ������� 10 �� 3, ��� 1. ��� �������� ������� ����������� �� �����, �.�. 10.5 % 3.2 ����������� ��� 10 % 3.

�������� ����������� ��������� ���������: <, <=, ===, >==, >, !=. ��� �������� ���������� ��� �������� � �������� ������� � ���������� �������� "������" (true) ��� "����" (false). ��������, �������� 3 > 2 ���������� �������� "������", ������ ��� ��� ������, ��� ���, ����� ��� �������� 5 != 5 ���������� "����", ������ ��� �����������, ��� ���� �� ����� ���� � ��������. ����������� �������� "������" � "����" ��������������� �����, � ���� ����� �������, ��� "������" � ��� �������, � "����" � ����. (�� ��� ������� ��� �������� � ����. 2.2.)

���, ��������, ������� ����� "��������������" � ������������ � ��������, ������� �� ������� � ������ ����� �������. ����� ��� ��������� 2, 4 �� 5,1 �� ���������� ����� 2, 7? �� ����� ����������, ����� ����, � ����������, �� � �����������, ��� �������, � ���. � �������������� ������� ���������� ������������ ��������, ������� ����� ���� �� ������������� ����� ���������� ��������. ����� � ����������� �������� �� ���, ��� �� ������������ ���� ���������. �������, ���� �� �� ������� ����-������ �������������, ��, ��� �������, ������� ������ �� ����������, ������� ��������.

��������� ����������� ���� ���������, �� �������, ��� � ���������������� ��������� ������� � ���������� ��������������� ��������� (������� print f ����������� � ����� �):

printf ("%.51\n", 5.1 - 2.4)

# 2.699999999999999733546474089962430298328399658203125

print(5.1 - 2.4, "\n") ;

# 2.7

 

�� ��������� �� ��� ������� ��������: ����������� ������ ������� print ��� ������ �� ����� ����� � ��������� ������� ������ �������� ����� �������������� ���������� �������������. ���� ��� ������� �����-�� ��������, ������� ��������������� ���������� �������� Math::BigInt � Math::BigFloat � � ��� ����������� ���������� � ����������� ��������� ��� ����� � ����� � ��������� �������, ������ ����������� ��� �������� ��������� ���������. ����������� �� ������� � ����� 7 ����� Programming Perl � � ������������� (�������) ������������ �� ��� ������.

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

��������� �������� ����� ��������������� ��������� ".". (��, ��� ������ ���� �����.) ������ �������� �������� ������-�������� �� �����, ��� �������� 2+� �������� 2 ��� 3. ������-��������� (����� �������) ����� ������������ � ���������� ����������� ��� ��������� � ����������.

"hello" . "world" # �� �� �����, ��� "helloworld" �hello world' . "\n" # �� �� �����, ��� "hello world\n" "fred" . " " . "barney" # �� �� �����, ��� "fred barney"

�������, ��� ������������ ����� �������� ���� ��� ������ ����� ".", � �� ������ ����������� ��� �������� ����� ���� � ������.

��� ���� ������ �������� ��� �������� -� �������� ���������. ��� �������� ������ �� ��������������� �������� ��������, �������� it (������ ���) � �.�. �������� ��������� ����� ���������� ASCII-�������� �������� ����� ������� ��������. ������ ����� �������� ��������� (��� ��� �����, ��� � ��� �����) �������� � ������� 2.2.

������� 2.2. �������� ��������� ����� � �����

���������

��������

���������

�����

==

eq

�� �����

! =

��

������ ���

<

It

������ ���

>

gt

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

<=

le

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

>==

ge

 

��, ��������, ��������, ������ ������������� ��������� �������� ��� ����� � �����, ���� ����� ����� ������������� ��������������� � ������ � ��������. ������� ���������� ��� ��������, 7 � 30. ���� �� �������� ��� �����, �� 7, ��������, ������ 30. ���� �� �������� �� ��� ������, �� ������ "30" ���� ����� ������� "7" (���� ASCII-�������� ����� 3 ������ ASCII-�������� ����� 7), ������� 30 ������ 7. Perl ������ ������� ��������� ��� ���������, �� ���� ����������������, ����� ������ ���������, �������� ��� ���������, ����� �����������.

���� �� ��� ������ ���� ���������������� �� shell � ����� UNIX, ��, ��������, ��������, ��� ��� �������� � ��������� �������� ��������� �������������� �������������� ����, ��� ��������������� ��� ���� � UNIX-������� test. � ���������, ��� ��������� ��������� ������������ eq, � ��� ���������� ����������� ���� =.

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

"fred" � 3 # "fredfredfred" "barney" � (4+1) # "barney" x 5, ���

# "barneybarneybarneybarneybarney" (3+2) � 4 #5�4, ��� "5" � 4, �.�. "5555"

��������� ������ ����� ��������� ���������. ������� ������ ��������� �� ��, ��� ��� ����� ��������� ����� ��������� ������. (������� ������ ����� �������� ��� ��, ��� � ������� ����������.) ������ � �������� ���������� ������ ����� ������� ������ ���� �������, ������� ����� 5 ������������� � �������������� ������ "5" (������� ����� �������������� �� ���������� �������). ��� ������ ���������� ������ ����, ��� � ����� ���� ����������������� ������ 5555. ���� �� �� �������� �������� �������, �� � ��� ���� �� ���� ����� ������ 4, �.�. 44444. ��� ����������, ��� ���������� ������ � ��������������� ��������.

��� ������������� ����� ����� (������ �������) ������� ��������� �� ������ �������� (4, 8 ������������ � 4). ���� ������� ����� �����, ������� �������, � ���������� ���������� �������� ��������� ������ ������ (������ ������� �����).

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

������ ��������� ������������� ������ ��������� ��� ��������� �������� ��������������� ������ ����, ����� ��� �������� �������� �������������� ����� ����������. ��������, ��� ��������� � ������ ������� � ��������� 2+3*4 � �������� ��� ���������? ���� ������� ��������� ��������, �� ������� 5*4, ��� 20. ���� �� ������� ��������� ��������� (��� ��� ����� �� ������ ����������), �� �� ������� 2+12, ��� 14. � �������, � Perl ������ ����������� �������������� �������, �.�. ��������� ����������� ������. ������� �� �������, ��� ��������� ����� ����� ������� ���������, ��� ��������.

������� ���������� ��������, ������������ �����������, ����� �������� � ������� ������� ������. ���������, ����������� � ������, ����������� � ������ �������, � ���� ����� ����������� ��������, ������� �� �������� (���, ��� ��� ����� �� ������ ����������). �������������, ���� �� ��� ���������� ��������� �������� �� ���������, ���������� ���� �� �������� (2+3)*4, ��� ���� �� � ���������� 20. ���� �� ������ ���������, ��� ��������� ����������� ����� ���������, ������ �������� "������������", ������������� ����������� ������� ������: 2+ (3*4).

 

��� ���������� �������� �������� � ���������* ����������� �� ���������� ������������ ���������� ������, ��, ������, ��� ������������ ����� � ��������� � ����������� � ������� ����� ���������� ��������. ����������� ������ ���� ��������� �� �- ���������� � �����������, �� �������������� ������� ����������, ������� ����������� Perl-��������. (��� ����. 2.3. �������, ��� ��������� �� �������� ���� ��� �� �������;

����� ����, ��� ����� ��� � �� ��������� �� ��������� ���� �����. �����, ������, ���� ���� �� �������� ���.) ��������, ����������� ��������� �, ����� ��� �� ���������, ��� � � ���� �����.

������� 2.3. ��������������� � ��������� ��������: �� �������� � �������

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

��������

�����

�������� ��� �������� (������ ������)

�����

-> (����� ������, �������������)

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

++ ~ (�������������, �������������)

������

** (���������� � �������)

������

! ~ \ + - (���������� ���������, ��������� ����

 

 

�����, �������� ������, ������� ��������, ������� ���������)

�����

=~ !~ (���������, �� ���������)

�����

* / % � (���������, �������, ������� � ��������, ���������� ������)

�����

+ - . (��������, ���������, ������������ �����)

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

����������� ������� �������� (��������, chomp)

�����

& (��������� �)

�����

| (��������� ���, ��������� ����������� ���)

�����

&& (���������� �)

�����

1 | (���������� ���)

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

. . ... (�� ���������� ��� ���������� ��������� �������� ���������)

������

?: (�������� ������, if-then-else)

������

= += -= *= � �.�. (������������ � ������������ � �����������)

�����

, => (������� � �������-�������)

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

�������� ��� �������� (����� �������)

������

not (���������� ��)

�����

and (���������� �)

�����

or xor (���������� ���, ���������� ����������� ���)

 

* �� ������ ������� �������? ���� ���, �� � ������������ ������������� ������� ������ ������ ����������������� ���.

 

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

�������� ������ ������ ����������� ����������� � ������������ � ��������� ���������������. ��� � ���������, ��������������� ���������� ������� ���������� ��������, ���� ��� �������� � ���������� ����������� �������� �������������� ����� ����������:

2 ** � ** 4 # 2 ** (3 ** 4) , ��� 2 ** 81, ��� ����� 2.41�24 72/12/3 # (72 / 12) / 3, ��� 6/3, ��� 2 30 / 6 * 3 # (30/6) *3, ��� 15

� ������ ������ �������� ** ����� ��������������� ������, ������� ������� ������ ��������������� ������. �������� * � / ����� ��������������� �����, ������� ������� ������ ��������������� �����.

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

���� ��������� �������� ������������ ��� ������� � �������� � ������� (��������, � �������� ��������), Perl ������������� ����������� ��� ������ � ������������� �������� ��������, ��� ���� �� ��� ���� ������� � ���� ����������� ����� � ��������� �������*. ���������� ��������� � ��������� ���������� ������� ������������, ������� " 123. 4 5 f red" (� ��������� ��������) ��� ������-���� �������������� ������������� � 123. 45**. ����� ������� �� �������� ������� � ����� �����, �� ���������� ������, ������ ��� �������������� ������������� � ���� (��� ������ fred, ������� �� ������������ ����� ��� �����).

���� ��, ��������, ���, ��� ������ ���� ��������� ��������, �������� �������� (��������, � �������� ������������ �����), ��� �������� �������� �������������� � ������, ������� ���� �� �������� �� ����� ������ ����. ��������, ���� �� ������ ��������������� ������ � � ����������� ��������� 4 �� 5, ��� ����� �������� ���

"X" .(4*5) f �� �� �����, ��� "X" . 20, ��� "�20"

(�������, ��� ������� ������ ���������� ������� ��������� 4*5, � ����� ��������� �������� ������������.)

������� �������, ��� �� ����� (� ����������� �������) ������������ � ���, ��� ������� � �������� �������� � ������ ��� �����, ��������� Perl ��������� ��� ����������� �������������� ��������������.

* ����������������� � ������������ �������� ����� ��������������� �������������� �� ��������. ��� ������������� ����� �������� ������� ������������ ������� hex � oct.

** ���� � ��������� ������ �� ������� ����� -w. � ����� ����������� ������������ ������ ��������� ��� �����.

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

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

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

���������� $� � ���������� $� � ������. ��� �����, ����� � ����� ������������� � ����� ���������� ����� ��������. ���, ����������

$a_very_long_variable_that_ends_in_l

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

$a_very_long_variable_that_ends_in_2

����� ���������� �������, ��� �������, ��������� ���, ����� ��� ����� �����-�� ����� � ����� �� ��������� ����������. ��������, ��� $xyzl23, ��������, �� ����� �����������, � ������� �� $line_length.

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

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

$� =17; # ��������� ���������� $� �������� 17

$b = $� + 3; # ��������� $� ������� �������� $� ���� 3 (20)

$b == $b * 2; # ��������� $b �������� $b, ���������� �� 2 (40)

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

��������, �� ��������, ��� ��������� ���������� ������ ������������ ������ $. � shell ���� $ ���������� ��� ��������� ��������, � ��� ������������ ������ �������� ��� �� ���������. � Java � � ���� ������

* �� ���������� ���������� ������ 255. ��������, ����� ����������. 2. ��������� ������

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

�������� ������ ������ ����������� ����������� � ������������ � ��������� ���������������. ��� � ���������, ��������������� ���������� ������� ���������� ��������, ���� ��� �������� � ���������� ����������� �������� �������������� ����� ����������:

2 ** 3 ** 4 # 2 ** (3 ** 4) , ��� 2 ** 81, ��� ����� 2.41�24 72/12/3 # (72 / 12) / 3, ��� 6/3, ��� 2 30 / 6 * 3 # (30/6)*3, ��� 15

� ������ ������ �������� ** ����� ��������������� ������, ������� ������� ������ ��������������� ������. �������� * � / ����� ��������������� �����, ������� ������� ������ ��������������� �����.

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

���� ��������� �������� ������������ ��� ������� � �������� � ������� (��������, � �������� ��������), Perl ������������� ����������� ��� ������ � ������������� �������� ��������, ��� ���� �� ��� ���� ������� � ���� ����������� ����� � ��������� �������*. ���������� ��������� � ��������� ���������� ������� ������������, �������<< 12 3.4 5 f red" (� ��������� ��������) ��� ������-���� �������������� ������������� � 123. 45**. ����� ������� �� �������� ������� � ����� �����, �� ���������� ������, ������ ��� �������������� ������������� � ���� (��� ������ fred, ������� �� ������������ ����� ��� �����).

���� ��, ��������, ���, ��� ������ ���� ��������� ��������, �������� �������� (��������, � �������� ������������ �����), ��� �������� �������� �������������� � ������, ������� ���� �� �������� �� ����� ������ ����. ��������, ���� �� ������ ��������������� ������ � � ����������� ��������� 4 �� 5, ��� ����� �������� ���

"X" .(4*5) # �� �� �����, ��� "X" . 20, ��� "�20"

(�������, ��� ������� ������ ���������� ������� ��������� 4*5, � ����� ��������� �������� ������������.)

������� �������, ��� �� ����� (� ����������� �������) ������������ � ���, ��� ������� � �������� �������� � ������ ��� �����, ��������� Perl ��������� ��� ����������� �������������� ��������������.

* ����������������� � ������������ �������� ����� ��������������� �������������� �� ��������. ��� ������������� ����� �������� ������� ������������ ������� hex � oct.

** ���� � ��������� ������ �� ������� ����� -w. � ����� ����������� ������������ ������ ��������� ��� �����.

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

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

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

���������� $� � ���������� $� � ������. ��� �����, ����� � ����� ������������� � ����� ���������� ����� ��������. ���, ����������

$a_very_long_variable_that__end.s__in__l

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

$a_very_long_variable_that__ends_in_2

����� ���������� �������, ��� �������, ��������� ���, ����� ��� ����� �����-�� ����� � ����� �� ��������� ����������. ��������, ��� $xyzl23, ��������, �� ����� �����������, � ������� �� $line_length.

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

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

$� =17; # ��������� ���������� $� �������� 17

$b = $� + 3; # ��������� $� ������� �������� $� ���� 3 (20)

$b = $b * 2; # ��������� $b �������� $b, ���������� �� 2 (40)

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

��������, �� ��������, ��� ��������� ���������� ������ ������������ ������ $. � shell ���� $ ���������� ��� ��������� ��������, � ��� ������������ ������ �������� ��� �� ���������. � Java � � ���� ������

* �� ���������� ���������� ������ 255. ��������, ����� ����������.

 

������ ����������. ���� �� ��������� ������������ ����� ��� ���������� ���������� ����� ��������, �� ��������� ������ ������ ������. (���� ������� ����������� � ���, ����� ���������� ������ ��������� �� shell, awk � �, �� ��� ��� ���� ���� ����� ���� ����������.)

��������� ������������ �� ������ �������� ���������, ��� ����� ������������ � � �������� ��������, ���������� ���� ��� ��� �������� � �. ������� �������, ��������� $�=3 ����� ��������, ���������� ���� ��� ����� ��������� �������� ��������� $�+3. ��������� �������� �� ��������, ������� �������������, �.�. $�=3 ����� �������� 3. ���� �� ������ ������ ��� ����� ���������� ����������, ������������� ������������ ��� �������� �������, ���� �� ������ ��������� ���������� ������������� �������� � ��������� ��� ������ ����������� ���� �������� � ��������� ����������. ��������:

$� = 4 + ($� =3); # ��������� 3 ���������� $�, ����� ��������� � 4,

# � ���������� ���� $� ������� �������� 7 $d = ($� = 5); # ����������� 5 � $�, � ����� � � $d $d = $� = 5; # �� �� �����, �� ��� ������� ������

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

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

��������� ���� $ � == $� + 5 (��� ���������� ����� �� ��� ������� �� ��������� ������������) ����������� �������� �����, ������� � Perl ����������� ����������� ����� ������ �������� ��������� ���������� � �������� ������������ � �����������. ����� ��� �������� ��������, � ������� ������� ����������� ��������, ����� ��������������� ����� � ����������� ������ ���������. ��������, ��������� ��� ������ ������������:

$� = $� + 5; # ��� �������� ������������ � ����������� $� += 5; # � ��������� ������������ � �����������

������������ � ��� ������:

$� = $� * 3;

$b *= 3;

� ������ �� ��������������� ������� ������ �������� �������� ��������� ������������� �������� ���������� ������������ ��������, � �� ������ ������ ����� �������� ����������� ���������� ������-�� ������ ���������.

������ ���������������� ��������� ������������ �������� �������� ������������ �����:

$str = $str . " "; # �������� ������ � $str $str .= " "; # �� �� �����, �� � ��������� ������������

 

����� ��� �������� ��������, ���������� ����� �������, ���������. ��������, �������� ���������� � ������� ������������ ��� * * =. ���, $ � * * = 3 �������� "�������� �����, ������������ � ���������� $�, � ������ ������� � ��������� ��������� ������� � $�".

��� � ������� �������� ������������, ��� �������� ����� ����� ���� ������������ � �������� ��������, ������� �������� ����� �������� ����������. ��������:

$� = 3;

$b = ($� += 4); # $� � $b ������ ����� 7

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

�������� ��, ��� ����������� ������� � $� ����� ������ �������� $� += 1, �� Perl ���� �� ��� ������ � ��������� ���� ��� ������. �������� ++ (�������������) ���������� � ������ �������� ������� � ���������� ��-���������������� ��������, ��������:

$� += 1; # � ��������� ������������ ++$�; # � ���������� ��������������� $d = 17;

$� = ++$d; # � $�, � $d ������ ����� 18

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

$� = 17;

$d = $�++; # $d ����� 17, � $� ����� 18

��������� �������� �������� ����������, ������� ������ ���� ��������� ����������, � �� ������ ����������. �� ����� ������������, ��� ++16 ������� �������� 17, � ������ ������� ���, ����� ++($�+$�) �����-�� ������� ����� ������, ��� ����� $� � $�.

�������� �������������� (") ������ �� �������� ��������������, �� ����� �� ������������ �������, � ����������. ��� � �������� ��������������, �������� �������������� ����� ��� ����� � ���������� � ���-�������. ��������:

$� = 12;

--$�; # $� ������ ����� 11

$� = $�"; # $� ����� 11, � $� - 10

�������� �������������� � �������������� ����������� � ��� ���������� � ��������� �������. ��������������������� ���������� �� ��������� 4,2 ����, ��� � ��������� �������, 5,2*.

* �������� ��������������������� ����������� ���� ��� ��������. ��. �� ������� ������� ����� Programming Perl ��� man-�������� perlop(\).

������� chop � chomp

������ �������� ������ ������ ���������� ������� chop. ��� ������� ��������� ���� ��������, ����������� � ������� ������� � ��� ��������� ���������� � � ������� �� ���������� �������� ���� ���������� ��������� ������. ��������:

$� = "hello world";

chop($x); # $x ������ ����� �������� "hello worl"

�������� ��������: �������� ��������� ����� ��������, ������ � ���������� � ������� ��������� ����������, � �� ������ ���������� ��������. ������ chop (' suey'), ����� ���������� �������� � 'sue', �� ����� ������, ������ ��� ����� ��� �������� ����� �������� ���. ����� ����, ����� ���� � ������ ��������: ' sue '.

������������ �������� ��� ���� ������� � ����������� ������ (� ����������� ���� ������� � "hello world" ��� ����� d). ��������� ���, ��������, �������:

$� == chop($x); # �������: �������� $� �� ��������� �������� chop($x); # �����: ��� � ����, ������� ��������� ������

���� � ������� chop ������ ������ ������, �� ��� ������ �� ������� � ������ �� ���������, �� ������� ��������� �� ������ � ������ ����� �� ��������*. ����������� �������� � Perl ����� �������� ��������� �������; ������� �������, �� ������ ������������ �� � �������� ������������� ����������� � �� ����, ������ ����� ��� �����-���� ������� � �� �������. ��������� ����������, ��� ��� ���� �� ��������������� ����������� Perl, � ������ ����� ������������� ���������, ��������� �� �������� ���� ������� � ���������� ���� �����������. ��� ������, � ������ ������ ��������������.

��� �������� ��� ��������� ������ ������������� ��� ���� ������. ��������:

$� = "hello world\n";

chop $a; # ������ $� ����� �������� "hello world" chop $a; # ��-��! ������ $� ����� �������� "hello worl"

���� �� �� ������� � ���, ���� �� � ����� ���������� ������ ����� ������, ������ ������������ ��������� ����� ���������� �������� chomp, ������� ������� ������ ������ ����� ������**, ��������:

$� == "hello world\n";

chomp ($a); # ������ $� ����� �������� "hello world" chomp ($a); # ���! ������� ��������� � $� �� ���������

* ���� �� �� ����������� ��������������� �������� ������ ���� -w.

** ��� ���� ��������, ������� ������ ���������� $ \ � �������� ����������� ������� �������.

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

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

$� = "fred";

$b = "some text $a"; # $b ����� �������� "some text fred" $c = "no such variable $what"; # $c ����� �������� "no such variable "

�����, ������� �������� ����������, �� ���������������, �.�. ���� ��� ������� � ��� ������ ������� ������� ���������� ������ �� ������������:

$� = *$fred'; # ��������� ���� ������� � ����� "fred" $� = "hey $�"; # �������� � 'hey $fred'; ������� ����������� ���

���� ���������� ������������� ����������� �������� ������ ����� ����������, ���������� ���� �������� ��� ����� ������ ���, ����� ��� ������ � ��������� ��������, ���� ��������� ����� ������ ������� �������� �����, ������� �������� ��� ����������� ��������:

$fred = 'hi';

$barney = "a test of " . '$fred'; # ���������: 'a test of $fred' $barney2= "a test of \$fred"; # �� �� �����

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

$fred = "pay"; $fredday = "wrong!";

$barney = "It's $fredday"; # �� ���� �������� payday, a "It's wrong!" $barney = "It's ${fred}day"; # ������ $barney �������� �������� "It's payday" $barney2 = "It's $fred"."day"; # ��� ���� ������ $barney3 = "It's " . $fred . "day"; # � ��� ����

* � ����������-��������, �� ���� ������ �� ����� ������������� � ����� 3 ������� � ��������� ������.

 

��� ��������� �������� ����, ��������������� � ������������ ����������, ����� ������������ ���������� ��������������� ��� ����� ��������� ����������� ������������������*. ��������:

$bigfred = "\Ufred"; # $bigfred ����� �������� "FRED"

$fred = "fred"; $bigfred = "\U$fred"; # �� �� �����

$capfred = "\u$fred"; # $capfred ����� �������� "Fred"

$barney = "\LBARNEY"; # $barney ������ ����� �������� "barney"

$capbarney = "\u\LBARNEY"; # $capbarney ������ ����� �������� "Barney"

$bigbarney = "BARNEY"; $capbarney = "\u\L$bigbarney"; # �� �� �����

��� ������, ���������� ������� ��������� ����������� ������������������ �������� �� ��� ���, ���� �� ������ ���� �����������, �������, �������� �� ��, ��� ������ ����� ����� barney �� ����� ��������������� �� ��������� \�, ��� ���������� ��������� ��������� ����������� \�.

������ "������������ ����������" ������ �������� �������� "������������ ������� �������", ������ ��� ������������ ����������� � �������, ����������� � ������� �������. (� ����� � �������, ����������� � �������� �������, ������� �� ���������� � ����� 14.)

<STDIN> ��� ��������� ��������

���� �� � �������� �����, ��, ��������, ����� ��� ��������� ��������:

� ��� �� ������ � Perl-��������� �����-���� ��������? ��� ����� ������� ������. ������ ���, ����� ���, ��� ��������� ��������� ��������, �� ����������� ���������� <STDIN>, Perl ������ ��������� ������ ������ ������ �� ������������ ����� (�� ������� ������� ����� ������) � ���������� �� � �������� �������� ����� �����������. �������� "����������� ����" ����� ������������ ������, �� ���� �� �� ������� � ����� ��������� ������ ����������, ��� �������� �������� ������������, ���������� ���� ��������� (��������� �����, ��� ����������� ��������). ���� ������, ������� ����� ���� �� ���������, ��� ��� (�������� ������, ���� ������ �� ������� �� ������� ������ ������), Perl-��������� ��������������� � ����, ���� �� �� ������� �����-������ ������� � ����� �� ���� ������ �������� �� ����� ������.

� ����� ���������� �������� ����������� <STDIN> ������ ����� ������ ����� ������. ���� ����� �� ����� ������� ����� ����������� ����� �� (���� ����� hello Hhello\n � ������� �������). ����� � �������� �� ������ �������� ��� ������� chomp. �������� ������������������ ����� �������� �������� ���:

$� = <STDIN>; # ������ ����� chomp($a); # ����������� �� ������������ ������� ����� ������

* ��, ��������, ������� � ������, ��� ����� ��������������� ��������� uc, ucfirst, lc � Icfirst.

������������ ���������� ���� ���� ����� �������� ���:

chomp($a = <STDIN>) ;

������������ ������ ������� ������ ���������� ���������� � $� ���� ����� ����, ��� ���� ���������� ��� ��������� ��������. ����� �������, ������� chomp ��������� � ���������� $�. (��� ������ ����������� ��� �������� ������������; ������������� ��������� ����� ������������ �����, ��� ���������� ����������, � �������� ��������� � ����������, ������� ����� �� ����� ���������.)

����� � ������� ������� print

����, �� ������ �������� � ������� ����������� <stdin>. � ��� �� ������� �� ���������? � ������� ������� print. ��� ������� ��������� ��������, ������� � �������, � ������ �� ��� ������ ��������� �� ����������� �����. ����������� ����� � ��� �����-���� ��� �������� (���� �� �� ������� � ��������� ������ ����������). ��������:

print("hello world\n"); # ��������� hello world � �������� ����� ������ print "hello world\n"; # �� �� �����

�������� �������� �� ������ ������, ��� �������� ����� ������� print ��� ������� ������. ������������ ������ ��� ��� � ���, ������� �������, ������ ����� � �������� ������, �� ���� ��������� �������, ��� ������ ����������� �� ��������� ���������������.

�� ������, ��� ��� ������� print ����� �������� ������ ��������, �� ��������� ��� ������ �� ��� �� ��������, ������� ���� ������ �� ����� 6.

�������� undef

��� �����, ���� ������������ ��������� ���������� �� ����, ��� �� ��������� ��������? ������ ����������, � �����-��, �� ����������. �� ������������ �������� ���������� ����� �������� undef. ��� ������������� � �������� ����� ��� �������� �������� ��� ����, � ��� ������������� � �������� ������ �- ��� ������ ������ ������� �����. �������, ��� ������ � ������ -w �� �������� �������������� � ��� ������� ������ ������������ ������ ����������������.

������ �������� ���������� undef, ����� �� ��������� ������� �� ������� ��������� ��� �� ����� ������. ���� �� �� ������� ������ ����������, �� �������� � �������� ������ ���� ��� ������ ������ ��� ��������� �����������. �� �������� ��� ���� �� ������������ ����� ��������.

���� �� ��� �������� ��� ��������, ������� � ������������ ��������������� ���������� undef � ��� �������� <stdin>. ������ ��� ���������� ��������� �� ����������� �����; ���� �� ����� ��� ������ ������ ��� (��������, ����� �� ������ �� ��������� ������� [Ctri+D] ��� ����� � ����� ������ ��� ������), �� <stdin> ���������� �������� undef. � ����� 6 �� ���������, ��� ����������� �������� � ������ �������� � ��������� ����������� ��������, ���� ������ ��� ������ ������ ���.

����������

������ � ����������� ��������� � ���������� �.

1. �������� ���������, ������� ��������� ����� ���������� � �������� 12, 5. ����� ���������� ����� 2� (����� 2 * 3,141592654) ��������.

2. ������������� ��������� �� ����������� ���������� ���, ����� ��� ����������� � ��������� �������� ������� ���������� � ������������.

3. �������� ���������, ������� ����������� � ��������� ��� �����, ����� ���� ������� �� ����� ��������� ������������ ���� �����.

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




|     �����     |     ������     |


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