package Example::Tuple; use overload( '.' => \&concatString, ); sub concatString { my( $self, $string, $isReversed )= @_; my @new; for my $elt ( @$self ) { push @new, $isReversed ? $string . $elt : $elt . $string; } return __PACKAGE__->new( @new ); }