package accessors; sub import { no strict 'refs'; my $pkg = (caller)[0]; for my $sub (@_) { *{$pkg.'::'.$sub} = sub { $#_ && $_[0]->{$sub} = $_[1]; $_[0]->{$sub} } } } package main; use accessors qw(foo bar baz);