in reply to Re^2: Problem calling WWW::Mechanize redirect_ok
in thread Problem calling WWW::Mechanize redirect_ok

Looking at the docs for LWP::UserAgent, we can see:
$ua->redirect_ok( $prospective_request, $response )
This method is called by request() before it tries to follow a redirection to the request in $response. This should return a TRUE value if this redirection is permissible. The $prospective_request will be the request to be sent if this method returns TRUE.

So basically, you want to create a redirect_ok method that always returns a true value. A clean way of doing that is to create a subclass of WWW::Mechanize that overrides WWW::Mechanize's redirect_ok method.

package WWW::Mechanize::AlwaysRedirect; # this class is a subclass of WWW::Mechanize use base 'WWW::Mechanize'; sub redirect_ok { 1; # always return true. } package main; my $agent = WWW::Mechanize::AlwaysRedirect->new(); # proceed as per usual with this $agent instead of the one # in your original code

You seem to be slightly confused by object-oriented techniques. You should probably take a look at at perltoot and perlmod. There is also the very good "Object Oriented Perl" book by Damian Conway.

Replies are listed 'Best First'.
Re^4: Problem calling WWW::Mechanize redirect_ok
by js1 (Monk) on Jan 05, 2006 at 20:00 UTC

    Thanks, that was a really helpful reply, and thanks for the links.

    Unfortunately I still get a 302 Found page in the browser, so there must be something else I need to do to get the script to follow the redirect through. I'll plough on and see if I can find the answer.

    Thanks again!