В этой главе вы познакомились с несколькими способами форматирования выходных данных скрипта с помощью функции print. Аналогично языку С, Perl также поддерживает функции printf и sprintf. В дополнение Perl также поддерживает генерацию отчетов в форме столбцов, используя шаблоны форм.
Использование функции PRINT
В этой главе скрипты широко использовали функцию print. Кроме того, Perl обеспечивает специальные переменные, которые влияют на работу функции print. В таблице кратко характеризуютсяэти специальные переменные.
Переменная | Назначение | $, | Разделитель для элементов печати | $" | Разделитель элементов списка при интерполяции строки | $\ | Разделитель для выходных записей | $# | Форматирование числового выхода (по умолчанию "%.20g") |
Для использования этих специальных переменных достаточно просто присвоить им значения, которые вы хотите. Например, в следующем фрагменте программы используется переменная $ для того, чтобы задать сепаратор между элементами печати:
$, = "*"; @list = 1..10; print @list; # Выведет 1*2*3*4*5*6*7*8*9*10
Оказывается, что переменная $ на самом деле воздействует на все строки, а не только на те, которые выводятся на печать. Однако чаще всего вы будете использовать ее для того, чтобы изменить значение, выводимое функцией print.
Форматированный вывод данных функцией PRINTF
Perl имеет функции printf и sprintf, которые очень похожи на соответствующие функции библиотеки времени выполнения языка С. Они имеют следующий формат: $result = printf([FileHandle] Format, List); $result = sprintf(Format, List);
По умолчанию функция printf посылает форматированный выход на стандартный выход STDIO, а функция sprintf возвращает форматированную строку. В обоих случаях формат строк почти аналогичен функциям языка С, исключая только отсутствие поддержки функциями языка Perl спецификатора длины (*). Следующий фрагмент программы иллюстрирует использование функций printf и sprintf.
$precision = 2; $pi = 3.1415; printf("%.2f\n", $pi); # выведет 3.14 printf("%.${precision}f", $pi); # выведет 3.14
8 8 8
| |