#!/usr/bin/perl package ValideHashValue; use Tie::Hash; use base 'Tie::StdHash'; use strict; use warnings; sub TIEHASH{ my $class = shift; my $href = shift; return bless $href, $class; } sub FETCH{ my $self = shift; my $key = shift; return defined $self->{$key} ? $self->{$key} : 'das war mal undef'; } package main; use strict; use warnings; my %hash = (); print $hash{foo}; # Use of uninitialized value in print ... # now, using tie: tie my %h, 'ValideHashValue', \%hash; print $h{foo}; # das war mal undef