my $foo = Foo->new1; print $foo->{bar}; # here is the problem, Jim #my $bar = $foo->new1; #print $bar->{bar}; my $baz = $foo->new2; print $baz->{bar}; package Foo; sub new1 { bless { bar => 'baz' }, $_[0] } sub new2 { bless { bar => 'baz' }, ref($_[0]) || $_[0] }