让我的文件可读性Perl或者HTML

问题描述 投票:5回答:5

在“Perl Preamble”,其中一个脚本正常工作是否由一个shell脚本解释器或Perl解释器执行的精神...

我有一个Perl脚本,其中包含一个嵌入式的HTML文件(作为“定界符”),即:

#!/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 ...

我希望能够在这Perl脚本里面的HTML工作,并检查它使用Web浏览器,只有当HTML是我想要的方式运行的脚本。要做到这一点,我需要的文件都为HTML文件和Perl脚本可打开的。

我曾尝试用Perl的意见和HTML注释各种招数,但不能让它相当完美。该文件作为一个整体并不一定是“严格的法律” HTML(虽然嵌入文档应该是)......只是在浏览器中显示的没有(或最少)的Perl垃圾可见。

编辑:解决了!见我自己的答案

html perl comments
5个回答
6
投票

读它哭泣@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 ...

# -->

5
投票

这听起来像疼痛的路径。考虑保存HTML在一个单独的文件和脚本内阅读。


5
投票

也许这是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

然后页面应该呈现相当不错。


3
投票

像你想要一个模板解决方案,如Template::ToolkitHTML::Template听起来给我。在你的代码中嵌入HTML或在您的HTML中嵌入代码是痛苦的良方。


0
投票

你有没有考虑把Perl的HTML里面?

ASP4呢?

这是一个更容易这样 - 相信我;-)

© www.soinside.com 2019 - 2024. All rights reserved.