good chemistry is complicated, and a little bit messy -LW |
|
PerlMonks |
Overloading multiplication involving BigIntby grondilu (Friar) |
on Jan 13, 2012 at 15:40 UTC ( [id://947762]=perlquestion: print w/replies, xml ) | Need Help?? |
grondilu has asked for the wisdom of the Perl Monks concerning the following question: Hi, I recently wanted to overload '*' with one of my class which can accept external multiplication with bigints. In other words, I wanted to do something like:
I realised that overloading '*' inside My::Custom::Object would not be enough as the class resolution would first process '*' inside Math::BigInt if the number is the first operand. So I thought I should directly overload '*' inside Math::BigInt. I guess I can do that even if this class is not "mine", right?
I'm not sure this is a good solution, though. My concern is about using 'bmult' instead of '*'. I doubt bmult will behave correctly if something else than a BigInt is provided as a second operand. I thought about creating a child class of Math::BigInt so '*' can fallback to parent '*' when necessary but then I'll have to explicitely bless my integers which would be annoying. So, how should I do this right?
Back to
Seekers of Perl Wisdom
|
|