����� 11� ���� �����:
����������� ������� ����� ������� ��� � �������������� ������ ������ �������� ��������� � �������� ��������� �� ��������� ���������� ���������� ����� ������ ������ ����� �������, Perl � ���, ��� �� ��� ��������, "������������ ���� ���������� � �������". ������ ����� ����� ������, ������ ��� �������� ������ �������. � Perl ���������� ������� ������� ��� ��������� ������, ������� ���������� ��������. � ������� ������������ ���������� ����� (��������� ��������, �����, ������������ ����� � �.�.) � ���������� ����� (������� ������, ������� �� ���������� � ������). ��������� ������� ������ ���������� � ��������� ������ � ������� ���������������� ������ � ������ ��� ������ ��� ������ ������ print using � ��������� ����������� �������. ������������� ������� ������������ ���������� ���� ��������: 1. ����������� �������. 2. �������� ������, ���������� ������, � ���������� ����� ������� (����). 3. ����� �������. ���� ����� ������ ���� ����������� ���� ��� (� ������ ���������, ����� ������ ����������� �� ����� ����������)*, � ��� ��������� ����� � �����������. * ������� ����� ��������� � �� ����� ����������, ��������� �������� eval (��. ����� Programming Perl) � man-�������� perlform(l). ����������� ������� ������ �������� � ������� ����������� �����������, ������� ���������� ������������ �������. ����������� �������, ��� � ������������, ����� ������ � ����� ����� ���������. �������� ��� ���: format ���_������� = ������_����� ��������_����, ��������_���, ��������_��� ������_����� ��������_����, ��������_��� ������_����� ��������_����, ��������_���, ��������_��� ������ ������ �������� ����������������� ����� format, �� ������� ������� ��� ������� � ���� ��������� (=). ��� ������� ���������� �� ���������� ������������ ���� � ������������ � ���� �� ���������, ��� � ��� ������ �����. ��������� ����� �������� � ���� ��������� ������� �� ������������ (����� ��� � ��������� ���������), �� �������� ������ ����� �����, ����������� � ������������������ �������. ��� �� ������� � ��������� �������, "����� �������", ����������� ���� �������� �����, ��������, ��������� � ������� ������������ ������ (���, �������, ������ �� �� ����������� ����������������� ������, � ��� ������). �� ������ ������� ���� ��� ������, ������� ����� �������� ��������� ��������� ����� ��� ���� "������", �.�. �� ��������� �� ����� ������. ����� ������� ������������ ������, ������� �������� � ��������� ������*. � �������� ������ ���������� ������� ���������������� ��-�������; ��� ���� �� ��� �������� �������, ����� ��� ���������� �������� (������, ������ ����� ������ ��� ���� ���������) � �� ���������� ����� �������� ��� ������ Perl-���������. ����������� ������� �������� ��� ����� �����. ������ ������ ����� ����� ��������� ������������ ����� � �����, ������� ����� ������� ��������� ��� ������ �������. ��� ������ ������ ����� � ������������ �������: Hello, my name is Fred Flintstone. ������ ����� ����� ��������� ������������� (fieldholder, ��� ���������� �����) ��� ����������� ������. ���� ������ �������� �������������, �� ��������� ������ ������� (������� ���������� ������� ��������) �������� ��� ��������� �������� � �� ������ �� ������ ������������� � ������� ����� ����������� � ��� ����. ��� ������ ������ ����� � ����� �������������� � ������ ��������: Hello, my name is @����� $name * � ��������� ������ ��������� ������ ������ ������������� �������� ����� ������. ������������� ����� � @�����. ���� ������������� ������ ��������� ����, ������� ������� �� 11 �������� � ������������� �� ������ ����. �������� ������������� ������� � ������� "��� � ��������������". ���� � ������ ����� ������� ��������� ��������������, �� � ��������� ������ ������ ���� ������� ��������� ��������. ��� �������� ���������� ���� �� ����� ��������: Hello, my name is @����� and I'm @� years old. $name, $age ������ ��� ������, �� �������� ������� ������ ��� ������ ������: format ADDRESSLABEL = $name $ address | @<�������, @< @�� | $city, $state, $zip �������� ��������: ������, ��������� �� ������ ��������� (� ������ � ����� �������) ����� �� ��������, ������� ����� �������� ����� ��� ���. (���� ��������� ����� ����� ������ ������ ��������, ��� ����� ���������������� ��� ������ ����� � ������������ ����� ��� ������ �� ��������.) ���������� ������� � ������ �������� ������������. ��������� ������������ ��������� � ������ �������� �������������� ���������� �������, ����� ��������� ���������� �� �������������� � ���������� ������ (��������, � ������ ��� ������������� ������� ���������� $zip ���������� ����� ������� ��� ������� ����� ���������� ������), �� ��� �������� ������ ��� �������. Perl �� �������� �� ���������, � �� ��������� ���������� ��� ����� �� ������. �����, ������� � ������ �������� ����� ������� ������� ����� ������, ������������� (�� ����������� ������� ������ � �������������� �������-��������, ������� ����� ���������� ����). ����������� ������� ������ �� ����������� ������������. ��� �� �������� ���������� ������������ ���� � ����� ������� ������������� � ����� ����� ����� ���������. �� ������������ ������� ����������� ������� ����� � ����� �����, ����� ������������� �����������. ����� ������� ����� ������� ������������ � ������� ������� write. ��� ������� �������� ��� ����������� ����� � ���������� ��� ����� ����������� �����, ��������� ������� ��� ������� ����������� ������. �� ��������� ����� �������� �������� ������ � ��� �� ������, ��� � � ����������� ����� (���, ��� ����������� stdout ������������ ������ stdout). ����� �� �������, ��� ���� ������� ����� ��������. ������� ��� ��� ��������� � ������� �������� �������� � �������� ����, � ������� ���������� ��������� ����� ��������. ��� �������� ���������: format ADDRESSLABEL = $name $address $city, $state, $zip open(ADDRESSLABEL,">labels-to-print") || die "can't create"; open (ADDRESSES,"addresses") || die "cannot open addresses"; while (<ADDRESSES>) f chomp; # ������� ������ ����� ������ ($name,$address,$city,$state,$zip) = split (/:/); # ��������� ���������� ���������� write (ADDRESSLABEL); # send the output } ����� �� ����� ��� �������� ����������� �������, �� ������ � ��� ���� � ����������� ���. ������� �� ��������� ���������� ��� ��������� �����, ������� ���������� labels-to-print. �������, ��� ��� ����������� ����� (addresslabel) ��������� � ������ �������. ��� �����. ����� �� ��������� ���������� ��� �����, ����������� ������ �������. ��������������, ��� ���� ������ ����� ��������� ������: Stonehenge:4470 SW Hall Suite 107 :Beaverton:OR:97005 Fred Flintstone:3737 Hard Rock Lane:Bedrock:OZ:999bc ������� �������, ������ �������� ���� ����������� ����������� �����, ������� ���� ��������� ����������� ��������� ���� �������. ���� while � ��������� ��������� ������ �� ����� �������, ����������� �� ������� ����� ������, � ����� ��������� ��, ��� ��������, �� ���� ����������. �������� ��������: ����� ���������� � �� �� �����, ������� �� ������������, ��������� ������. ��� ���� �����. ����� �������� �������� ���� ����������� ��� ������ � �������� ���������� ������� write �������� ������. �������, ��� ���������� ������� write �������� ���������� �����, � ������� ����� �������������� ������; ����� ����, �� ��������� ������������ ������ � ��� �� ������. ������ ���� � ������� ���������� ��������������� ��������� �� ��������� ������ �������. ����� ��������� ���� ����������� � ������� ������� ���� labels-to-print ����� ��������� ���������: Stonehenge 4470 SW Hall Suite 107 Beaverton , OR 97005 Fred Flintstone 3737 Hard Rock Lane Bedrock , OZ 999bc ��� � �������������� �� �������� �� ��� ������, ��� ������������� @�� ���������� ����������� �� ������ ���� ����, ������� �������� ���� ��������, � @����� � ����������� �� ������ ���� ����, ���������� ����������� ��������. ��� �� � �������, ������ ������������� ����� ��������. ��������� ���� ����������� �������������� ���������� �� ����� @. �������, ������� ����� ����, ���������� ��� ����, � ����� ���� �������� (������� @) ������������� ������ ����. ���� ����� ����� @ ����� ����� ������� ������ (��), ���� ��������� �� ������ ����, �.�. � ������, ���� �������� �������� ������, ��� ���������� ��� ���� ����, ��� ����� ����������� ������ ��������� �������. (���� �������� ������� �������, ��� ������������� ���������; ��������� ������� ������ �����������.) ���� ����� ����� @ ����� ������ ������� ������ (��), ���� ��������� �� ������� ����, �.�. � ������, ���� �������� �������� ������, ��� ���������� ��� ���� ����, ��� ����� ����������� ��������� �����. �������, ���� �������, ������� ����� ����� @, � ������������� ��������� ��� ������������ ����� (||||), �� ���� ������������. ��� ��������, ��� ���� �������� ������� ��������, ������������ ���������� ��������� � ����� ������, � ���������� �������� ����� ����������� �� ������ ����. �������� ���� ��������� ��� ������������� � �������� ���� � ������������� ���������� �������, �������� ��� ������� ���������� �������. ��� ���� ����� ���������� �� ����� @; �� ��� ������� ���� ��� ����� ������ # � �������������� ������ (��� ���������� ���������� �������). �����-����, ���� @ ��������� ����� �� �������� ����. ��������: format MONEY = Assets: @#W#.*� Liabilities: @#*�##.*# Net: @t�##*.*# $assets, $liabilities, $assets-$liabilities ��� ��� �������� ���� ��������������� ����� ������ ����� �� ���������� ������� � ��� ������ (� ������� �� ����� � �������� � ������). �������� �������� �� ��, ��� � ������� ������������ ��������� � ��� ��������� ��������� � ����������� ����� �����. ������ ������������� � Perl ������ ���: ��� �� ������� ���������� ������ � ��������� ������� ��� ������ �������� �������� ����, ������ ����� ��������� ������������� �������� ��� ���-������ �������� � ���������� ������. ��� ����� �������� ������ ��������� ���������, ��������: format MONEY = Assets: @���<� Liabilities: @���� Net: @��<�� &cool($assets,10), scool($liab,9), Scool($assets-$liab,10) sub pretty ( my($n,$width) = @_; $width -� 2; # ����� ������������� ����� $n � sprintf("%.2f",$n); # sprintf ����������� � ����� �� ��������� ���� if ($n < 0) ( return sprintf ("[t$width.2f]", -$n); # ������������� ����� # ����������� � ���������� ������ ) else { return sprintf (" %$width.2f ", $n); # ������������� ����� ���������� ^ ��������� } } ## body of program: $assets = 32125.12; $liab = 45212.15; write (MONEY) ; �������������� ���� ��� ��� ����������� ����, ��� ����������� ��������, ������������� � ������ ��������. Perl ������ ����������� ��������� ������, �������� � ���� ��������_������ ����� ������. �������������� ������������� ��������� ������������ ��������, ������� ������������ ����� ��������� ����� ����������. ��� ������������� ������������ ����������� @*, ������� �������� � ��������� ������. ��� ������, ��������� ������ ���������� ��������, ������������� � ��� ����. � ������ ������ ��� ����� ���� ���������, ������� ���� � ���������� ��������, ���������� ��������� �����. ������������� �������� ����� ��������� ��� ��, ��� �������� �����: ������ ������ �������� ���������� �������� �������� �������� ����������. ��������, ����������� ���� �������� ��������� format STDOUT = Text Before. @* $long_string Text After. $long_string = "Fred\nBarney\nBetty\nWilma\n"; write; ��������� �������� ����� �������� ������: Text Before. Fred Barney Betty Wilma Text After. ����������� ���� ��������� ��� ������������� � ����������� ����. ���� ������������� ��������� ��������� ����� ��������� �����, ��������� �� ������ �������� ��������� �� �������� ����. ��� ����� ������������ ��������� ��������� �������, ������� �������� � ������������. �� ������� ���������� �� �� �����������. ��-������, ����������� ���� ������������ ����� ������ ������� @ � ��������� ������������� �� ������ � (��������, /'<�). ��������������� �������� ��� ������������ ���� (� ��������� ������ �������) ������ ���� ��������� ����������*, ���������� �����, � �� ����������, ������� ���������� ��������� ��������. ��� ����������� ���, ��� ��� ���������� ����� ������������� Perl �������� �������� ����������, � �������� ��������� �������� ����� ������. ����� Perl ��������� ������ �������������, �� ����� �������� ���� ���������� � "�����������" �� ���� ������� ���� (������������ �������� ����������� ������� "�����")**, ������� ���������� � ���� ����. ��� ����� ���������� "����������" �� ����������; ����� ���������� ���� �������� ���������� ������������ ����� ��, ��� �������� ����� �������� ����. ������ �������� ������ ���, �� ����� �������. * � ����� ��������� ��������� ��������� ������� ��� ����, ��������, $�[3] ��� $h{"fred"). ** ����������� ���� �������� ���������� $:.
���� ��� ������ ������� ����� ����������� ����� � ������� ��������� ����� �� �����; �� ������� � ���� ����� ������� ����, ������� � ��� ��������� (�� ����������� ����, ��� �� ��������� ������� ���������� �����, � �� ������ �������� ����� �� ������ ����). �������� ������������� ������������ ���� �����������, ����� � ����� ������� �������� ��������� ������ �� ���� ����������. ��������� �� ���� ������: format PEOPLE = Name: @<������ Comment: "����������^���^ $name, $comment $comment $comment $comment �������� ��������: ���������� $ comment ���������� ������ ����. ������ ������ (������ � ����� �����) ������� ��� � ������ ��������� ���� �������� ���� ����������. � �������� ���������� ���� ������ $ comment ���������� ���, ��� ��� ����� ��������. ������ ������ ����� ��������� �� �� �� ���������� ($comment) � ������� �������� �� ��� ��������� ��������� ����. ��� ����������� � ��� �������, � ��� ��������� �����. �� ���� ����, �� ������� �������������, ������� ����� ����������� �������� ������� �� ���������� $ comment, ������������� � ������� �������. ��� �����, ���� ������ ����� �������� ������ ������� �����? ��������� ����-��� ������ ������. ���, �������, ���������, ���� �� ��������� �������� � ��� �����, ����� � ������ �������� ���� ���������� ���������� �����. ���� �� �� ��������� �����, ������� ��������� ������ ����� �������� � �������������� ������� ������. ����� ������ ��� ��������, ����� ������������ ������� ����������. ������, ���������� ������ (~), ����������� (�� ���������), ���� ��� ������ ��� �������� ������ (�.�. ����� ��������� ������ ���������� �������). ���� ������ ������ ���������� ��� ������ � ����� ��������� � ����� ����� ������, � ������� ����� ���� �� ��������� ������. ��������� ��������� ������ ���: format PEOPLE = Name: @������< Comment: ^�������������x $name, $comment $comment $comment $comment
������, ���� ����������� �������� ����� ��� ������, ������ � ��������� ������ ����� ������������� ���������. ��� �����, ���� ����������� �������� ������ ������� �����? �� ����� �� ������� ����� �������� ����� ��������� ���� ����� ����� �������, �������, ��� �������� ����� ������. ���, ������, ������������ ���� � ���, ��� Perl �������� �������, ������� ���������� ��� ��� ������������� ���������: ����� ������, ������� �������� ��� ����� ������� ������, ������������� ����������� �� ��� ���, ���� ��������� �� ����� ��������� ������ �������. (��� ������ ������ �����������.) � ����� ���� ����������� ������� ����������� ����� ���: format PEOPLE = Name: @<������ Comment: ^�������������^ $name, $comment $comment ����� �������, ��� ����� ���������, ������� �� ����� �� ������� ����������� � ����, ��� ��� ��������. �������, ��� ������ �������� ����������� ���������� ������ �������, ����� � ��������� ������ ������ ������ ����� ������. ��� ������, ��� � ���� ������ �� ����� ��������� ���������� ����� (����� �������� ������� � �����), ����� ��� ������� �� ������ ������. ������ ������ �������� ������ ������ � �������� ����� ��������� �� ���������� ����������, �������� �� �������. ���������� ������ ������ ���������� �� ������� ��������, ������ ��� � ����������� ����� �� ��� ����� �� ���������� ��������. ������� � ������, ����������� �� ������, ������, ��� �������, ���������� ������� �������, ��� ���� ����� ��������� ������ ������ ��� ������� �������� �� ����� ��������. � ��������, ����� ���� �� ����� ��������� ������ Perl-��������� � ���������� ��� �����-���� �������� (����� ����, ���� ���������� �� Perl), ������� ��������� ����� �������� �� ��������. ����������, ������, ����� ������ ������. Perl ��������� ���������� ����������� ������ ������ ��������, � ������� �������� ����������� ����� ������������ ���������. Perl ������������ ��� �������� ������, ������������ ��� ������ ������� ��� ����������� ����������� �����. ���� ��������� ������ �� ��������� �� ���������� ����� ������� ��������, Perl ������ ������ �������� �� ����� ��������, �� ������� ������������� ������� ����� ������� ������ �������� � �����, ������� ��������� � �������������� ������� ��� ����������� ����������� �����. ��������� ����� �����, ���������� � ���������� ������ ������ ������� write, ������� �� ����������� �� ��������� ������� (���� ������ �� �� ��������� �����, ��� �� ���������� �� ����� ��������). ������ ������ �������� ������������ ��� ��, ��� � ������ ������ ������. ��� ������� ������ �������� ��� ����������� ����������� ����� �� ��������� ������� �� ����� ����� ����������� � �������� _��� (����������� ���������). ���������� $% � Perl ������������ ��� ���������� ������� ������� ������ �������� ��� ����������� ����������� �����, ��� ��������� ������������ ��� ���������� � ������� ������� ������ �������� ��� ��������� �������. ��������, ���������� ���������� ����������� ������� � ���������� �������� ��������� ������������� ������ �������� �������� �� �������� ������� � ������������ �������� �������� ������ ��������: format ADDRESSLABEL_TOP = My Addresses -- Page @< $% ����� �������� �� ��������� � 60 �����. ���� �������� ����� ��������, �������� �������� ����������� ����������, � ������� �� ������ �������. Perl �� ��������, ���� �� ���������� ��� ����� �� ����������� ����� ������� print �� ������� ����� � ���������, ���������� ���� ����� �����, ������� ����� ���������� �� ������� ��������, �����������. ��� ������� ���� ���������� ���� ���, ����� � ������� ����� � ��� �� �������� �������� �� ������ ��� ����������, ���� ����� ���������� print �������� ���������� "����� ����� �� ������� ��������". ����� ������ �� ������, ��� ����� �������� ��� ��������. ��������� � �������� ��������� �� ��������� �� ����� ������� �� ������������� � ��� ��� ���� ��������� �������� "�� ���������". � Perl ������� ������ ������ ���� "���������" ����������� ��� ���� �������. ������� ��������� �� ����. ��������� ����������� ����� � ������� ������� select() ����� �� �������� � ������� print � ����� 6, � ��������, ��� print � print stdout ���������, ������ ��� stdout � ��� ��������� �� ��������� ��� print. ��� �� ������ ���. ��������� ��������� �� ��������� ��� print (� ����� ��� write � ��� ���������� ��������, �� ������� �� ����� ���������) � ��� ��������� � ������� ������ ���������� �����. ������� ��������� � ������� ������ ���������� ����� � ��� stdout, ��������� ���� ���������� �������� ������ �� ����������� �����. �������� ��������� � ������� ������ ���������� ����� ����� � ������� ������� select. � �������� ��������� ��� ������� ��������� ��������� ���������� ����� (��� ��������� ����������, ������� �������� ��� ����������� �����). ��������� ���������� � ������� ������ ����������� ����� ������ �� ��� ����������� ��������, ������� �� ���� �������. ��������: print "hello world\n"; # ���������� print STDOUT "hello worldVn" select (LOGFILE); # ������� ����� ���������� ����� print "howdy, world\n"; # ���������� print LOGFILE "howdy, world\n" print "more for the log\n"; # ��� � LOGFILE select (STDOOT); # ����� ������� STDOUT print "back to stdout\n"; # ��� ���� �� ����������� ����� �������, ��� �������� select � "������"; ����� ������ ������ ����������� �� �������� "��������� � ������� ������" �� ���������� ��������� �������� select. ����� �������, ����� ������� ����������� stdout �� ��������� � �������� print � write ����� ������� ���: stdout � ��������� � ������� ������ ���������� �� ���������, ��� ������ ���������� �� ���������. � ������������� ����� ��������� ������������� ����� ���������� � ������� ������ ����������� �����. �������������, ����� ���������� ������� ����� ��������, ������ ������������ � ���������, ��� ��� ��������� ����������� ������ ������ ������� ����-�� "������", ������ ��� ������������, �����������, �������� ��������� � ������� ������ ���������� ����� � �� ������������ ���! ��� �� ������ ������ "������ �����������" ������������? ���� ��� "�����", ��� ������� ���������� � stdout, ��� ����� ������������ ��������� ���������� � ������� ����, �������� �� ����������� ����. � ���� ���������, ������� ������� ������������, ��� �������� ��������� ���������� ����� � ��� �����? �����������, ��������, ������������ �������� select, � ��� ������, ������� �������� ��� ����� ���������� �����������. ������� ������ ��������, ����� ������������ ������������ ���� ����������, ��������� ����� ���: $oldhandle = select LOGFILE; print "this goes to LOGPILEW; select ($oldhandle); # ������������ ���������� ���������� �������������, � ����������� ���� �������� ������� ����� � �������� ����������� ����� ��� print ����� ������� ������� logfile, �� ��������� ��������, ��� �� ������ ������, ������� ������ ��������� ���������� � ������� ������ ����������� �����. ��������� ����� ������� ��� ������� �� ��������� ��� ����������� ����������� ����� ��������� � ������ ����� �����������. ��� ���������� � ������� ������ ����������� ����� ���� ������� ����� ��������, �������� ����� ��� ������� ����������� ���������� $~. ����� ����� ��������� �������� ���� ���������� � ����������, ����� ������� ������ ��� ���������� � ������� ������ ����������� �����. ��������, ����� ������������ ������ addresslabel � ������������ stdout, ������� ������ ��������: $~ = "ADDRESSLABEL"; � ���, ���� ����� ���������� ��� ����������� report ������ summary? ��� ����� ���������� ������� ����� ���� ���������: $oldhanlde =� select REPORT; $~ � "SUMMARY"; select ($oldhandle); ����� � ��������� ��� �� ������� write (REPORT) ; �� ��� ����� ��������� ����� �� ���������� report, �� � ������� summary*. �������� �������� �� ��, ��� �� ��������� ���������� ���������� � ��������� ����������, � ����� ������������ ���. ���� ����� � ������� �������� ����� ����������������. � ���� �������� ��������� ��, ��������, ������ �� ���������� ������������ ������ ����� �� ��������, � �� ������������ ��, ��� stdout � ���������� �� ���������. ������� ������� ������ ��� ����������� ����������� �����, �� ������ ���������� � ����� ������ ����� ������ ��������. ��������� ����� ������� ������ �������� ����� ��� ��, ��� ����� ��������� ���������� $~ �� ����� �������� ��� ������� ��� ����������� ����������� �����, ��� ����� ��������� ���������� $ � �� ����� ������ ������ ������ ��������. ��� ���������� �������� ��� ������� ������ �������� ��� ���������� � ������� ������ ����������� ����� � �������� ��� ������ � ������, �.�. �� ������ ��������� �� �������� � ������ ������� ��� �������, � ����� �������� ���, �������� ���� ���������� ����� ��������. * ��������-��������������� ������ FileHandle, �������� � ������ ������������ ������������ Perl, ������������ ���������� ���� ������ ����� ������� ��������. ��������� ����� �������� ���� ��������� ������ ������ ��������, ����� �������� ����������� ������ ��������. �� ��������� ����� �������� ����� 60 �������, �.�. ���� ���������� ������ ������� write �� ��������� �� ����� 60-� ������, �� ����� ���������� ������� ������ ������������� ���������� ������ ������ ��������. ������ 60 ����� � �� ��, ��� �����. ���� �������� ����� ��������, ��������� ���������� $=. ������ ���������� �������� ������� ����� �������� ��� ���������� � ������� ������ ����������� �����. �����-����, ��� ������ ����������� stdout (���������� � ������� ������ ����������� ����� �� ���������) �� ������ ����� ������������ �������� select. ��� ��� ������� �������� ���������� ����� logfile ���, ����� �������� ��������� 30 �����: $old = select LOGFILE; # ������� LOGFILE � ��������� ������ ���������� $= � 30; select $old; ��������� ����� �������� �������� � ���� ������ ��� ��������� ������ ������� ������ ��������. ���� �� ���������� ����� ����� ����� ������� ������ � ���������� ����� � �����-�� �������, �� ��� ����� �������� ��� ����, ������ ��� ������ ������ �������� ���������� ��� ������ �� ������ ������� write. ��������� ��������� �� �������� ���� �� �������� ���� ����� � ���������� ����� � ������� ������� print, �� �������� �������� ����� ����� ������������, ������ ��� Perl �������� ������� ����� ������ ��� ������� write. ���� �� ������ ���� Perl �����, ��� �������� ��������� �������������� �����, ����� ��������� ���������� ������� ����� Perl, ������� �������� ���������� $-. ��� ���������� �������� ����� �����, ���������� �� ������� �������� ��� ���������� � ������� ������ ����������� �����. ������ ������� write ��������� ����� ���������� ����� �� ����� ���������� ���������� �����. ����� �������� ����� �������� ��������� ����, ���������� ������ ������ �������� � �� ���������� $= (�������� ����� ��������) ���������� �������� $-. ��������, ����� �������� Perl, ��� �� ������� � STDOUT �������������� ������, ����� ������� ���������: write; # ������� ������ STDOUT ��� STDOUT print "An extra line... oops!\n"; # ��� ���� � STDOUT $- --; # ���������������� $-, ����� ��������, ��� � STDOUT ����� ������ �� �� write write; # ���������, ���� �������������� ������ � ������ ��������� $- ��������������� � ���� ��� ������� ����������� �����. ��� ��������� �������������, ��� ������ ������ �������� ����� ������ ���������, ���������� ��� ������� ����������� ����� ��� ���������� ������ �������� write. ���������� 1. �������� ���������, ������� ��������� ���� /etc/passwd �� ����� � ������� �� ����� ��� ������������, ������������� (�����) ������������ � ��� �������� ��� � ��������������� ��������. ����������� ������� format � write. 2. �������� � ���������� ��������� ������ ������ ��������. (���� ��� ���� ������� ������������ ��������, ��, ��������, �������� ���������� ����� �������� ���-�� � 10 �����, ����� ����� ���� ������������ ��������� ����������� ������ ��������.) 3. �������� � ������ �������� ����� ��������, ����� ��� �� ������ ����������� page I, page 2 � �.�. |