2012-05-16 6 views
0

Я пытаюсь создать новый сеанс с модулем CGI :: Session.Perl CGI :: Session return empty

$session = new CGI::Session("driver:file", undef, {Directory=>'/tmp'}); 
$sid = $session->id; 

Но он возвращает [ошибка] не удается вызвать метод "идентификатор" на неопределенное значение в /home/httpd/cgi-bin/login.cgi линии 74, строка 36.,

Кажется, что новый сеанс возвращает null. Кажется, что он не создает никаких новых файлов в папке tmp. В чем может быть проблема? Возможно, библиотека установлена ​​неправильно?

+0

Вы дважды проверили, что пользователь, который Perl CGI работает как можно писать/TMP? (Я бы ожидал, что кто-нибудь сможет написать в/tmp, но на всякий случай ....) – Ilion

+0

да, я проверил, это не то, что – Grey

ответ

2

Выписка из docs:

новый()

Возвращает новый объект сеанса, или неопределенное значение в случае неудачи. Ошибка сообщение доступно через метод errstr() - class.

Таким образом, вы можете проверить что-то вроде этого:

my $session = CGI::Session->new or die CGI::Session->errstr; 
+0

Кажется, что это был недостающий модуль :) – Grey