$obj->string / $obj->special was what I originally went with, and I may still do. I came here hoping for some hints on possibly simplifying it, though, as string is the 95% case. I rate the odds of the programmer forgetting to write my $special = $obj->method->special at least as high as forgetting to write my (undef, $special) = $obj->method</p>. Since both are strings (and strings are indeed the best option), both would silently use the "wrong" value if forgotten. <c>wantarray might actually be slightly superior, in that the two calling options look very different and errors would hence be easy to spot:
my $string = $obj->method; # vs. my $string = $obj->meth +od->string; my (undef, $special) = $obj->method; # vs. my $special = $obj->meth +od->special;
I'll give it some more thought though. Thanks for the input.
In reply to Re^4: OO design: returning string and/or special value
by wanna_code_perl
in thread OO design: returning string and/or special value
by wanna_code_perl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |