����� 2� ���� �����:
��������� �������� ��������� ���������� ��������� �������� � ������� <STDIN> ��� ��������� �������� ���������� ��������� ��������� ����� ��������� ������ ������ � ��� ���������� ��� ������, �������� ������������ 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. ����������� ������������������
��� ���� ����������� ����� � ������� �������� ������� � ���, ��� � ��� ������������ ������������ ����������, �.�. ��� ������������� ������ ��� ��������� ���������� � ����������-������� � ��� ���������� �� �������� ����������. ��, ������, ��������� ��� �� ������� � ���, ��� ����� ���������� (�� ����������� �������� ������, ������� � ����� 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. �������� ��������� ����� � �����
��, ��������, ��������, ������ ������������� ��������� �������� ��� ����� � �����, ���� ����� ����� ������������� ��������������� � ������ � ��������. ������� ���������� ��� ��������, 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. ��������������� � ��������� ��������: �� �������� � �������
* �� ������ ������� �������? ���� ���, �� � ������������ ������������� ������� ������ ������ ����������������� ���.
� ���� ������� ������ �������� ����� ����� ������� ���������, ��� ������������� �� ���, � ����� ������ ���������, ��� ������������� ����� ���. �������� ������ ������ ����������� ����������� � ������������ � ��������� ���������������. ��� � ���������, ��������������� ���������� ������� ���������� ��������, ���� ��� �������� � ���������� ����������� �������� �������������� ����� ����������: 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 ��������� � ���������� $�. (��� ������ ����������� ��� �������� ������������; ������������� ��������� ����� ������������ �����, ��� ���������� ����������, � �������� ��������� � ����������, ������� ����� �� ����� ���������.) ����, �� ������ �������� � ������� ����������� <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. �������� ���������, ������� ��������� ������ � ����� � ������� �� ����� ������ ������� ���, ������� ������ ������, ������ ������ ��� � ����� ������. (�����: ����������� �������� �.) |