#!/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";