2013-02-25 2 views
2

Я очень новичок в Perl, однако, я немного разбирался в использовании модулей perl, которые я работал над выводом HTML :: table, но когда я занимаюсь модулем Mechanize, он все время говорит мне, что НЕ МОЖЕТЕ найти метод объекта «новый» через пакет »при запуске программы нижеНе удается найти метод объекта «новый» через пакет «www :: Mechanize» (возможно, вы не хотите загружать «www :: Mechanize»?) В gmail.pl, строка 9, <stdin> строка 2

#!user/Perl/bin; 
       use strict; 
       use warnings; 
       use WWW::Mechanize; 
       my $URL ="https://accounts.google.com" 
       my $username = <>; 
       my $password = <>; 
       my $mech =new www::Mechanize(); 
       $mech -> get($url); 
$mech -> form_name('formname'); 
$mech -> field ('username' =>$username); 
$mech -> field ('password' =>$password); 
$mech -> click('signin'); 

я также некоторые из направляющих линий, заданных членами переполнения стека и установлен Mechanize :: Firefox, а также следующие ниже шаги

cpan WWW::Mechanize::Firefox 
cpan MozRepl 
cpan MozRepl::RemoteObject 

однако я постоянно получаю ту же ошибку, в то время как работает мой код

пожалуйста, помогите мне здесь ..

Благодаря N @ Veen

+0

В качестве примечания: [Как сделать хижину линию вправо] (http://stackoverflow.com/questions/2791954/what-should-i-use-for-a-perl-scripts-shebang-line) – memowe

ответ

10

Perl чувствителен к регистру. www::Mechanize - это не то же самое, что и WWW::Mechanize (последний имеет капитал W).

Вы загружаете (верхний регистр) WWW::Mechanize, а затем пытаетесь создать объект класса (нижний регистр) www::Mechanize, которого не существует.

Также считается, что лучше избегать синтаксиса косвенного объекта. То есть, использовать

my $mech = WWW::Mechanize->new(); 

вместо

my $mech = new WWW::Mechanize(); 

(Но это не было причиной вашей проблемы.)

+0

Я ценю вашу помощь, теперь я могу запустить свой сценарий. просто хотел узнать о follow_link(), что он будет делать точно – user2106358