#!/usr/local/bin/perl package SomeClass; use Data::Dumper; use overload '""' => \&name; sub new { return bless {}, shift; } sub name { print Dumper \@_; my $self = shift; $self->{NAME} = shift if @_; return $self->{NAME}; } package main; my $thing = SomeClass->new; $thing->name('TestObj'); print "Implicit: my name is $thing\n"; #### $VAR1 = [ bless( {}, 'SomeClass' ), 'TestObj' ]; $VAR1 = [ bless( { 'NAME' => 'TestObj' }, 'SomeClass' ), undef, '' ]; Implicit: my name is