����� 6� ���� �����: ������� �������� �����-���������� �� STDIN ������ �� ������������ ����� (����� Perl-���������� ����� stdin) � ��������� ������. �� ��� ������ ��� � �������� <stdin>. �������� ��� �������� � ��������� ���������, �� �������� ��������� ������ �����* (� ���� ����� ������ ��� � �� �������� undef): $� = <STDIN>; # ��������� ��������� ������ ���������� � ��������� ��������� ���� ��� ���������� ������ � ���� ������, ������ ������� �������� ������������ ����� ���� ������, ���������� ����������� ������ ����� ������. ��������: @� = <STDIN>; ��� �������, ��� ���������� ��������� ���������� ������ ������ ������ ���� ����� �� ����� � ����������� ����������� ��� ������ �� ��� �����-���� ��������. ��� ������ ������������ ����� ������� ���� ������: while (defined($line_ = <STDIN>)) ( # ����� ���������� $line ) ���� ���� ������������� ������, � ���������� ���������� �������� <stdin> ���������� ������������ ��������, � ���������� ����� ������������. ���� ����� ��� ������ � <stdin> ������ ���, ��� �������� ���������� �������� undef � ��������� ����. * �� ������� ����� ������ ��� ����, ��� �� ��������� ���������� $/. �������� ������ ���������� �������� �� <stdin> � $_ � ������������� ����� �������� � �������� ���������� ����� (��� � ���������� �������) ����������� �������� �����, ������� � Perl ������������� ��� ����� ������ ����������� ����������� ������. ���� � ��������� ��� �������� ����� ������ ������ �������� ������ �� ������������ ����� (����� ����� <...>), �� Perl ������������� �������� ������, ������� �����������, � ���������� $_. while (<STDIN>) { # ��� "while(defined($_ = <STDIN>_) " chomp; # ��� "chomp($_)" # ����� ����������� ������ �������� � $_ ) ��������� ���������� $_ �� ��������� ������������ �� ������ ���������, ����� �������� �� ������ ����������� ��������� ����� ����������� ������. ���� �� �������� "����" ������ ������ ������ ������� ���������� ������� � ������������� �������� "����" (�). �� �������� ������ ��� ������ �� <stdin> � ���, ��� ���������� � ��������� ��������� ���� ������ (��� undef, ���� ��� ������ ���������), � � ��������� ��������� � ��� ���������� ������. � �������, ������, �� �������� <stdin> �������� "����" �������� ������ �� ����� ��� ������, �������� � ��������� ������ ��� ������ Perl-���������. �����, ��������, � ��� ���� ��������� kitty: #!/usr/bin/peri while (<>) ( print $_; i � �� ��������� �� ���: kitty filel file2 file3 �������� "����" ������ ������� ��� ������ ������� �����, ����� ��� ������ ������� �, �������, ��� ������ �������� �����. �������� undef ������������ ������ �����, ����� ����� ��������� ��� ������ ���� ������. ��� ������, ��������� kitty ������� ������ �� UNIX-������� cat � ���, ��� �������� ��� ������ ��������� ������ �� ������� �� ����������� �����. ����, ��� � cat, ����� ������ � ��������� ������ �� �������, �������� "����" ������������� ������ ������ �� ������������ �����. � ���� ������ ���������� �������� "����" �� ������������� ��������� ��������� ������ ���������������, � �������� � �������� @argv. ��� ����������� ������, ���������������� ��������������� Perl � ������������ � ����������� ��������� ������. ������ �������� ��������� � ��������� ������� ����� �������. ���������������� ���� ������ ����� ��� ������*. ����� ���� ���������� ���� ������ � ����� ��������� � ��������� �������� "����" �������� � ���� ����� �������, � �� � ����������� ��������� ������, ��������: @ARGV = ("aaa","bbb","ccc"); while (�) { # ���������� ����� aaa, bbb � ��� print "this line is: $_"; t � ����� 10 �� ������, ��� ����� ��������� � ��������� ������������ ����� � ������������ �����. �������, �� ��� ������������ ���� ����� � ��������� ����� ���������� �� ������ ���� ����������. ����� � STDOUT ��� ������� �����-���� ������ �� ����������� ����� � Perl ������ ������� print � printf. ������� ���������, ��� ��� ��������. ������� print � ������� ����� �� ��� ������������ �������� print, ��������� ����� �� ����������� �����. ������� ����������� �� ���� ������� ��������� ���������. ������� print �������� ������ ����� � �������� �� �� ������� �� ����������� �����, �� �������� ������� ������������� ��� �������� ��������. ��������, �� ������ ��������, ��� print � ��� ������ �������, ������� ��������� ������ ���������� � ���������� ������������ �������� ������� ����� ������ �������. ������� �������, $� = print("hello ", "world", "\n"); � ��� ��� ���� ������� ������ ����������� hello, world. ������������ �������� ������� print � "������" ��� "����", ��������� �������������� �� �������� � ��������� ����������. ��� ����� ������ ����������� �������, ���� ������ �� ��������� ������ �����-������, ������� � ��������������� ������ $� ������ ������ ����� 1. ������ � print ����� ������� ������� ������, ��� �������� � ������ �������, �������� ����� ������ �������, ������� �� ������ �������, ��� ���������� � ����� ������: print (2+3),"hello"; # �������! ������� 5, ��������� "hello" print ((2+3),"hello"); # �����, ������� Shello print 2+3,"hello"; # ���� �����, ������� Shello * ����������� ����������� Perl �������� ������ getopt-��������� ��������������� ������� ���������� ��������� ������ Perl-���������. ���������� �� ���� ���������� ���� � ����� Programming Perl � �� man-�������� perlmodlib(l). ������� printf � ��������������� ����� ��������, �� �������� � ������� ������� �������������� ��������� ������, ��� ��� ��������� ������� print. ��������, �� �������� � ���������������� ������ �-������� printf. ������ ����������: � Perl ���� ����� ��������� �������� � ����� �� ������. ������� printf ��������� ������ ���������� (����������� � �������������� ������� ������, ��� � � ������ ������������� ������� print). ������ �������� � ������ ���������� ��������, �����������, ��� �������� ��������� ���������. ���� �� �� ������� �� ����������� �������� printf, ���������� � man-�������� printf(3) ��� perlfunc{\), ���� ��� � ��� ����, ��� � ����� 3 ����� Programming Perl. ������: printf "%15s %5d %10.2f\n", $s, $n, $r; ��� ������� ������� $s � 15-���������� ����, ����� ������, ����� $� ��� ���������� ����� � 5-���������� ����, ����� ��� ���� ������, ����� $� ��� �������� � ��������� ������� � ����� ����������� ������� � 10-���������� ���� �, �������, ������ ����� ������. ���������� ������ � ����������� ���� � ���������� �. 1. �������� ���������, ������� �������� ���������� ������� cat, �� �������� �� �������� ������� ���������� ���� ����� ���� ������, ��������� � ��������� ������, ��� ���� �����, ����������� �� ������������ �����, ���� ����� �� �������. (� ��������� �������� ���� �������� �������; ��� ���������� tac.) 2. �������� ��������� �� ����������� ���������� ����� �������, ����� � ������ �����, ��������� � ��������� ������, ������� ����� ��������� �� �������� �������������. (��-��, �� ������ ������� ���, ��������� ��� ����������, ������� �� ��� ��� �������, ���� �� ����������� � ������ ������������ ����� Perl, ������������ � ����� 1.) 3. �������� ���������, ������� ������ ������ ��������� �������� (������ �� ������� �������� ��������� ������) � ������� ��� ������ � 20-���������� ������� � ������������� ������. ��������, ��� ����� ����� hello � good-bye ��� ��������� � 20-���������� ������� � ������������� ������. (���������, ����� ���� ��������� ������������� ������������ 20-���������� �������, � �� 21-����������. ��� ������ ���������������� ������.) 4. �������� ��������� �� ����������� ���������� ����� �������, ����� ������������ ��� �������� ������ �������. ��������, ��� ����� ����� 20, hello � good-bye ��������� �� �� ����������, ��� � � ���������� ����������, � ���� 30, hello, good-bye ��������� ���������� hello � good-bye � 30-���������� �������. |