Как запустить 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 и таскать это всё по разным машинам без установки, будет работать. Только соблюсти все зависимости от того, что распаковывается во временную папку.
Обновление
- Устанавливаем perl.exe и необходимые dll в d:\perl\bin (в 5.12 их 6 штук)
- Копируем tmp\что-то\cache-exiftool-xxx\inc\lib в d:\perl\lib
- Запускаем perl.exe exiftool (exiftool лежит в tmp\что-то\cache-exiftool-xxx\inc\scripts)
Если ему чего-то не хватает — сам скажет.
Обновление 2
Урезанную версию perl мне ставить некуда, но под 5.12 выдранный из распаковки exiftool и перенесённый в другое место прекрасно работает. Даже без «своего» окружения: http://pastebin.com/21ywsgcY
Может криво объяснил. От перла (на примере 5.12) нужны только
- perl.exe и dll из perl/bin
- В каталоге perl/lib оставляются только те файлы, младшие братья которых находятся в cache-exiftool-xxx\inc\lib
- Из 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 комментарий

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

программист
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