Я хотел бы использовать HTML:: Шаблонный модуль. Однако это не установлено на сервере, который я использую для разработки сценариев CGI.
Это возможный загрузить модуль во времени выполнения: Я нашел файл Template.pm на своей локальной установке Perl и загрузил файл на сервер, который я использую.
#!/usr/bin/perl -w
use CGI qw(:standard :html4);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
# use HTML::Template;
use Template;
# my $package = "HTML::Template";
# eval {
# (my $pkg = $package) =~ s|::|/|g; # require need a path
# require "$pkg.pm";
# import $package;
# };
# die $@ if( $@ );
# open the HTML template
my $template = HTML::Template->new(filename => 'test.tmpl');
# fill in some parameters in the template
$template->param(home => $ENV{HOME});
$template->param(path => $ENV{PATH});
# send the obligatory Content-Type
print "Content-Type: text/html\n\n";
# print the template
print $template->output;
Вот что я делаю:
cgi-bin/script.pl cgi-bin/lib/HTML/Template.pm
В script.pl
(если вы не используете mod_perl
):
use FindBin qw( $Bin );
use File::Spec::Functions qw( catfile );
use lib catfile $Bin, 'lib';
use HTML::Template;
# The rest of your script
Если HTML :: Template действительно необязательный, прочтите perldoc -f require .
См. Также Как сохранить собственный каталог модулей / библиотек? и В чем разница между требованиями и использованием? в perlfaq8 .
Это похоже на ответ Синана, но использует local::lib:
Установите ваши файлы как:
cgi-bin/script.pl cgi-bin/lib/HTML/Template.pm
И в вашем скрипте:
use strict;
use warnings;
use local::lib 'lib';
use HTML::Parser;
Преимущество local::lib в том, что вы можете устанавливать модули из CPAN прямо в каталог по вашему выбору:
perl -MCPAN -Mlocal::lib=lib -e 'CPAN::install("HTML::Parser")'
Вот что я делаю:
cgi-bin/script.pl cgi-bin/lib/HTML/Template.pm
В script.pl
(если вы не работаете под mod _ perl
):
use FindBin qw( $Bin );
use File::Spec::Functions qw( catfile );
use lib catfile $Bin, 'lib';
use HTML::Template;
# The rest of your script
Если HTML:: Template действительно необязателен, прочитайте perldoc -f требуется .
См. также Как сохранить собственный каталог модулей/библиотек? и В чем разница между потребностью и использованием? в perlfaq8 .
-121--3250470-VB.Net:
DirectCast(Master, MyMastPageType).SelectedPage
C #:
((MyMastPageType)Master).SelectedPage
http://msdn.microsoft.com/en-us/library/system.web.ui.masterpage.master.aspx
-121--4378614- HTML:: Template и Template являются различными модулями Perl. Если вы хотите использовать HTML:: Template, вам нужно будет использовать HTML:: Template;
в верхней части сценария для импорта этого пакета.
Убедитесь, что файл HTML/Template.pm скопирован с локального компьютера на сервер, а не Template.pm.
Да. Посмотрите на Module::Runtime. Я бы все же установил ваш HTML модуль, даже в локальный каталог установки. Это, вероятно, менее хлопотно.