in reply to Re^2: Memory Managment with Subroutines and Objects
in thread Memory Managment with Subroutines and Objects

Ah, I see now that you are loading the "other script" via require. A more common approach would be to turn the first "script" into a Perl module, by naming it with a .pm extension and then loading it, still via require or use.

As memory management in Perl is mostly automatic, you don't have to do anything special to release the WWW::Mechanize object (as its documentation does not mention anything special either). If you want to reuse the same WWW::Mechanize object over and over, just store it in a variable at script startup and then use it from there:

package DownloadUtils; use strict; use vars '$mech'; sub get_mech { WWW::Mechanize->new(); }; $mech = get_mech(); sub get_file { $mech->get("$url", ':content_file' => "$file"); }; 1;

If you only simply want to download some URLs, LWP::Simple might be the easier approach. But it offers less convenience when it comes to cookies etc.

Replies are listed 'Best First'.
Re^4: Memory Managment with Subroutines and Objects
by Anonymous Monk on Dec 29, 2010 at 02:39 UTC
    Thanks again, I want to interact with forms and that is a big reason I choose Mechanize and at first glance, it does not appear that simple will do that. If you know of any package that does and is easier, please let me know.

      No - for more interaction than just downloading an URL, WWW::Mechanize is the right tool.