Perl CGI Meta теги - PullRequest
       5

Perl CGI Meta теги

2 голосов
/ 28 мая 2011

За http://perldoc.perl.org/CGI.html для создания метатегов приведен следующий пример:

print start_html(-head=>meta({-http_equiv => 'Content-Type',-content => 'text/html'}))

Однако используется следующий код:

#!/usr/bin/perl
use strict;
use warnings;
use CGI;

my $cgi = new CGI;
$cgi->autoEscape(undef);
$cgi->html({-head=>meta({-http_equiv => 'Content-Type',-content => 'text/html',-charset=>'utf-8'}),-title=>'Test'},$cgi->p('test'));

Я получаю следующую ошибку:

$ perl test.cgi Неопределенная подпрограмма & main :: meta вызывается в строке test.cgi 8.

Я пытаюсь сгенерироватьследующий тег:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Ответы [ 3 ]

4 голосов
/ 28 мая 2011
#!/usr/bin/perl
use strict;
use warnings;
use CGI qw(:all);

my $cgi = new CGI;
$cgi->autoEscape(undef);
$cgi->charset('utf-8');
print
    $cgi->start_html(
        -head  => meta({-http_equiv => 'Content-Type', -content => 'text/html'}),
        -title => 'Test'
    );

Но вы на 100% уверены, что хотите использовать CGI для веб-разработки, а не что-то лучше, например, PSGI / Plack?

4 голосов
/ 28 мая 2011

Sub meta не импортируется автоматически, когда вы use CGI;. Попробуйте с

use CGI "meta";

(или ":all").

1 голос
/ 21 мая 2014

Этот пост довольно старый, но решение простое: meta - это метод объекта $ cgi, поэтому используйте его как метод.

ваш пример

#!/usr/bin/perl
use strict;
use warnings;
use CGI;

my $cgi = new CGI;
$cgi->autoEscape(undef);
$cgi->html({-head=>$cgi->meta({-http_equiv => 'Content-Type',-content=>'text/html',-charset=>'utf-8'}),-title=>'Test'},$cgi->p('test'));

Я просто добавил$ cgi-> intta meta.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...