#!/usr/bin/perl -l use strict; use warnings; package Append; sub TIESCALAR { bless \$_[1], $_[0] } sub FETCH { ${${ $_[0] }} } sub STORE { ${${ $_[0] }} .= $_[1] } package main; sub append :lvalue { tie my $v, 'Append', \$_[0]; $v; } my $u='Foo'; (append $u)='Bar'; print $u; __END__