Вывод функцией say

Perl 5.10 позаимствовал встроенную функцию say из текущей разработки Perl 6 (которая, возможно, взяла за образец функцию println из Pascal). Функция say делает то же, что print, но завершает вывод символом новой строки. Все следующие команды выводят одинаковые строки:

use 5.010;
print "Hello!\n";
print "Hello!", "\n";
say "Hello!";

Чтобы вывести значение переменной с символом новой строки, не нужно создавать лишнюю троку или выводить список вызовом print – просто используйте say. Это особенно удобно в распространенной ситуации, когда все выводимые данные должны завершаться переводом строки:

use 5.010;
my $name = 'Fred';
print "$name\n";
print $name, "\n";
say $name;

Чтобы интерполировать массив, вам все равно придется заключить его имя в кавычки. Только в этом случае выводимые элементы будут разделяться пробелами:

use 5.010;
my @array = qw( a b c d );
say @array; # "abcd\n"
say "@array"; # "a b c d\n";

По аналогии с print при вызове say можно задать файловый дескриптор:

use 5.010;
say BEDROCK "Hello!";

Так как функция относится к числу нововведений Perl 5.10, мы используем ее только в том случае, если в программе задействованы другие возможности Perl 5.10. Старая верная команда print работает ничуть не хуже, но мы подозреваем, что некоторые программисты Perl с радостью избавятся от ввода четырех лишних символов (два в имени и \n).

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Аргументы вызова
Ввод данных оператором <>
Закрытие файлового дескриптора
Запись данных в стандартный вывод
Изменение файлового дескриптора вывода по умолчанию

Вернуться в раздел: Perl / 4. Ввод и вывод