in reply to Instance Module

To expand on the previous answers... There is only ever one instance of a package; a given package only has one set of variables. (local can be used to temporarily give different values to those variables.)

Thus, you would see the same results if you were using a package variable instead of a lexical variable:

package Pack; use vars qw/$image/; sub one { ($image)=@_; } sub two { print $image; } ##main code use Pack; Pack::one("param"); my $ret=Pack::two(); print $ret;
Regarding use: the first time use Module occurs, the module is found, compiled and executed, and the module's import() method is called. The second time use Module occurs, Perl knows (by keeping track in %INC) that this module has already been loaded; the import() method is called but the rest of the process is skipped.