나는 perl에 매우 익숙합니다. 나는 Mechanize 패키지를 사용하는 방법을 배제하고있다. 예제 페이지가 있습니다. 나는 그것이 이상한 방법으로 작동하지만 아직, 나는 지금 일어나고있는 일을 이해하기를 원한다는 것을 배우는 것이 좋을지 모르겠다.Perl이 잘못된 패키지를 사용하려고 시도했습니다.
첫째, 내가 PAGE1에서 직접 콘텐츠를지고 스크립트를 작성했습니다 :
my $mech = WWW::Mechanize::Frames-> new();
my $mechFr = WWW::Mechanize::Frames-> new();
my $url="page1 url";
$mech->get($url);
my @frames = $mech->get_frames();
$mechFr= $frames[0];
print $mechFr->content();
을 그리고 이것은 잘 작동합니다. 그럼 내가 page0에서이 페이지를 얻으려고 노력하고 있었고, 난이 쓴 : 링크를하면 괜찮아 보이는 afeter MECH에서
my $mech = WWW::Mechanize::Frames-> new();
my $mechFr = WWW::Mechanize::Frames-> new();
my $url="page0url";
$mech->get($url);
$mech=$mech->follow_link(text_regex => qr/page1like/);
print $mech->content();
my @frames = $mech->get_frames();
$mechFr= $frames[0];
print $mechFr->content();
콘텐츠 (난 정말 PAGE1 오전),하지만 난 오류 Can't locate object method "get_frames" via package HTTP:Headers" at (...)/Message.pm line 694"
를 얻을. 내 패키지 목록은 두 스크립트에서 동일합니다.
use strict;
use warnings;
use WWW::Mechanize::Frames;
제 질문은 무엇이 잘못 되었습니까?
'$ MECH = $ MECH => follow_link()'를 깨고 무엇 :
당신은 별도의 변수에 HTTP 응답을 저장해야합니다. 너 원래의 $ mech을 clobbering하고있어. – Sobrique