Перейти к содержимому

Как запустить perl скрипт на windows

  • автор:

Как запустить Perl-скрипт под Windows без установки дополнительного ПО?

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

И еще один вопрос. Как можно из ExifTool вытащить те скрипты, которые отвечают за работу с JPEG?

Отслеживать
задан 3 авг 2012 в 13:08
465 3 3 серебряных знака 14 14 бронзовых знаков

Как вариант перехват для приложения API отвечающих за получение каталога временных файлов GetTempPath и ExpandEnvironmentStrings, с последующей подменой выдачи на созданный временный каталог со случайным именем в нужной тебе папке.Запуск приложения — своим загрузчиком, выполняющим перехват и подмену. Вариант реализации — на любителя.

3 авг 2012 в 14:43

Можно и без перехвата API, в батнике: генерировать случайное имя для %TMP% и/или %TEMP%, создавать эти каталоги, далее set TMP=, set TEMP=, запускать exiftools и прибивать их после.

3 авг 2012 в 15:08
а ни как нельзя без распаковки сделать?
3 авг 2012 в 16:17

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

меня по сути утаивает вариант, если сделать две папки:

А так и можно 🙂 Только в PATH прописать путь к perl.exe и таскать это всё по разным машинам без установки, будет работать. Только соблюсти все зависимости от того, что распаковывается во временную папку.

Обновление

  1. Устанавливаем perl.exe и необходимые dll в d:\perl\bin (в 5.12 их 6 штук)
  2. Копируем tmp\что-то\cache-exiftool-xxx\inc\lib в d:\perl\lib
  3. Запускаем perl.exe exiftool (exiftool лежит в tmp\что-то\cache-exiftool-xxx\inc\scripts)

Если ему чего-то не хватает — сам скажет.

Обновление 2

Урезанную версию perl мне ставить некуда, но под 5.12 выдранный из распаковки exiftool и перенесённый в другое место прекрасно работает. Даже без «своего» окружения: http://pastebin.com/21ywsgcY

Может криво объяснил. От перла (на примере 5.12) нужны только

  1. perl.exe и dll из perl/bin
  2. В каталоге perl/lib оставляются только те файлы, младшие братья которых находятся в cache-exiftool-xxx\inc\lib
  3. Из cache-exiftool-xxx\inc\scripts берётся только exiftool , остальное не нужно.

Как запустить perl скрипт на windows

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Помог: 3 раз(а)

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Цитата:

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Как запустить программу на Perl в Windows?

Недавно начал изучать Perl. Не могу понять, как правильно запускать программы. Запускаю perl файлы через командную строку.
Не могу понять что такое :»#!/usr/bin/perl»
Программы запускаются и без этой строки в начале кода.
Также хотел спросить, как запустить встроенные предупреждения в Perl?
Должно же быть что-то вроде IDE для Perl.

  • Вопрос задан более трёх лет назад
  • 1123 просмотра

1 комментарий

Простой 1 комментарий

AlexSetup

Решения вопроса 0
Ответы на вопрос 1

shoorick

программист

1. Есть много способов: можете писать руками путь/к/перлу/perl скрипт.pl (точнее, у вас в качестве пути может быть что-нибудь вроде C:\Program Files\Some Perl\bin), можете добавить путь к перлу в переменную окружения %PATH% и запускать скрипты командой perl скрипт.pl , можете настроить ассоциацию перловых исходников с интерпретатором — вариантов масса. А ещё был когда-то cygwin, где перл конечно же был, а ещё в свежих версиях Windows 10 есть линуксовая подсистема, где тоже перл должен быть.

2. #!/usr/bin/perl — так называемый shebang, особый комментарий, где после решётки с восклицательным знаком пишется путь к интерпретатору (это может быть не только перл) и, если надо, дополнительные параметры (например, #!/usr/bin/perl -F’ ‘ -nla ). В юниксоподобных системах это имеет значение — при запуске скрипта без указания команды вызова интерпретатора операционная система как раз в shebang и смотрит, чтобы понять, как же выполнить скрипт — бывают скрипты и без расширений. Под Windows shebang скорее всего роли не играет.

3. Чтобы перл больше ругался, используйте

use warnings; use strict;

Вместо первой из этих строк можете добавить ключ -w при запуске перлового интерпретатора.

4. IDE с поддержкой перла существуют. Лучшее из того, что попадалось мне под Windows — Komodo IDE. Есть упрощённая бесплатная версия — Komodo Edit: это уже не IDE (нет отладчика, юнит-тестов и ещё кучи всякой всячины), а просто навороченный редактор с поддержкой перла.

Установка Perl под Windows

В настоящее время варианты PERL (так называемые «порты» (ports) ) существуют для многих разных машин и операционных систем, в том числе и для Windows 9x, и Windows NT. Искать их надо в первую очередь на сайте CPAN (Comprehensive Perl Archive Network) — www.cpan.org. Там же можно найти многочисленные модули, программы, документацию и другие материалы, отосящиеся к Perl. Порты perl для разных платформ находятся в разделе Browsing -> Perl binary distributions («ports»)

Для Windows платформ существуют две основных «линии» Perl — так сказать, «классическая» и от фирмы ActiveState (www.activestate.com). Фирма ActiveState выпускает «свои» порты Perl для Win32, средства для запуска Perl как ISAPI extension (ISAPI — это интерфейс серверных расширений веб-серверов Microsoft — PWS и IIS) и различные утилиты разработчика. Последние уже продаются за деньги (на сайте — демо-версии), в то время как PERL можно скачать и использовать бесплатно.

Существуют и другие, менее известные порты PERL для Win32.

Для работы нужен perl версии 5 или выше. Лично я уже 2 года пользуюсь Perl 5.003_07 от ActiveState. Узнать версию интерпретатора можно командой perl -v .

Установка Perl

Процесс установки Perl из дистрибутива не представляет собой ничего сложного. Программа установки создаст папку для Perl и подпапки в ней, разместит необходимые файлы, а также пропишет путь к файлу perl.exe в autoexec.bat, а также необходимые ключи реестра. Теперь Вы можете запустить Perl-скрипт, просто введя в командной строке:
perl .

Сразу после установки Perl Вы не сможете запускать CGI-скрипты через Ваш веб-сервер. Для того, чтобы это было возможно, надо «прописать» perl в установках веб-сервера как «script handler» (программа, поддержи- вающая скрипты). Как? Это зависит от веб-сервера.

Вообще, существует 2 типа CGI-скриптов: «бинарные» (откомпилированные в исполняемый код программы) и «интерпретируемые» — к которым относятся и Perl-скрипты. Важное отличие между ними заключается в том, что вторым нужен так называемый «script handler»-программа-интерпретатор, исполняющая скрипт. Для web-сервера perl.exe и является тем самым «script handler»-ом.

В большинстве web-серверов для Windows (включая ее «родные» PWS и IIS) «бинарные» CGI-скрипты поддерживаются автоматически. Принадлежность же интерпретируемых скриптов к определенному handler-у определяется расширением файла (исключение — в некоторых «изначально UNIX-овских» web-серверах, например Apache, handler определяется первой строчкой скрипта, начинающейся с «#!»).

Установка поддержки Perl-скриптов в PWS и IIS

Нижеследующие рекомендации по установке Perl для IIS/PWS были опробованы на PWS в составе Windows95 OSR2.

В PWS и IIS данные о расширениях скриптов находятся в системном реестре Windows в разделе
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\parameters\Script Map

В частности, если Вы хотите, чтобы файлы с расширениями cgi и pl запускались как Perl-скрипты, Вам надо прописать следующие параметры в вышеуказанный раздел:

«.cgi»=»(путь_к_Perl.exe) %s %s»

«.pl»=»(путь_к_Perl.exe) %s %s»

Если у Вас perl.exe установлен в каталог C:\Perl\bin\, то эти параметры будут иметь вид:

«.cgi»=»C:\Perl\bin\perl.exe %s %s»

«.pl»=»C:\Perl\bin\perl.exe %s %s»

В тех папках web-сервера, где планируется размещать Perl-скрипты, должно быть разрешение на их исполнение (в PWS это настраивается через веб-интерфейс).

Упрощение запуска программ на Perl

Запуск обычных (не CGI) Perl-программ можно значительно облегчить, сделав его возможным стандартным для Windows способом — двойным щелчком на значке программы.

Я предпочитаю для обычных Perl-программ использовать расширение .pl, чтобы не путать их с cgi-скриптами, обычное расширение у которых .cgi

Чтобы упростить задачу, я создал файл с необходимыми ключами реестра. Скачать его можно здесь. Если Perl у Вас стоит в папке C:\Perl\bin\, то Вам достаточно скачать его, разархивировать и дважды щелкнуть по его значку. После этого все Perl-программы с расширением .pl можно будет запускать двойным щелчком.

Если у Вас Perl установлен в другой папке, Вы должны отредактировать файл, подставив вместо C:\\Perl\\bin\\perl.exe Ваш путь к Perl. Обратите внимание, что вместо одной обратной косой черты Вы должны поставить две!

Автор: Андрей Черный
angel07@inbox.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *