СоНоты

Can’t locate version/vpp.pm

Из серии стуков в подвале: если у вас вдруг перловый скрипт начинает ругатся следующим образом


install_driver(Pg) failed: Can't locate version/vpp.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8 .) at (eval 781) line 2.
BEGIN failed--compilation aborted at (eval 781) line 2.
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.8.8/mach/DBD/Pg.pm line 20.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.8.8/mach/DBD/Pg.pm line 20.
Compilation failed in require at (eval 779) line 3.
Perhaps a module that DBD::Pg requires hasn't been fully installed


то проблема с локалью, у меня в скрипте было


setlocale(LC_ALL, "ru_RU.KOI8-R");

после того, как эта строчка была закоментарена, скрипт заработал.

Проблема существует как с xs, так и с перловым вариантом пакета version.pm версии 0.76, из-под указаной выше локали он вдруг начинает считать, что нужна 76 версия этого пакета. Очевидно, что точка перестаею считаться разделителем целой и дробной частей числа...

Кстати, хороший пример, почему лучше номера версий считать целыми числами. 🙂