Damian Conway wrote:
In fact, I would even be happy with requiring @a.=push and @a.=shift, if
it meant that there were *no* special cases. One extra character is a
small price to pay for perfect SWIM (and not just "Say What I Mean",
the real benefit is the other SWIM: "See What I Meant").
I don't like @a.=shift. It looks like @a = @a.shift, which is of course
not what you mean.
In addition, the current @a.shift is useful because it returns the
element that was removed from the array, so you can do something with it:
loop {
@customers.push @c if (@c = new_customers());
serve_customer(@customers.shift);
}
I'm sure the more experienced people can suggest a better example.
Daniel.