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

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

__LINE__

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

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

__FILE__

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

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

__PACKAGE__

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

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

__END__

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

__DATA__

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

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

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

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

file.pl: