# Script part 2. { package StringRef; use overload '""' => sub { shift->{STRING}; }; } { package StringRefHash; use Tie::Hash; our @ISA = 'Tie::StdHash'; sub STORE { my ($self, $key, $value) = @_; $self->{$key} = bless {STRING => $value}, 'StringRef'; } } tie my %list, 'StringRefHash'; eval $code;