Ввод-вывод.
Ввод со стандартного ввода (через Perl-дескриптор файла STDIN)
$a = <STDIN> ; #прочитать следующую строку
В списочном контексте - все оставшиеся строки в виде списка, каждый
элемент которого одна строка с \n
@a = <STDIN> ;
Чтение строк по одной:
while(defined($line_ = <STDIN>)) {
# обработка строк
}
Операция чтения скалярного значения из <STDIN> в $_
и использование этого значения в качестве переменной цикла:
while(<STDIN>) { # как "while(defined($_ = <STDIN>))"
chomp; # как "chomp($_)"
# другие опрации с $_
}
Операция похожа на <STDIN>, однако, она читает данные
из файлов, заданных в командной строке при вызове программы.
Программа test:
#!/usr/local/bin/perl -w
while (<>) {
print $_;
}
Вызов: test file1 file2 file3
"ромб" работает с массивом @ARGV:
@ARGV = qw(aa bb cc);
while (<>) {
print "this line is: $_";
}
Используются стандартные функции print и printf.
print - обычный вывод.
print - обычная функция, которая принимает список аргументов,
а возвращает значение истина или ложь.
$a = print("hello", " world", "\n");
Иногда нужно вводить скобки:
print (2+3), "hello!"; # неверно, 5
print ((2+3), "hello!"); # верно, 5hello
print 2+3, "hello!"; # верно, 5hello
printf - форматированный вывод.
Пример:
printf "%15s %5d %10.2f\n", $s, $n, $r;
|