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.
In reply to Re^3: Memory Managment with Subroutines and Objects
by Corion
in thread Memory Managment with Subroutines and Objects
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |