В духе "Преамбулы Perl", где сценарий работает правильно, выполняемый ли интерпретатором сценария оболочки или интерпретатором Perl...
У меня есть сценарий Perl, который содержит встроенный документ HTML (как "heredoc"), т.е.:
#!/usr/bin/perl
... some Perl code ...
my $html = <<'END' ;
... more HTML ...
END
... Perl code that processes $html ...
Я хотел бы смочь работать над HTML, который это в сценарии Perl, и проверьте его использование веб-браузера и только запустите скрипт, когда HTML является способом, которым я хочу. Для выполнения этого мне нужен файл, чтобы быть открываемым и как файл HTML и как сценарий Perl.
Я попробовал различные приемы комментариями Perl и комментариями HTML, но не могу получить его довольно прекрасный. Файлом в целом не должен быть "строго легальный" HTML (хотя встроенный документ должен быть)... просто визуализуемый в браузере без (или минимальный) видимый мусор Perl.
Править: Решенный! См. мой собственный ответ
Прочтите и поплачьте, мистер @Axeman ... Теперь я представляю вам пустой набор :
</dev/fd/0 eval 'exec perl -x -S $0 ${1+"$@"}' #> <!--
#!perl
... some Perl code ...
my $html = << '<!-- END' ; # -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
... more HTML ...
</HTML>
<!-- END
... Perl code that processes $html ...
# -->
Звучит как путь к боли. Подумайте о том, чтобы сохранить HTML-код в отдельном файле и прочитать его в сценарии.
Возможно, это задание для Markup :: Perl
:
# don't write this...
print "Content-type: text/html;\n\n";
print "<html>\n<body>\n";
print "<p>\nYour \"lucky number\" is\n";
print "<i>", int rand 10, "</i>\n</p>\n";
print "</body>\n</html>\n";
# write this instead...
use Markup::Perl;
<html><body><p>
Your "lucky number" is
<i><perl> print int rand 10 </perl></i>
</p></body></html>
Вы также можете отбросить строку use Markup :: Perl
и запустить свой сценарий как
perl -MMarkup::Perl my_page_with_embedded_perl.html
Затем страница должна отображаться довольно хорошо.
Мне кажется, вам нужно решение для создания шаблонов, например Template :: Toolkit или HTML :: Template ]. Встраивание HTML в ваш код или встраивание кода в ваш HTML - это рецепт боли.