C:\>perl -MO=Deparse -e "$foo = 'bar'"; $foo = 'bar'; -e syntax OK C:\>perl -MO=Deparse -e "$main::foo = 'bar'"; $foo = 'bar'; -e syntax OK C:\>perl -MO=Deparse -e "$::foo = 'bar'"; $foo = 'bar'; -e syntax OK #### C:\>perl -MO=Deparse -e "package Foo; my $foo = 'bar'"; package Foo; my $foo = 'bar'; -e syntax OK C:\>perl -MO=Deparse -e "package Foo; my $::foo = 'bar'"; "my" variable $::foo can't be in a package at -e line 1, near "my $::foo " Can't use global $::foo in "my" at -e line 1, near "my $::foo " -e had compilation errors. C:\>perl -e "package Foo; $::foo = 'foo'; print $foo" C:\>perl -e "package Foo; $::foo = 'foo'; print $main::foo" foo C:\>