in reply to changing package variables?

Because the variable in the package is declared within the scope of that package. So basically you now have two variables:

$MYPACKAGE::var1 contains 'DEFAULT I WANT TO CHANGE'
$main::var1 contains 'PRINT THIS'.

You need to peruse perlvar and the docs for the package command.

Replies are listed 'Best First'.
Re: Re: changing package variables?
by LameNerd (Hermit) on Mar 05, 2003 at 00:06 UTC
    Thanks!
    I was under the mistaken impression that doing
      use MYPACKAGE qw / sub1 /;
      use vars qw / $var1 /;
    
    Would give me instance of $MYPACKAGE::var1 in my main package scope.
    So what's the diffence between
      use vars qw / $var1 /;
    
    and
      my $var1
    
    ?????? What was I thinking?

      In a nutshell :my does not declare a package variable. use vars does. There's a wealth of information on this topic in the Tutorials section of the site (subsection "variables"); I'll plug my Variable Scoping in Perl: the basics and Dominus' Coping With Scoping specifically.

      update adjusted the link to CwS to point directly to it.

      If not P, what? Q maybe?
      "Sidney Morgenbesser"