Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Basic Objects with Overloaded Operators

by educated_foo (Vicar)
on May 23, 2002 at 15:37 UTC ( #168794=note: print w/ replies, xml ) Need Help??

in reply to Basic Objects with Overloaded Operators

In playing with overloading in the past, I noticed that you can overload the <> "iteration" operator. However, it's not clear (to me) from the docs just what your function is supposed to do. Has anyone out there ever overloaded this, and if so, what are the rules?


Comment on Re: Basic Objects with Overloaded Operators
Replies are listed 'Best First'.
Re: Re: Basic Objects with Overloaded Operators
by Zaxo (Archbishop) on May 31, 2002 at 01:31 UTC

    The Camel, 3ed. has an example:

    package LuckyDraw; use overload '<>' => sub { my $self = shift; return splice @$self, rand @$self, 1; }; sub new { my class = shift; return bless [@_] -> $self; } 1;
    The book does not discuss the rules, but I'm sure this example breaks some of them. To work with while (<$foo>){}, I think the return value should be true in 'bool' context until the source is exhausted. To cope with my @shuffle=<$deck>; and with slices, a wantarray clause should be there to shuffle and return the whole $deck, leaving $deck empty.

    The rules you observe should only be the ones you need to observe.

    After Compline,


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://168794]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2015-11-25 01:03 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (666 votes), past polls