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.