问题
On Perl 5.8.5 I am seeing the error listed in the question.
I am running these version modules:
- Math::BigInt: 1.89
- Math::BigInt::FastCalc: 0.19
- Math::BigInt::GMP: 1.24
- Math::BigInt::Pari: 1.13
- Math::BigRat: 0.22
- bignum: 0.22
The module producing the error is Math::Pari. This is all in an attempt to get Net::SFTP working to put a file on a remote host.
Thanks for any insight, oh CPAN gurus. :)
Thanks, nothingmuch, I tried those things but when I remove Math::Pari, Net::SSH::Perl::Util::SSH2MP complains because it is using it as such:
use Math::Pari qw( PARI floor pari2num Mod lift );
The Math::Pari version is 2.010800
I wish I understood the CPAN build process better so I could know if this was worth reporting to the maintainer of Net::SFTP.
回答1:
The simplest solution would probably just to remove Math::BigInt::Pari. GMP should be able to do everything you need.
You can also prepend your script with
use Math::BigInt only => "GMP";
or something like that (see the Math::BigInt docs) to ensure that calc module is used instead of Math::Pari.
Make sure that this use line appears before anything else that may load Math::BigInt differently.
回答2:
For whatever it is worth: For me the problem was related to the SSH protocol used on the target host. It was set to SSH version 2. I temporarily removed it and Net:SSH now works for me. Not a solution, but at least a workaround.
来源:https://stackoverflow.com/questions/418347/how-do-i-fix-as-number-is-not-a-pari-function-name-in-mathpari-called-by-m