in reply to Programming patterns

How about a summery of what you do understand?

I parse his statement as

So this is usually fine
sub method { $self->do_this if $self->query(); ...
So this is usually wrong (conditional on $that
sub method { ... if $that->query(); ...
?? sub method { $self->do_this if $that->query(); ...
?? sub method { $that->do_this if $that->query(); ...
This is a huge red flag ( ?? encapsulation violation ?? )
sub method { ... if $that->attribute() eq ...
???? sub method { ... if $self->attribute() eq ...

Re-reading chromatic's post, chromatic's $item is probably cawley's $that

The point is kinda obvious, simple
Always try /call the method you want ( $item->do_this )
But let it/that method fail based on its own state ( $self->dirty instead of $item->dirty )

In other words, let everybody check their own underpants for ticks, no peeking :)

I think I get it, but as usual chromatic's entry leaves you wanting more. FWIW, I'm not that well versed in OOP.