В чем причина этого «Не удается открыть perl script: нет такого файла или каталога»

#windows #perl #cygwin

#Windows #perl #cygwin

Вопрос:

Если я выполню эту команду в cygwin (на платформе Windows xp)

 perl /cygdrive/c/Sagar/New_ISP/isp_fw_11_24_Test_V1/Scripts/w
indows_test_report_tool/testdbmerge.pl
  

Я получаю эту ошибку:

 Can't open perl script "/cygdrive/c/Sagar/New_ISP/isp_fw_11_24_Test_V1/Scripts/w
indows_test_report_tool/testdbmerge.pl": No such file or directory.
  

Почему это?

Комментарии:

1. Предполагая, что файл действительно существует — есть ли у вас права доступа к файлу каталогам? Что вам дает ls -l <file>?

2. он выдавал -r-x—— я изменил его разрешение с помощью chmod на -rwxrwxrwx. Даже тогда он выдает ту же ошибку.

3. Что с новой строкой после /w ? Удалите его.

Ответ №1:

Убедитесь, что первым perl на вашем пути является cygwin perl; если это собственный Win32 perl (например, ActiveState или Strawberry), он не поймет пути cygwin.

perl -V:osname должен сообщать cygwin, а не MSWin32.

MSWin32 perl не понимает никакого пути, начинающегося с /cygdrive / . Для этого, если вы сделали

 perl c:/Sagar/New_ISPisp_fw_11_24_Test_V1/Scripts/windows_test_report_tool/testdbmerge.pl
  

это сработало бы. Или вы можете использовать утилиту cygpath для преобразования пути cygwin в путь Windows, например

 perl `cygpath -w /cygdrive/c/Sagar/New_ISP/isp_fw_11_24_Test_V1/Scripts/windows_test_report_tool/testdbmerge.pl`
  

Комментарии:

1. Он выдает $ perl -V:osname osname=’MSWin32′;

2. Но я смог запустить другие perl-скрипты в других каталогах, но я не могу запускать perl-скрипты в этом каталоге, в том же cygwin.

3. @Sagar, MSWin32 perl не понимает ни одного пути, начинающегося с /cygdrive/ . Если бы вы это сделали perl c:/Sagar/New_ISPisp_fw_11_24_Test_V1/Scripts/windows_test_report_tool/testdbmerge.pl , это сработало бы.

4. Или perl `cygpath -w /cygdrive/c/Sagar/New_ISP/isp_fw_11_24_Test_V1/Scripts/windows_test_report_tool/testdbmerge.pl`

Ответ №2:

Я выясняю проблему, сначала вам нужно запустить эти команды, чтобы in заработал.

  1. cd nipe
  2. sudo perl nipe.pl перезапуск