Запуск perl скрипта linux

Как запустить perl-скрипт в linux?

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

В общем установил себе недавно убунду и не знаю как, или какой командой можно запустить cgi скрипт. Подскажите пожалуйста как? Пытаюсь запустить скрипт напрямую из папки, вылезает сообщение запустить или открыть. жму запустить ничего не происходит. Или нужно чтото установить дополнительно? Подскажите плиз.

Если кто знает, просьба по подробнее

скрипты следует запускать в терменале
открываешь терминал, с помощью команды cd переходишь в папку со скриптом
пример
cd /media/disk/program
в убунту по умолчанию должен ставиться perl, проверить это можно командой perl -v
запуск скрипта
если ты не root, то может потребоваться получить права root -a делается это командой sudo -i потом надо ввести пароль юзера который ты указывал при установке
далее пишишь команду ls -l и получаешь списо файлов в папке, в которой находишься.
слева в этом списке будет написанно чтото вроде
-rwxrwxrwx
r — право на чтение
w — право на запись
x — право на исполнение
если у твоего скрипта в этом списке нет буковки x то её нижно добавить командой chmod твой скрипт +x
теперь сам запуск скрипта
./имя твоего скрипта
удачи)))) )

(Кстати в убунту касяк с пользователем root если зайти в систему через него, то он получит полный доступ к любой папке или файлу, даже если ls -l выдаёт ———-))))

Источник

Установка и начало работы с Perl

В ней вы узнаете, как установить Perl на Microsoft Windows и как начать использовать его на Windows, Linux или Mac.

Вы узнаете, как установить и настроить среду разработки, или, говоря простым языком: какой редактор или IDE использовать для Perl-программирования?

Также мы увидим стандартный пример «Hello World».

Windows

В Windows мы будем использовать DWIM Perl. Это пакет программ, содержащий компилятор/интерпретатор Padre, Perl IDE, и ряд модулей из CPAN.

Для начала зайдите на сайт DWIM Perl и откройте страницу загрузки DWIM Perl для Windows.

Скачайте исполняемый файл и установите его в вашу систему. Предварительно пожалуйста убедитесь, что у вас не установлена любая другая версия Perl.

Конечно, разные версии Perl можно заставить работать вместе, но как это сделать потребует дополнительных разъяснений. Поэтому пусть пока у вас в системе будет установлена одна единственная версия Perl.

Linux

Большинство современных Linux-дистрибутивов поставляются со свежей версией Perl. Её мы и будем использовать. В качестве редактора вы можете установить Padre — большинство дистрибутивов дают возможность сделать это с помощью стандартного менеджера пакетов. Или вы можете выбрать любой другой текстовый редактор. Если вы дружите с Vim или Emacs, используйте его. Если нет, попробуйте Gedit — простой и удобный.

Apple

Уверен, Маки также поставляются с предустановленным Perl, ну или вы можете легко установить его с помощью стандартных средств установки.

Редактор и IDE

Хотя я это и советую, вовсе не обязательно использовать Padre IDE, чтобы писать код на Perl. В следующей части учебника я перечислю пару редакторов и IDE, которые вы можете использовать для программирования на Perl. Но даже если вы выберете другой редактор, я бы рекомендовал — для пользователей Windows — установить упомянутый выше пакет DWIM Perl.

Он идет с большим количеством готовых Perl-модулей, это сэкономит вам массу времени и сил.

Читайте также:  Intel nuc linux drivers

Видео

Вы можете посмотреть видео Hello world with Perl (англ.), которое я загрузил на YouTube. Также обратите внимание на Beginner Perl Maven video course (англ.).

Первая программа

Ваша первая программа будет выглядеть, например, так:

Рассмотрим её шаг за шагом.

Hello world

Как только вы установили DWIM Perl, вы можете нажать на «Пуск -> Все программы -> DWIM Perl -> Padre», откроется редактор с пустым новым файлом.

Как вы, наверное, заметили, команды в Perl заканчиваются точкой с запятой ; . Знак \n используется для обозначения перевода строки. Строки заключены в двойные кавычки » . Функция print печатает текст на экран. В результате выполнения этого кода Perl выведет на экран текст, заканчивающийся переводом строки.

Сохраните файл как hello.pl, чтобы затем вы запустить его командой «Run -> Run Script». Появится новое окно с результатами работы программы.

Готово, вы писали ваш первый Perl-скрипт.

Теперь давайте его немного усовершенствуем.

Perl в командной строке для тех, кто не пользуется Padre

Если вы не используете Padre или другую IDE, вы не сможете запустить скрипт прямо из редактора. По крайней мере, по умолчанию. Нужно будет открыть shell (или cmd в Windows), перейти в каталог, где вы сохранили hello.pl и набрать команду:

Так Perl-скрипты запускаются из командной строки.

say() вместо print()

Давайте немного улучшим наш однострочный Perl-скрипт:

Для начала нужно указать минимальную версию Perl, которую мы хотели бы использовать:

Теперь можете запустить скрипт еще раз, выбрав в меню «Run -> Run Script», или нажав клавишу F5. Перед запуском файл будет автоматически сохранен.

В целом, указание минимальной требуемой версии Perl является хорошей практикой.

В нашем случае это добавляет в Perl также несколько новых функций, в том числе оператор say() . say похож на print , но короче, и автоматически добавляет в конце символ перевода строки.

Вы можете переписать ваш код так:

Мы заменили print на say и убрали \n с конца строки.

Сейчас вы скорее всего используете Perl версии 5.12.3 или 5.14. Большинство современных Linux-дистрибутивов версии поставляются с Perl 5.10 или более поздней версии.

К сожалению, кое-где ещё работают старые версии Perl. В них нет оператора say() , и, кроме того, могут потребоваться некоторые другие изменения в примерах, которые мы рассмотрим позднее. В дальнейшем я буду отмечать, если используются возможности версии 5.10.

«Ремни безопасности»

Помимо прочего, в каждой скрипт я настоятельно рекомендую добавлять несколько команд, меняющих поведение Perl. Это две строки, так называемые прагмы, которые действуют подобно флагам компилятора в других языках:

Команда use говорит Perl, что нужно загрузить и использовать каждую прагму.

strict и warnings помогут вам отловить некоторые общие ошибки в коде, а иногда даже просто не дадут вам их сделать. Это очень удобно.

Чтение ввода

Теперь давайте ещё улучшим нашу программу: будем спрашивать у пользовательницы её имя, а затем выводить его на экран.

$name называется скалярной переменной, или просто: скаляр.

Переменные объявляются при помощи ключевого слова my. (По секрету заметим, что на самом деле это одно из требований, добавленных прагмой strict ).

Скалярные переменные всегда начинаются со знака доллара: $ . это инструмент для чтения строки с клавиатуры.

Введите наш новый код и запустите его, нажав клавишу F5.

Он спросит имя. Введите его и нажмите ENTER, чтобы сообщить Perl об окончании ввода.

Обратите внимание, что вывод нашей программы слегка кривой: запятая после имени появляется на новой строке. Это произошло потому, что ENTER, который вы нажали после ввода имени, попал в переменную $name .

Избавляемся от переводов строк

Это настолько распространенная в Perl задача, что есть специальная функция chomp , которая удаляет концевой перенос строки.

Читайте также:  Фишинг инструменты кали линукс

Заключение

В начало каждого скрипта, который вы пишете, всегда добавляйте use strict; и use warnings; . Также крайне рекомендуется добавлять use 5.010; .

Задания

Я обещал задания.

Попробуйте запустить следующий скрипт:

Он не выводит сообщение в одну строку. Почему? Как это исправить?

Задание №2

Напишите скрипт, который запрашивает у пользовательницы два числа, одно за другим. Затем выводит сумму этих двух чисел.

Что дальше

Следующая часть нашего учебника расскажет про редакторы, IDE и среду разработки для Perl.

Источник

Начинаем работать с Perl

Рассмотрим базовые принципы Perl, популярного языка для написания CGI скриптов — программ, которые взаимодействуют с веб сервером для создания большей динамичности веб страниц.

Для многих задач разработчики используют более современные альтернативы, такие как PHP — которые включают некоторые функции, взятые из Perl — но Perl все равно лучше для освоения базовых навыков создания CGI скриптов.

Если посмотреть, то вы обнаружите что на каждой Linux системе установлен Perl, и кроме того вы можете скачать Perl для Windows — с сайта activestate.com.

Perl — язык-интерпретатор (как PHP), и он не «строго типизированный», что означает, что вам не обязательно объявлять переменную, перед тем как её использовать, и указывать какого она типа. Вы можете написать что-то вроде этого:

Как вы видите, каждое выражение заканчивается точкой с запятой, строка заключается в апострофы.

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

В результате будет выведена строка «$a\n’»

Если использовать код

то с новой строки будет выведена сообщение «hello world»

Всегда проверяйте правильность строк внутри двойных кавычек.

Как запустить скрипт? Если вы хотите провести простой тест — используйте Perl интерактивно: откройте командное окно и наберите perl (в Windows, вам возможно придется добавить путь к файлу perl.exe).

Теперь набирайте строчки скрипта. В конце добавьте пустую строку и затем нажмите Ctrl & D. Обычно нужно сделать что-нибудь более сложное, для этого напишите свой скрипт в текстовый файл и сохраните его с расширением .pl. Затем запустите его, выполнив команду

В системе Linux вы можете первой строкой написать #!/usr/bin/perl и использовать команду chmod для того чтобы сделать файл скрипт выполняемым. Тогда для запуска скрипта вам нужно будет только написать его имя, например ./scriptname.pl. Обычно строки, начинающиеся со знака # являются комментарием, но первая строка в *nix указывает системе интерпретатор скрипта.

Программирование, как правило, включает блоки данных или команд, которые используются внутри циклов, и Perl не является исключением. Фактически он был спроектирован для работы с текстовыми файлами, то есть читает информацию находящуюся внутри них или со стандартного ввода (набор на клавиатуре) или из списка файлов в командной строке. Вот простой пример скрипта:

Сохраните файл как test.pl и запустите его используя следующую команду:

Второй test.pl можно заменить именем любого другого текстового файла. Взглянув на скрипт, можно увидеть блоки команд в цикле, заключенные в фигурные скобки.

Для задания условий в цикл while используются значки <>. Специальное указание «<>» означает что используется стандартный ввод, а специальная переменная «$_» означает текущую строку ввода. Таким образом, скрипт читает строку со стандартного ввода и выводит её. Если вы просто наберете perl test.pl, он будет ожидать пока вы наберете какую-нибудь строку и затем выведет её, и так будет продолжаться пока вы не нажмете Ctrl & D, что будет означать конец скрипта.

Читайте также:  Windows defender или kaspersky internet security

Вам так же надо использовать скобки в выражениях if — для условий используются обычные скобки, а для блока команд фигурные. В следующем куске кода мы используем еще одну часто используемую в Perl вещь — сравнение.

» сравнивает совпадают ли переменные, а оператор «!

» проверяет несовпадение. Добавть в конец скрипта следующий строки и запустите его командой perl test.pl test.pl:

Результатом будут две строки кода и перед каждой примерно такое сообщение: «Fred is here, line 7.»

Теперь нас есть простой скрипт, который ищет в файле слово «Fred», но для чего мы можем его использовать?

Например, его легко встроить в какой-нибудь полезный CGI скрипт, скажем, для поиска строки в таблице данных.

Очень часто, на простых вебсайтах работа с базами данных уже реализована. Но если у вас уже есть данные в формате Excel или похожем, вы можете сохранить их формате CSV (Comma Separate Values — данные разделенные запятой), или другом текстовом формате.

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

Давайте используем некоторые данные: составим простую таблицу с контактными номерами телефонов. Она будет содержать имя человека, и два номера.

Сохраним файл в формате CSV, и загрузим его на сервер в ту же директорию, в которой будет наш скрипт. Мы создадим скрипт для извлечения строки, содержащей данные человека, которого необходимо найти. Скрипт в конце содержит полный код.

Сначала мы посылаем заголовок, чтобы сказать веб браузеру, что передается простой текст; как и в других заголовках, это необходимо сделать c новой строки, и затем добавить пустую строку, показывающую конец заголовка и начало содержимого веб страницы.

Затем команда open читает файл, расположенный в той же директории, что и скрипт, CSV файл, который мы создали в Excel; в качестве идентификатора файла используется имя «CONTACTS». Его мы будем использовать в цикле while для чтения файла. Поскольку все данные разделены запятой, мы можем записать их в различные переменные.

Первая команда next if нужна для пропуска следующей итерации цикла; мы убеждаемся, что не выведем строку, содержащую заголовок, который Excel добавляет в CSV файл. Вторая команда используется для нескольких вещей; здесь есть сравнение, с которым мы знакомились раньше, но в конце используется маленькая буква i, которая заставляет Perl игнорировать блок.

Вторая вещь, которую мы добавили — это ассоциативный массив; Это простой массив, состоящий из имен каждого элемента.

Они выделяются фигурными скобками, а специальный массив $ENV содержит переменные окружения, которые содержат информацию о веб сервере, как части CGI системы. Переменная, которая нас интересует — QUERY_STRING, которая содержит часть адреса, стоящую после знака вопроса.

Эта часть проверяется на совпадение и пропускаются все строки, кроме совпадающих, скрипт завершает работу, выдав все контакты, которые найдет.

Таким образом, если вы сохранили скрипт на сервере под именем contacts.pl — кроме этого его возможно придется сделать исполняемым — и затем загружаете страницу http://[название_вашего_сервера]/contacts.pl, вы увидите список, состоящий из всех записей таблицы. Но если вы используете адрес вроде такого: «contacts.pl?smith», вы увидите только строку данных, в которой есть это имя.

Теперь все, что вам нужно делать — это время от времени обновлять данные. В будущем, вы можете изменить тип данных на text/html и использовать HTML тэги в командах вывода. Или вы можете создавать временные файлы и затем использовать команды Perl для поиска и замены, и записать данные в эти временные файлы для дальнейшего использования.

Чтение списка контактов из CSV файла с помощью Perl

Источник

Оцените статью