ых символов. Символ '^' в начале поля имеет специальное значение. Так: "^####" - пусто если переменная не определена. для строчного скаляра: "^<<<<<" - Выводится сколько возможно символов, а значение переменной меняется на остаток вывод которого можно продолжить на следующих строках которые могут иметь свои поля. Пример: #!/usr/local/bin/perl # # Программа печати пригласительного билета # $кому = "Чапаеву Василию Ивановичу"; $от_кого = "Компания МММ"; $адрес = "Москва, ул. Петровка, д 38"; $текст = "Уважаемый Василий Иванович! Компания МММ имеет честь пригласить Вас и Ваших близких на презентацию наших новых хромовых сапог, сделанных на уровне мировых стандартов качества и дизайна."; format STDOUT = П Р И Г Л А С И Т Е Л Ь Н Ы Й Б И Л Е Т ---------------------------------------------------------------------- Кому: @<<<<<<<<<<<<<<<<<<<<<<<<<< | ^||||||||||||||||||||||||||||||| $кому, $текст | ^||||||||||||||||||||||||||||||| $текст От кого: @<<<<<<<<<<<<<<<<<<<<<<< | ^||||||||||||||||||||||||||||||| $от_кого, $текст | ^||||||||||||||||||||||||||||||| $текст Адрес:@<<<<<<<<<<<<<<<<<<<<<<<<<< | ^||||||||||||||||||||||||||||||| $адрес, $текст | ^||||||||||||||||||||||||||||||| $текст | ^||||||||||||||||||||||||||||||| $текст | ^||||||||||||||||||||||||||||||| $текст ---------------------------------------------------------------------- Отпечатано в типографии ИТУ 38 . write(); # Вывод данных. exit 0; # Конец программы Результат: П Р И Г Л А С И Т Е Л Ь Н Ы Й Б И Л Е Т ---------------------------------------------------------------------- Кому: Чапаеву Василию Ивановичу | Уважаемый Василий Иванович! | Компания МММ имеет честь От кого: Компания МММ | пригласить Вас и Ваших близких | на презентацию наших новых Адрес:Москва, ул. Петровка, д 38 | хромовых сапог, сделанных на | уровне мировых стандартов | качества и дизайна. | ---------------------------------------------------------------------- Отпечатано в типографии ИТУ 38 Специальные переменные: $~ - построчный формат содержимого. $^ - формат заголовка листа. $% - номер листа. $= - строк в листе. Если вы хотите использовать одни и те же форматы для разных файлов то самый простой путь: use FileHandle; # Указать в начале программы format_name файл имя_формата; # Формат содержимого листа. format_top_name файл имя_формата; # Формат заголовка листа. write(файл); # вывод данных. Здесь 'файл' имеется ввиду указатель файла полученный командой open(); Если вам нужно в теле листа выводить разного рода форматы (например заголовки групп или отбивку листа) то применяйте format_name.  * Отладка Пел программ *  В Пел реализован превосходный механизм отладки программ. Вам достаточно запустить программу с ключом '-d' и вы начнете работать с интерактивным отладчиком. Вам становятся доступны все переменные и массивы, вы можете вводить выражения и операторы, трассировать, исследовать работу программы в по-шаговом режиме и многое другое. Ниже перечисленны команды отладчика которые вы можете вводить на его подсказку. Команды отладчика. h - Получить справку по командам. T - Просмотреть стек программы s - Выполнить одну команду и остановиться. n - Выполнить подпрограмму и остановиться. r - Выполнить текущую подпрограмму и остановиться. c - Продолжить выполнение до сдедующей точки остановки. c номер - Продолжить выполнение до строки с данным номером. <CR> - Повторить последнию команду n или s. l min+incr - Вывести incr+1 строк программы начиная со строки min. l min-max - Вывести строки начиная с min до max. l номер - Вывести строку с указанным номером. l - Вывести следующий экран строк. - - Вывести предыдущий экран строк. w строк - Вывести экран строк. Текущая в середине. l подпрограмма - Вывести строки указанной подпрограммы. /шаблон/ - Найти строку в тексте программы. ?шаблон? - Обратный поиск строки в тексте программы. L - Вывести строки с точками останова и активами. S - Вывести имена всех подпрограмм. t - Включить или выключить трассировку. b строка [ условие] - Установить точку остановки. b подпрограмма [ условие ] - Установить точку остановки в начале указанной подпрограммы и если указано при данном условии. d - Убрать точку остановки. D - Убрать все точки остановки. a строка команда - Установить актив (команду которая выполнится вместе с указанной строкой. "команда" - обычныая команда Пел. A - Стереть все активы. < команда - Выполнять команду перед каждой остановкой. > команда - Выполнить команду после остановки отладчика. V модуль [имена] - Вывести значение всех или указанных имен в модуле. Внимание! Символ '$' не вводится. X [имена] - То же что и V , но только для текущего модуля. ! номер - Выполнить одну строку программы. ! -номер - Выполнить одну команду с номером предшествующим текущей строке. H - n - Вывести n последних выполненных команд. q или ^D - Выход из программы. команда - Выполнить команду Пел. p выражение - Вывести значение выражения. Конструктор BEGIN не отслеживается отладчиком, но можно в теле конструктора указать: $DB::single =1; и отладчик остановится. Данная команда не вызовет ошибку при работе без отладчика.  * Список литературы *  При написании книги автор в основном пользовался описанием Пел "Perl Programmers Reference Guide". Наиболее известная зарубежная литература: Programming Perl (the Camel Book) Learning Perl (Llama Book)  * Интернет - ссылки *  Очень полезные USENET конференции: comp.lang.perl.announce - Различные объявления и сообщения. comp.lang.perl.misc - Место для вопросов и обсуждений. comp.lang.perl.modules - Модули Пел. comp.lang.perl.tk - Пел и Tcl/tk. WWW сервера: http://www.perl.org ║ http:///www.perl.org - Специальный Пел-сервер http://www.ora.com ║ http://www.ora.com - Книги по Юникс издательства O`Reily ftp://ftp.perl.com ║ ftp://ftp.perl.com - Специализированный FTP сервер http://franz.ww.tu-berlin.de/modulelist ║ http://franz.ww.tu-berlin.de/modulelist/