in reply to Need help using Class:Std (with :ATTR)

Try reordering. This won't be a problem if you put Person in its own module, as you might do when creating a larger program:

{ package Person; use Class::Std; my %name_of : ATTR(init_arg => 'name', get => 'name', set => 'nam +e'); } package main; my $guy = Person->new({name => 'Bubba'}); print "name: ", $guy->get_name, "\n"; $guy->set_name('Gump'); print "name: ", $guy->get_name, "\n";

(My reformattings make no difference; I just prefer them for clarity and separation.)