sub append :lvalue { local *LVALUE::STORE = sub { my $self=shift; $$self .= $_[0]; } $_[0]; }