Код:
my $msg = <<EOF;
mapview.pl [OPTIONS]
Options:
--fields=path Path to the folder containing .fld files.
--maps=path Path to the folder containing map images.
--logs=path Path to the folder containing log files.
EOF
Это один из вариантов объявления строковой переменной $msg, так называемый heredoc. Все, что находится после
и до строки
является многострочной heredoc-строкой. Перл в таком случае не будет считать EOF признаком конца файла, как ты видимо, подумал. Это просто признак конца heredoc-строки. Вместо EOF может стоять любая последовательность символов.
Если непонятно объяснил, то вот тебе вариант строки в более привычной форме
Код:
my $msg = "mapview.pl [OPTIONS]\n"
. "\n"
. "Options:\n"
. "--fields=path Path to the folder containing .fld files.\n"
. "--maps=path Path to the folder containing map images.\n"
. "--logs=path Path to the folder containing log files.\n";
или
Код:
my $msg = "mapview.pl [OPTIONS]\n\nOptions:\n--fields=path Path to the folder containing .fld files.\n--maps=path Path to the folder containing map images.\n--logs=path Path to the folder containing log files.\n";
Согласись, что heredoc-вариант более предпочтителен с точки зрения читабельности кода.
Если все равно непонятно, учи перл, юзай гугл.
ЗЫ. Такой вариант объявления строк есть и в PHP