Специальные литералы Perl

Перечисленные литералы являются лексемами, выражениями Perl, а не переменными, поэтому их нельзя вставлять в строки.

__LINE__

Литерал __LINE__ предоставляет номер текущей строки текста программы.

Пример использования:

print __LINE__."\n";

__FILE__

Литерал __FILE__ предоставляет имя текущего файла программы.

Пример использования:

print __FILE__."\n";

__PACKAGE__

Литерал предоставляет имя текущего пакета программы. Если директива package не использовалась, и текущая программа является пакетом верхнего уровня, __PACKAGE__ вернет значение «main».

Пример использования:

print __PACKAGE__."\n";

__END__

Данный литерал обозначает логический конец программы. Расположенная за ним информация не обрабатывается интерпретатором. Часто используется при добавлении POD-документации в файл программы.

__DATA__

Как и __END__, обозначает логический конец программы. Расположенная после него информация не обрабатывается интерпретатором. Но, в отличие от __END__, позволяет получить доступ к следующей за ним информации.

Литерал __DATA__ открывает файл с дескриптором DATA для чтения информации, находящейся в файле программы после него.

В сценарии ее можно получить, прочитав из виртуального файла с дескриптором PACKNAMES::DATA, где PACKNAMES является именем пакета, в котором используется этот литерал. При использовании в сценарии верхнего уровня, имя его пакета — main можно опустить. После чтения информации файл остается открытым, и при необходимости его следует явно закрыть функцией close().

Пример использования __DATA__:

package Pack;

use Exporter 'import';
@EXPORT_OK = qw(print_text);

sub print_text {
        print join("\n", @ISA)."\n";
}
1;
__DATA__

Просто текст

file.pl:

use Pack;

while ($line = ) {
	print $line;
}
exit;

Поделись ссылкой с друзьями!

В связи с большим количеством спама, все комментарии проходят предварительную модерацию. Извините, за предоставленные неудобства.

Комментариев нет

Комментариев нет.

RSS-лента комментариев к этой записи.

Оставить комментарий