我是perl的新手,我试图创建一个perl脚本来远程登录Web表单并返回成功或失败。但它没有工作或我错过了什么,加上它给我一个错误信息:这是我写的:
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Response;
use HTTP::Request::Common qw(POST);
$ua = LWP::UserAgent->new;
$ua->agent("Mozilla 8.0...");
$username = "username";
$password = "password";
my $req = (POST 'http://www.domain.com/login.php',
["Username" => "$username",
"Password" => "$password"]);
$request = $ua->request($req);
$content = $request->content;
if ($res->is_success) {
print ("success");
exit;
}
else {
print ("failure");
}
这个脚本根本没有运行,我得到的错误是:
Can't call method "is_success" on an undefined value at c:\remotelogin.pl line 24.
答案 0 :(得分:3)
不能强调它的重要性
use strict;
use warnings;
特别是在学习perl时。在这种情况下,您有一个未声明的变量$res
。由于打字错误或许?如果您使用了严格和警告,则会出现编译错误:
Global symbol "$res" requires explicit package name..
严格和警告可能会带来许多令人生畏的错误,但是一旦你学会了如何避免它们,你会发现它们可以节省你的时间和精力,而不是相反。
答案 1 :(得分:2)
$res
应替换为$request
。
use strict; use warnings;