in reply to tie for Perlish, encapsulated objects
$x=$x+1;
and you know that $x is a tied object. Quick, what does the code do?
Who knows?
All I know is, it will call the appropriate fetch and store functions in the tied package, and something will happen. Without reading backwards to find the tie command, it's not obvious which functions in which package are being called.
When I find out code has tied objects, I always cringe inside, because I know I'll have to audit every single line for potential tied side effects to be assured that nothing stupid is happening. I've seen some badly written code where the tied variables are tied in completely different modules from the modules where they are used, so it's a nightmare trying to figure out exactly what is going on.
I'd rather just see a normal function call interface; just explictly call the equivalents of $class->TIESCALAR(), $object->FETCH().
|
|---|