package SomeClass; use overload '<>' => \⋄ sub diamond { my $self = shift; if ( wantarray ) { print "wants array\n"; return $self->handle->getlines; } else { print "wants scalar\n"; return $self->handle->getline; } } #... rest of code