Всем привет, вот пример:
package List::Custom;
use overload (
'""' => sub { "«@{ $_[0] }»" },
'-' => sub { "не работает" },
);
sub new { bless \@_, shift }
@x = new List::Custom qw( A B C );
@y = new List::Custom qw( D E );
print "@x @y \n"; # работает
print @x - @y; # 0 вместо "не работает"