在html中包含perl cgi脚本

时间:2010-03-01 05:11:06

标签: perl cgi

我想编写一个页眉和页脚perl脚本,它将返回我个人网页的页眉和页脚。我假设我会在我希望它出现的html文件部分中对该文件进行某种包含。这是我应该采取的方式,如果是这样,我该怎么做?如果有人有更好的方法来做任何其他建议,我会非常感兴趣。感谢。

3 个答案:

答案 0 :(得分:3)

看看Template Toolkit。它允许您插入在返回页面之前评估的服务器端代码,因此您可以通过这种方式轻松地向页面添加页眉/页脚代码。该工具包易于使用,并且可以在Perl中实现其他功能。

答案 1 :(得分:3)

如果您的服务器支持,请查看server side includes。它们不一定要用Perl编写。

如果没有,并且您的页眉和页脚很简单,请考虑使用Javascript编写它们。在您的HTML代码中包含一个Javascript脚本很容易,这些脚本将进行大量document.write次调用,您将完成这些操作。

如果没有,并且你的页眉和页脚不简单,如果你不了解Javascript,如果你可能是受虐狂,仍然可以考虑使用Javascript。

可能有一些其他新技术可以实现这一目标,这里的年轻鞭挞者可以告诉你,但对我来说服务器端包含和Javascript没有破坏。

答案 2 :(得分:0)

子类CGI.pm并添加自定义方法。例如:

MyApp.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;

page.pl

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