使我的文件以Perl或HTML格式可读

使我的文件以Perl或HTML格式可读,html,perl,comments,Html,Perl,Comments,本着“”的精神,无论是由shell脚本解释器还是Perl解释器执行,脚本都能正常工作 我有一个Perl脚本,其中包含一个嵌入式HTML文档(作为“herdoc”),即: #/usr/bin/perl ... 一些Perl代码。。。 我的$html=这听起来像是一条通往痛苦的道路。考虑将HTML存储在一个单独的文件中,并在脚本中读取它。 是否考虑过Perl html的内部< /强> >? 你喜欢什么 这样做很容易,相信我;-) 也许这是一份适合以下人员的工作: 然后页面应该呈现得很好。听起来您需

本着“”的精神,无论是由shell脚本解释器还是Perl解释器执行,脚本都能正常工作

我有一个Perl脚本,其中包含一个嵌入式HTML文档(作为“herdoc”),即:

#/usr/bin/perl
... 一些Perl代码。。。

我的$html=这听起来像是一条通往痛苦的道路。考虑将HTML存储在一个单独的文件中,并在脚本中读取它。

是否考虑过Perl <强> html的内部< /强> >? 你喜欢什么

这样做很容易,相信我;-)

也许这是一份适合以下人员的工作:


然后页面应该呈现得很好。

听起来您需要一个模板解决方案,例如或。在代码中嵌入HTML或在HTML中嵌入代码都会带来痛苦。

阅读并哭泣@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。。。

我认为您的解决方案集是空集。如果要通过shbang将perl与文件关联,那么需要第一行。SGML注释不能出现在这一行之前,因此您将显示shbang——大多数浏览器将其作为自己的文档——即使它生成非标准HTML。只需添加一些Javascript即可从DOM中删除shbang@Axeman,请参见下面的空集;)显然,模板::优化是最好的方法;)有趣的。。。不令人惊叹的!巧妙的把戏。尽管我仍然反对。你真的应该在不同的地方有不同的东西。我赞扬你的聪明。+1为可怕的黑客行为。但是,对于生产代码或任何其他维护性甚至是一个小问题的情况,我仍然坚持使用模板(正如我昨天提交的答案中所建议的那样)从长远来看会给您带来更少的痛苦。
  # 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>
perl -MMarkup::Perl my_page_with_embedded_perl.html
</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 ...

# -->