#!/usr/bin/perl -wT
use strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
#print header;
#print dump();
my $query=CGI->new();
my $Name=$query->param('login');
my $Pass=param("pass");
print <<HTML;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<link rel="stylesheet" type="text/css" href="/base.css">
HTML
print <<HTML;
</head>
<body>
Логин "$Name"
</body>
</html>
HTML
Я наивно полагал, что в результате должна быть выведена страничка с введенным логином, но выводятся только кавычки друг за другом.
Подскажите, что я делаю не так? И почемуто не работает dump().
Сервер локальный, на Мандриве.
Здесь вы использовали объектно-ориентированный синтаксис модуля CGI. В таком варианте qw(:standard), который предпологает что будет использоваться функционально-ориентированный синтаксис лучше убрать. Я лично предпочитаю использовать функционально-ориентированный синтаксис при написании CGI скриптов, т.к. вызов функции записывается короче чем вызов метода. Но возможно в сложных скриптах лучше использовать объектно-ориентированный синтаксис.
Работает и с $query и без него. Может кто то объяснит, в чем дело?
Потому что вы импортировали "standard" с помощью qw(:standard). Как уже писал выше нужно либо убрать импорт либо использовать функционально-ориентированный синтаксис.
Опять же вы зачем-то генерируете html код вручную, когда с помощью средств модуля CGI это записывается гораздо короче (см. предыдущий пост) и при этом еще и по стандарту xhtml.
Всё это описано в perldoc CGI, рекомендую ознакомиться.