Это старый трюк я делаю, когда у меня есть два разных, но очень несовместимые версии Perl я должен использовать: Используйте различные суффиксы:
К примеру, у меня есть ClearQuest в моей системе и должны использовать cqperl
(который является версией Perl ClearQuest) для выполнения сценариев, которые обрабатывают проблемы в ClearQuest. Тем не менее, если мне нужно манипулировать данными SQL из нашей базы данных, я должен использовать свой ActivePerl, потому что я не могу добавить модуль DBI
в cqperl
.
Что я сделал, было связано с суффиксом *.pl
с ActivePerl и суффикс *.cqpl
с cqperl
. Теперь, когда я запускаю скрипт и заканчивается на *.cqpl
, он использует одну версию Perl, а сценарий, заканчивающийся *.pl
, выполняется другой версией Perl.
Чтобы связать суффикс с программой, перейдите в окно проводника Windows и выберите пункт Свойства папки из Tools меню. Затем нажмите на вкладке Типы файлов. Нажмите на кнопку New и создайте новое расширение для связи с файлом. Затем выберите его в окне «Зарегистрированные типы файлов» и нажмите кнопку «Дополнительно» внизу.
Создайте действие Open
и свяжите его с полным именем пути Perl, которым вы хотите выполнить этот суффикс. Как это:
"C:\Perl\bin\perl.exe" "%1" %*
%*
важно, так что вы можете передать другие параметры программы.
В вашем случае вы можете использовать *.pl
для Perl 5.8.8 и *.pl6
для Perl 5.6.
Вам не нужно размещать каталог Perl bin
на вашем пути. Просто введите имя своего скрипта и все.
К сожалению, я бы не знал путь к исполняемому файлу Perl во время работы. Другими словами, я не могу жестко закодировать путь к исполняемому файлу Perl. – hemanth 2010-11-23 14:37:49
Ну, мне кажется, что ваш единственный вариант, чтобы быть на 100% уверенным, что ваши скрипты будут запускаться в целевой системе, - это скомпилировать их в .exe-файл, используя правильную версию perl (таким образом perl включает в себя себя и все библиотеки/модули в архиве, которые затем автоматически извлекаются в temp dir на целевой машине. Таким образом, вы сможете запускать свои скрипты в любом месте, где perl даже не установлен), как описано здесь: http://stackoverflow.com/questions/1237286/how-can-i-compile-my-perl-script-so-it-can-be-execute-on-systems-without-perl-in – 2010-11-24 09:53:11