in reply to Re^3: PDL and srand puzzle
in thread PDL and srand puzzle

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.

Replies are listed 'Best First'.
Re^5: PDL and srand puzzle
by syphilis (Archbishop) on Jun 06, 2024 at 02:31 UTC
    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