package Foo; our $bar = 'some default'; sub new { bless {} } sub bar { shift; $bar = shift if @_; $bar } package main; my $obj = Foo->new; print $obj->bar, "\n"; $obj->bar('something else'); print $obj->bar, "\n"; #### package Foo; our $bar = 'some default'; package main; print $Foo::bar, "\n"; $Foo::bar = 'something else'; print $Foo::bar, "\n"; #### package Foo; my $bar = 'some default'; sub bar { $bar = shift if @_; return $bar; } #### package Foo; my $bar = 'some default'; sub bar_ref { return \$bar; } #### package Foo; my $bar = 'some default'; sub bar : lvalue { $bar; } #### print Foo::bar, "\n"; Foo::bar = 'something else'; print Foo::bar; #### package Foo; { my $bar = 'some default'; sub bar : lvalue { $bar } }