Подтвердить что ты не робот

Синтаксис <DATA> в perl

Где я могу узнать больше о следующем синтаксисе в perl?

Связь между <DATA> и __DATA__ неясна.

while (my $date_string = <DATA>) {
  chomp($date_string);
  next if not length $date_string;
  print "$date_string ist Unixtime ",
        $lang_date->str2time($date_string),
        " und ",
    $lang_date->time2str( '%d.%m.%Y %T (%Z)',$lang_date->str2time($date_string) ),
        "\n";
}

__DATA__
1.3.1999
1 Marz 1999
1. Marz 1999
1/3/1999
4b9b3361

Ответ 1

Цитирование документа:

Ток __DATA__ сообщает компилятору perl, что Perl-код для компиляция завершена.

Все после токена __DATA__ доступный для чтения с помощью дескриптора файла FOOBAR::DATA, где FOOBARимя текущего пакета, когда токен __DATA__ достигнут.

Это работает так же, как __END__ делает в пакете 'main', но для другие данные модулей после __END__ не будут автоматически восстановлены, тогда как данные после __DATA__ есть.

Можно добавить к этому только то, что с помощью раздела __DATA__ очень удобно иллюстрировать некоторые понятия, связанные с чтением файлов, на Perl. это в основном файл, прикрепленный к коду, и содержимое этого файла легко доступно через <DATA>. Вот почему он довольно популярен здесь на SO. )

Ответ 2

Все после __DATA__ рассматривается как файл, который вы можете прочитать из дескриптора файла DATA. DATA открывается автоматически, и вам не нужно ничего делать, чтобы получить его таким образом.

Что непонятно? Кажется, что ваша программа использует его правильно.