If you declare a sub foo() in your perl code, and core::foo already exists, you will get a warning "Ambiguous call resolved as CORE::foo(), qualify as such or use &" and core::foo will be called.
| [reply] |
If you declare a sub foo() in your perl code, and core::foo already exists, you will get a warning "Ambiguous call ....
Yes - but only if there's a call to foo() made after that declaration of sub foo().
At least, that's what I'm seeing on perl-5.38.0:
D:\>perl -wle "sub sqrt {return sprintf '%.4g', $_[0] ** 0.5}"
D:\>perl -wle "print sqrt(3); sub sqrt {return sprintf '%.4g', $_[0] *
+* 0.5};"
1.73205080756888
D:\>perl -wle "print sqrt(3); sub sqrt {return sprintf '%.4g', $_[0] *
+* 0.5}; print sqrt(2);"
Ambiguous call resolved as CORE::sqrt(), qualify as such or use & at -
+e line 1.
1.73205080756888
1.4142135623731
Cheers, Rob | [reply] [d/l] |