Какая часть Perl не любит NTFS-переходы?

Мне нравится стиль Vista для пути, поэтому на машине XP я создал NTFS-соединения C:\Users -> C:\Documents and Settings и ~\Documents -> ~\My Documents, так что мне нужно было написать только один стиль пути C:\Users\me\Documents.

Однако CPAN::SQLite и Exporter не очень подходят, когда я устанавливаю PERL5LIB на 'C:\Users\me\Documents\dev\perl\lib'. Модули Exporter, унаследованные от Exporter, начинают жаловаться, что export_to_level не определен, когда они пытаются его использовать.

Я действительно думаю, что это Exporter и др., А CPAN::SQLite - просто жертва, потому что он импортирует символ $dbh в операторе use, только чтобы Perl жаловался, что $dbh не был определен. Вдобавок ко всему, модули, относящиеся к XS, жалуются на отсутствие метода начальной загрузки.

Так что кто-нибудь знает, есть ли у Perl (Strawberry) особая проблема с NTFS-переходами?


person Axeman    schedule 20.04.2011    source источник
comment
Не могли бы вы дать актуальные сообщения об ошибках. (Фактический код тоже был бы хорош.) Мне трудно поверить, что Exporter жалуется на то, что export_to_level не определяется, когда Exporter никогда его не вызывает. Фактически, он предоставляет это!   -  person ikegami    schedule 21.04.2011
comment
Pyhon хорошо ест мои символические ссылки Windows XP. Ява тоже. Веб-сервер Apache - тоже. Я не жемчужный человек, но могу ли я спросить: вы пробовали ту же конфигурацию, но давали Docume ~ 1. Какой инструмент вы используете для создания ссылки. Я могу предположить, что вы используете Junction. Дело в том, что Windows XP является POSIX-совместимой системой. Другой момент заключается в том, что указание на изменение каталога файловой системы на C: \ Users интерпретируется как C: \ Documents and Settings на низком уровне ядра, который не имеет ничего общего с тем, какое приложение является автором вызова, perl, python или что угодно.   -  person Pavlonator    schedule 16.05.2011


Ответы (1)


Это не столько ответ, сколько продолжение: я не мог воссоздать проблему. Поэтому я не могу надежно воспроизвести сообщение об ошибке. Это была не просто перезагрузка. Потому что я сделал несколько из них.

Я изменил свой PERL5LIB обратно на "C:\Documents and Settings\me\My Documents\...", запустил немного Perl и просто решил, что так оно и должно быть.

Затем я прочитал вопрос ikegami в комментариях и снова изменил настройку Windows на C:\Users\me\Documents\...\perl\lib, и Perl по-прежнему работал нормально, как и CPAN. Я перезагрузился, убедившись, что переменная окружения задается именами Junction, но perl и CPAN по-прежнему работают нормально.

За несколько недель, прошедших с тех пор, как я разместил этот вопрос, я больше никогда не сталкивался с этой проблемой. А теперь вот среда perl, в которой я работаю:

C:\blahblahblah>perl -MSmart::Comments -MCPAN::SQLite -e "### @INC"

### @INC: [
###         'c:/Users/<me>/Documents/.../perl/lib',
###         'C:/strawberry/perl/site/lib',
###         'C:/strawberry/perl/vendor/lib',
###         'C:/strawberry/perl/lib',
###         '.'
###       ]

Дело в том, что, работая «старым способом», я мог бы реорганизовать свой личный perl / lib, чтобы устранить другую проблему.

Но я думаю, ответ заключается в том, что Strawberry Perl, скорее всего, не имеет НЕТ проблем с NTFS-переходами ... в долгосрочной перспективе.

person Axeman    schedule 19.05.2011