Ocenite etot tekst:


     V  Pel  realizovan  udobnyj metod sozdaniya formatirovannyh
otchetov.  S pomoshch'yu operatora format vy  opisyvaete  zagolovki,
razmery  polej,  ukazyvaete polozhenie dannyh na liste v udobnoj
tekstovoj forme. Zatem vypolnyaete komandu  write(fajl)  kotoraya
vyvodit otformatirovannye dannye v ukazannyj fajl.

Operator format imeet sleduyushchij sintaksis:

	format imya =
	FORMLIST
	.

Obratite vnimanie na to chto opisanie formata idet posle stroki format i zakanchivaetsya
simvolom '.' v nachale stroki.

Zdes' 'imya' - eto imya formata, takoe zhe kak i imya ukazatelya vyhodnogo fajla.
Esli 'imya' otsutsvuet to znachenie po umolchaniyu - STDOUT.

FORMLIST - eto stroki formata. Oni byvayut treh tipov:

	1. Kommentarij. Stroka nachinaetsya simvolom '#'.

	2. Opisatel' polej dannyh (picture).

	3. Stroka argumentov ispol'zuemyh opisatelem.

Opisatel' - eto stroka kotoraya vyvoditsya v vide "kak est'" za isklyucheniem
special'no oboznachennyh formatov polej dannyh. Kazhdoe pole nachinaetsya
libo simvolom '@' libo '^'.
V opisatel'noj stroke ukazyvaetsya tol'ko polozhenie i vid
vyvodimyh dannyh, no ne imena polej i peremennyh.
Dlya etogo prednaznachena sleduyushchaya stroka argumentov kotoraya sleduet vsegda
posle opisatelya i soderzhit imena peremennyh ili celye vyrazheniya
v poryadke ukazannom opisatelem.

Razmer i vid polya v opisatele oboznachaetsya sleduyushchimi simvolami:

	">>>>"	- vyrovnit' znachenie po pravomu krayu.

	"<<<<"	- -//- po levomu.

	"||||"	- -//- po centru.

	"####.###"	- format chisla s tochkoj.

	"@*"	- mnogostrochnaya stroka. Dannye vyvodyatsya v kolonku.

Razmer polya raven kolichestvu ukazannyh simvolov.

Simvol '^' v nachale polya imeet special'noe znachenie.

Tak:
	"^####"	- pusto esli peremennaya ne opredelena.

dlya strochnogo skalyara:

	"^<<<<<" - Vyvoditsya skol'ko vozmozhno simvolov, a znachenie
peremennoj menyaetsya na ostatok vyvod kotorogo mozhno prodolzhit' na
sleduyushchih strokah kotorye mogut imet' svoi polya.

Primer:

#!/usr/local/bin/perl
#
#	Programma pechati priglasitel'nogo bileta
#
$komu = "CHapaevu Vasiliyu Ivanovichu";

$ot_kogo = "Kompaniya MMM";

$adres = "Moskva, ul. Petrovka, d 38";

$tekst = "Uvazhaemyj Vasilij Ivanovich! Kompaniya MMM imeet chest' priglasit'
Vas i Vashih blizkih na prezentaciyu nashih novyh hromovyh sapog, sdelannyh
na urovne mirovyh standartov kachestva i dizajna.";

format STDOUT =

	P R I G L A S I T E L X N Y J      B I L E T
----------------------------------------------------------------------
Komu: @<<<<<<<<<<<<<<<<<<<<<<<<<<  | ^|||||||||||||||||||||||||||||||
      $komu,				$tekst
                                   | ^|||||||||||||||||||||||||||||||
      					$tekst
Ot kogo: @<<<<<<<<<<<<<<<<<<<<<<<  | ^|||||||||||||||||||||||||||||||
      $ot_kogo,				$tekst
                                   | ^|||||||||||||||||||||||||||||||
      					$tekst
Adres:@<<<<<<<<<<<<<<<<<<<<<<<<<<  | ^|||||||||||||||||||||||||||||||
      $adres,				$tekst
                                   | ^|||||||||||||||||||||||||||||||
      					$tekst
                                   | ^|||||||||||||||||||||||||||||||
      					$tekst
                                   | ^|||||||||||||||||||||||||||||||
      					$tekst
----------------------------------------------------------------------
Otpechatano v tipografii ITU 38
.

write();	# Vyvod dannyh.
exit 0;		# Konec programmy


Rezul'tat:


	P R I G L A S I T E L X N Y J      B I L E T
----------------------------------------------------------------------
Komu: CHapaevu Vasiliyu Ivanovichu    |   Uvazhaemyj Vasilij Ivanovich!
                                   |     Kompaniya MMM imeet chest'
Ot kogo: Kompaniya MMM              |  priglasit' Vas i Vashih blizkih
                                   |    na prezentaciyu nashih novyh
Adres:Moskva, ul. Petrovka, d 38   |   hromovyh sapog, sdelannyh na
                                   |    urovne mirovyh standartov
                                   |       kachestva i dizajna.
                                   |
----------------------------------------------------------------------
Otpechatano v tipografii ITU 38

Special'nye peremennye:

	$~	- postrochnyj format soderzhimogo.

	$^	- format zagolovka lista.

	$%	- nomer lista.

	$=	- strok v liste.

Esli vy hotite ispol'zovat' odni i te zhe formaty dlya raznyh fajlov
to samyj prostoj put':

	use FileHandle;	# Ukazat' v nachale programmy

	format_name fajl imya_formata; # Format soderzhimogo lista.

	format_top_name fajl imya_formata; # Format zagolovka lista.

	write(fajl);	# vyvod dannyh.


Zdes' 'fajl' imeetsya vvidu ukazatel' fajla poluchennyj komandoj open();

Esli vam nuzhno v tele lista vyvodit' raznogo roda formaty (naprimer
zagolovki grupp ili otbivku lista) to primenyajte format_name.

Last-modified: Thu, 24 Apr 1997 17:46:23 GMT
Ocenite etot tekst: