我想编写一个页眉和页脚perl脚本,它将返回我个人网页的页眉和页脚。我假设我会在我希望它出现的html文件部分中对该文件进行某种包含。这是我应该采取的方式,如果是这样,我该怎么做?如果有人有更好的方法来做任何其他建议,我会非常感兴趣。感谢。
答案 0 :(得分:3)
看看Template Toolkit。它允许您插入在返回页面之前评估的服务器端代码,因此您可以通过这种方式轻松地向页面添加页眉/页脚代码。该工具包易于使用,并且可以在Perl中实现其他功能。
答案 1 :(得分:3)
如果您的服务器支持,请查看server side includes。它们不一定要用Perl编写。
如果没有,并且您的页眉和页脚很简单,请考虑使用Javascript编写它们。在您的HTML代码中包含一个Javascript脚本很容易,这些脚本将进行大量document.write
次调用,您将完成这些操作。
如果没有,并且你的页眉和页脚不简单,如果你不了解Javascript,如果你可能是受虐狂,仍然可以考虑使用Javascript。
可能有一些其他新技术可以实现这一目标,这里的年轻鞭挞者可以告诉你,但对我来说服务器端包含和Javascript没有破坏。
答案 2 :(得分:0)
子类CGI.pm并添加自定义方法。例如:
package MyCGI;
use warnings;
use strict;
use base qw( CGI );
sub page_header {
my $self = shift;
return $self->div( { 'id' => 'header' },
$self->h1('Welcome to my home page') );
}
sub page_footer {
my $self = shift;
return $self->div( { 'id' => 'footer' },
$self->tt('Copyright © 2010. All rights reserved.') );
}
sub content {
my ( $self, $paragraph ) = @_;
return $self->div( { 'id' => 'content' }, $self->p($paragraph) );
}
1;
#!/usr/bin/env perl
use warnings;
use strict;
use MyCGI;
my $page = MyCGI->new();
print
$page->header(),
$page->start_html('My home page'),
$page->page_header(),
$page->content('My own content'),
$page->page_footer(),
$page->end_html();
然后,只要您需要自定义/子类方法,就可以use MyCGI
。