Автор Тема: Как заставить *.bat запустить скрипт на perl?  (Прочитано 22005 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн perl novice

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Всем привет! Есть у меня на D:\\1\\234\\432\\234\\234\\2342\\234\\23423\\adm_script.pl - перловый скрипт. А хотелось бы на рабочем столе сделать *.bat файл, что бы он запускал мой скрипт. Подскажите как это сделать? То есть, что должно быть написано в батнике? Заранее спасибо!

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
perl D:\\1\\234\\432\\234\\234\\2342\\234\\23423\\adm_script.pl

Оффлайн perl novice

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Спасибо, но не рабоает! Пишет: Can\'t locate anEnv.pm in @INC (@INC contains....

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
наверное у вас нет anEnv.pm в @INC.
поставте его.

Оффлайн perl novice

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как заставить *.bat запустить скрипт на perl?
« Ответ #4 : 01 Июня 2007, 13:51:21 »
как это в батниге прописать?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Как заставить *.bat запустить скрипт на perl?
« Ответ #5 : 01 Июня 2007, 13:59:46 »
@ECHO "наверное у вас нет anEnv.pm в @INC."
@ECHO "поставте его."

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как заставить *.bat запустить скрипт на perl?
« Ответ #6 : 01 Июня 2007, 18:19:47 »
arto
Цитировать
наверное у вас нет anEnv.pm в @INC.
поставте его.

Не надо пользователей в заблуждение вводить...
Ты сам-то сможешь в @INC его занести?

perl novice
У тебя просто нет модуля anEnv.pm, либо в скрипте не прописан use lib к папке где он лежит...

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Как заставить *.bat запустить скрипт на perl?
« Ответ #7 : 01 Июня 2007, 20:21:55 »
запросто:

# print -l "package anEnv;" "1;" > $(perl -e "print \\$INC[0];")/anEnv.pm
# perl -ManEnv -e "exit;"
#

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как заставить *.bat запустить скрипт на perl?
« Ответ #8 : 04 Июня 2007, 17:21:41 »
arto

Остроумно, но не правильно...

perldoc lib

P.S. В @INC ты его реально не занес, оценка - 2

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Как заставить *.bat запустить скрипт на perl?
« Ответ #9 : 04 Июня 2007, 21:47:45 »
really?
а почему сработало?

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как заставить *.bat запустить скрипт на perl?
« Ответ #10 : 06 Июня 2007, 12:00:29 »
arto
1.
А я не сказал, что работать не будет.
Вопрос не в работоспособности, а в философии.
Свои собственные модули, предназначенные для одного проекта выкладывать в одну из папок(!) @INC - не совсем правильно.
Тем паче, как это сделал ты. :-)

2.
в @INC хранится список папок где расположены модули, точнее где Perl их будет искать.
Я для тебя америку открыл? Нет, а вот товарищу который вопрос задал - да.

3. Товарищу perl novice совсем не поможет твой код, уверен, что он просто скопирует его себе в командную строку. Да... ошибка первая у него пропадет, но породит кучу остальных...

Медвежью услугу оказываете товарисч...

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Как заставить *.bat запустить скрипт на perl?
« Ответ #11 : 06 Июня 2007, 13:05:49 »
1. @INC -- неправильно? а чем именно неправильно?
"P.S. В @INC ты его реально не занес" -- ?

2. и чего?

3. какие ошибки появятся?

ps. задание на дом -- что делает use lib с @INC.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как заставить *.bat запустить скрипт на perl?
« Ответ #12 : 06 Июня 2007, 13:12:43 »
arto
1. Что хранится в @INC? И возможно ли в @INC добавить отдельный модуль?
Кстати, ты своей командной строкой модуль не в @INC запихивал а вызывал первый элемент этого массива, что бы определить путь.
Смекаешь?

2. И того

3. Когда он начнет вызывать методы этого модуля.

P.S. Я знаю что делает use lib, а ты?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Как заставить *.bat запустить скрипт на perl?
« Ответ #13 : 06 Июня 2007, 13:43:43 »
1. список каталогов для поиска модулей. в каталог -- можно.
добавил в каталог. все работает.

2. т.е. работает?

3. ???
# print -l "package anEnv;" "sub aa (@) { print STDERR @_; }" "1;" > $(perl -e "print \\$INC[0];")/anEnv.pm
# perl -ManEnv -e \'anEnv::aa ("test");\'
test
#

ps. perldoc -m lib

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как заставить *.bat запустить скрипт на perl?
« Ответ #14 : 06 Июня 2007, 13:59:14 »
arto

1. Так вот и не путайте теполое с мягким... Значит все-таки не в @INC а в один из каталогов;

2. Еще раз повторяю, что не говорил, что Ваш код, товарисч, не работает;

3. Ага, уже исправлять начали, добавлять. Только вот вопрос, а если он уже реально существует как anEnv.pm где-то, что же делать тогда?

P.S. И как perldoc помог?

P.P.S. Демагогию, предлагаю пректатить, ибо тема не пиписьками меряться...
Если хочешь померяться, заводи тему во флейме...

Решение как таковое:

1. Найти файл anEnv.pm;
2. В скрипте прописать:
use lib \'[абсолютный(!) путь папки где лежит anEnv.pm]\';
3. И нефиг его копировать в одну из папок массива @INC.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28