and I don't see that as a bad practice. Works like expected and is documented. The alternative would be to shove the result explicitly through three other subs:
which gains me what exactly?
$thingy -> foo (1,2) -> to_output_channel;
$string = $thingy -> foo (1,2) -> as_string;
@lines = $thingy -> foo (1,2) -> as_list;
It gains you
- explicit clarity of intent
- 3 parameterizable output methods
- 3 methods which can be re-used or overloaded as needed
- The ability to call all 3 output methods, none or any combination simply by mixing/matching method calls.
Should I avoid localtime and roll my own?
Well, no. Try Date::localtime
or anything in the DateTime hierarchy.
Carter's compass: I know I'm on the right track when by deleting something, I'm adding functionality