#!/usr/bin/perl use strict; use warnings; my $e1 = Error->new; if($e1) { print "Error object: $e1"; } else { $e1->message; } unless(my $foo = bar()) { $foo->message; } sub bar { return Error->new; } package Error; use overload '""' => sub { '' }; sub new { return bless {}, shift; } sub message { print "Error message!\n"; } 1;