Joe*_*Fan 5 html perl comments
本着" Perl Preamble " 的精神,无论是由shell脚本解释器还是Perl解释器执行,脚本都能正常工作......
我有一个Perl脚本,其中包含一个嵌入的HTML文档(作为"heredoc"),即:
#!/usr/bin/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 ...
Run Code Online (Sandbox Code Playgroud)
我希望能够处理Perl脚本中的HTML并使用Web浏览器检查它,并且只在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 ...
# -->
Run Code Online (Sandbox Code Playgroud)
也许这是一份工作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>
Run Code Online (Sandbox Code Playgroud)
您也可以删除该use Markup::Perl行并运行您的脚本
perl -MMarkup::Perl my_page_with_embedded_perl.html
Run Code Online (Sandbox Code Playgroud)
然后页面应该渲染得很好.