GoGPT Best VPN GoSearch

Значок OnWorks

eperl - Интернет в облаке

Запустите eperl в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда eperl, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


ePerl - встроенный язык Perl 5

Версия


@ V @

СИНТАКСИС


Eperl [-d имя=ценностное ] [-D имя=ценностное ] [-B начало_разделителя] [-E конечный_разделитель] [-i] [-m
Режим] [-o выходной файл] [-k] [-I каталог] [-P] [-C] [-L] [-x] [-T] [-w] [-c] [входной_файл]

Eperl [-r] [-l] [-v] [-V]

ОПИСАНИЕ


Резюме
ePerl интерпретирует файл ASCII, ощетинившийся программными операторами Perl 5, оценивая
Код Perl 5 при передаче простых данных ASCII. Он может действовать по-разному:
автономный фильтр Unix или встроенный модуль Perl 5 для общих задач генерации файлов
и как мощный язык сценариев веб-сервера для программирования динамических HTML-страниц.

Введение
The Eperl Программа является Встроенный Perl 5 Язык устный переводчик. Это действительно полноценный
представленный интерпретатор Perl 5, но с другой средой вызова и исходным файлом
макета, чем интерпретатор Perl по умолчанию (обычно исполняемый Perl or перл5 на большинстве
системы). Он разработан для генерации файлов ASCII общего назначения с философией
вложения программный код Perl 5 в данные ASCII вместо обычного способа, которым вы
встраивать данные ASCII в программу Perl 5 (обычно цитируя данные и используя их через
"распечатать" заявления). Итак, вместо того, чтобы писать простой сценарий Perl, например

#! / путь / к / perl
напечатать "foo bar \ n";
напечатать "baz quux \ n";
for ($ i = 0; $ i <10; $ i ++) {print "foo # $ {i} \ n"; }
напечатать "foo bar \ n";
напечатать "baz quux \ n";

теперь вы можете написать его как скрипт ePerl:

#! / путь / к / eperl
фу бар
Баз Кукс
<: for ($ i = 0; $ i <10; $ i ++) {print "foo # $ {i} \ n"; }:>
фу бар
Баз Кукс

Хотя вариант ePerl имеет другой макет исходного файла, семантика такая же,
т.е. оба сценария создают точно такие же результирующие данные на "STDOUT".

Намерение
ePerl - это просто связующий код, который сочетает в себе возможности программирования интерпретатора Perl 5.
библиотека с хитрой техникой встраивания. Уловка встраивания заключается в следующем: он преобразует
исходный файл в действующий сценарий Perl, который затем получает полностью оценивается только одним
внутренний экземпляр интерпретатора Perl 5. Для этого ePerl переводит все простые
код в (экранированные) строки Perl 5, помещенные в Распечатать конструкции при прохождении через все
встроенный собственный код Perl 5. Как видите, сам ePerl делает то же самое.
внутренне глупый программист должен был написать простой скрипт генерации Perl.

Из-за природы такого щетинистого кода ePerl действительно является лучшей попыткой, когда
сгенерированные данные ASCII действительно содержат более статичные, чем динамические данные. Или другими словами: Используйте
ePerl if хотеть в держать самой of генерируется ASCII данным in простой формат в то время как всего
Программирование некоторых щетиной вещи. Не используйте его при генерации чистых динамических данных. Вот оно
не дает преимуществ обычному программному коду простого сценария Perl. Итак, статический
часть должна составлять не менее 60%, иначе преимущество становится недостатком.

ePerl изначально был разработан для экстремальной ситуации: в качестве веб-сервера
язык сценариев для генерации HTML-страниц на лету. Вот вам типичный случай
что обычно 90% данных состоит из чисто статических тегов HTML и простого ASCII, в то время как
оставшиеся 10% - это программные конструкции, которые динамически генерируют дополнительный код разметки.
Это причина, по которой ePerl помимо своего стандартного режима выполнения фильтрации Unix также поддерживает
интерфейсы CGI / 1.1 и NPH-CGI / 1.1.

Встроенный Perl Синтаксис
Практически вы можете поместить любые допустимые конструкции Perl внутри блоков ePerl, используемых Perl 5.
Библиотека интерпретатора может оценить. Но есть несколько важных моментов, которые вы всегда должны
помните и никогда не забывайте при использовании ePerl:

1. Разделители всегда отбрасываются.
Сказать банально, но стоит упомянуть хотя бы раз. Разделители блоков ePerl
всегда отбрасываются и необходимы только для того, чтобы ePerl распознал встроенный Perl
конструкции. Они никогда не передаются в окончательный вывод.

2. Сгенерировано содержание и в go в "STDOUT".
Хотя вы можете определять подпрограммы, вычислять некоторые данные и т. Д. Внутри блоков ePerl
расширяются только данные, которые явно записаны в дескриптор файла "STDOUT". В других
слова: когда блок ePerl не генерирует контент на "STDOUT", он полностью
заменяется пустой строкой в ​​окончательном выводе. Но когда контент создается, он
поместите в точку блока ePerl в окончательном выводе. Обычно создается контент
через чистые конструкции «print», которые неявно используют «STDOUT», когда дескриптор файла не задан.

3. Сгенерировано содержание on «СТДЕРР» всегда лиды: в an ошибка.
Всякий раз, когда контент создается для дескриптора файла "STDERR", ePerl отображает ошибку.
(включая содержимое STDERR). Используйте это для выхода при ошибках при передаче ошибок из
ePerl блокирует вызывающую среду.

4. Фамилия точка с запятой.
Из-за следующего пункта 6 (см. Ниже) и того факта, что большинство пользователей не
помните о внутренних переводах блоков ePerl, ePerl позаботится о последних
точка с запятой. Обычно каждый блок ePerl должен заканчиваться точкой с запятой в последнем
команда.

<: cmd; ...; cmd; :>

Но когда последняя точка с запятой отсутствует, она автоматически добавляется ePerl, т.е.

<: cmd; ...; cmd:>

также правильный синтаксис. Но иногда необходимо заставить ePerl добавить
точка с запятой. Затем вы можете добавить «_» '(подчеркивание) в качестве последнего непробельного символа.
в блоке, чтобы заставить ePerl оставить последнюю точку с запятой. Используйте это для
конструкции, подобные следующим

<: если (...) {_:>
Foo
<:} еще {_:>
бар
<:}:>

где вы хотите распространить директиву Perl на большее количество блоков ePerl.

5. стенография для только "печать" блоки.
Поскольку большую часть времени ePerl используется только для интерполяции переменных, например

<: print $ VARIABLE; :>

полезно предоставить ярлык для такого рода конструкций. Таким образом, ePerl предоставляет
ярлык через символ '='. Когда это немедленно (здесь нельзя использовать пробелы)
следует за начальным ограничителем блока ePerl, оператор print неявно
сгенерировано, т.е. указанный выше блок эквивалентен

<: = $ ПЕРЕМЕННАЯ:>

Обратите внимание, что здесь также была удалена точка с запятой, потому что она добавляется автоматически.
(см. выше).

6. Особый - Special Конец линии отбрасывать команду для ePerl блоки.
ePerl предоставляет специальную команду сброса с именем "" // "'', которая отбрасывает все данные до
и включая следующий символ новой строки, когда непосредственно следует за конечным блоком
разделитель. Обычно когда ты пишешь

Foo
<: $ x = 1; :>
Кукс

результат

Foo

Кукс

потому что ePerl всегда сохраняет код вокруг блоков ePerl, даже просто символов новой строки. Но когда
ты пишешь

Foo
<: $ x = 1; :> //
Кукс

результат

Foo
Кукс

поскольку "//" 'удаляет все содержимое до конца строки, включая перевод строки.

7. ограничения in разбор.
У каждой программы есть свои ограничения, в том числе и у ePerl. Его недостаток в том, что Perl - это не только
богатый язык, он ужасен, если судить по его конструкциям. Возможно ты
знать фразу, только Perl может разбирать Perl''. Подумай об этом. Последствия этого
заключается в том, что ePerl никогда не пытается сам анализировать блоки ePerl. Он полностью полагается на
Библиотека интерпретатора Perl, потому что это единственный экземпляр, который может сделать это без
ошибки. Но проблема в том, что ePerl должен как минимум распознавать начало и конец.
позиции этих блоков ePerl.

Есть два способа: он может либо искать конечный разделитель во время синтаксического анализа, но
наименее распознавать строки в кавычках (где конечный разделитель обрабатывается как чистые данные). Или
он может просто перейти к следующему разделителю конца и сказать, что этого не произошло
внутри конструкций Perl. В ePerl 2.0 использовался второй, а в ePerl 2.1 -
первый был взят, потому что многие пользователи хотели этого, используя плохой конец
разделители типа ""> "''. Но на самом деле автор снова пересмотрел свое мнение и
решил, наконец, использовать второй подход, который используется сейчас, начиная с ePerl 2.2. Так как
в то время как первый позволяет использовать более тривиальные разделители (что само по себе не очень хорошее
idea), он не работает, когда внутри ePerl используются конструкции типа "" m | "[^"] + "|" '' и т. д.
блоки. А внутри конструкций Perl легче избежать разделителей концов (например,
через обратную косую черту в строках в кавычках), чем переписывать сложные конструкции Perl, чтобы использовать даже
количество котировок.

Итак, всякий раз, когда ваш конечный разделитель также встречается внутри конструкций Perl, вы должны избегать
это никак.

8. HTML организация преобразование.
Поскольку один из вариантов использования ePerl - это серверный язык сценариев для HTML-страниц,
существует общая проблема с редакторами HTML. Они не могут знать ePerl
блоки, поэтому, когда вы вводите эти блоки в редакторы, они обычно кодируют некоторые
символы с соответствующими объектами HTML. Проблема в том, что эта кодировка
приводит к неверному коду Perl. ePerl предоставляет возможность -C для декодирования этих сущностей
который автоматически включается в режимах CGI. См. Описание ниже под опцией -C
Больше подробностей.

Время выполнения Режимы
ePerl может работать в трех различных режимах выполнения:

Автономный Юникс фильтр Режим
Это режим работы по умолчанию при использовании в качестве инструмента генерации из оболочки Unix.
или как инструмент пакетной обработки из других программ или скриптов:

$ eperl [параметры] - <входной файл> выходной файл
$ eperl [параметры] входной файл> выходной файл
$ eperl [параметры] -o выходной файл - <входной файл
$ eperl [параметры] -o выходной файл входной файл

Как видите, ePerl можно использовать в любой комбинации STDIO и внешних файлов.
Дополнительно есть два интересных варианта использования этого режима. Сначала вы можете использовать
ePerl в сочетании с Unix притон магическая техника, чтобы неявно выбрать его как
интерпретатор вашего скрипта, аналогичный тому, к которому вы привыкли с простым Perl
устный переводчик:

#! / путь / к / eperl [параметры]
Foo
<: print "bar"; :>
Кукс

Во-вторых, вы можете использовать ePerl вместе с Bourne-Shell. Здесь Документ техника
изнутри ваших сценариев оболочки:

#!/ Бен / ш
...
eperl [параметры] - <
Foo
<: print "quux"; :>
Кукс
EOS
...

Если вам нужно сгенерировать оболочку или другие скрипты с ePerl, то есть вам нужен shebang
в выводе eperl необходимо добавить строку shebang, содержащую, например,
Сначала "#! / usr / bin / eperl", потому что eperl удалит первую строку из ввода, если он
это линия шебанга. Пример:

#! / usr / bin / eperl
#!/ Бен / ш
echo <: print "quux"; :>

приведет к следующему выводу:

#!/ Бен / ш
эхо кукс

В качестве альтернативы вы можете добавить комментарий препроцессора в первую строку, например, вот так:

#c Это комментарий для сохранения строки shebang в следующей строке
#!/ Бен / ш
echo <: print "quux"; :>

И, наконец, вы можете использовать ePerl прямо из программ Perl, используя
Разбор ::ePerl(3) пакет (при условии, что вы также установили его; см. Файл УСТАНОВИТЬ
внутри дистрибутива ePerl для более подробной информации):

#! / путь / к / perl
...
используйте Parse :: ePerl;
...
$ script = <
Foo
<: print "quux"; :>
Кукс
СРВ
...
$ result = Parse :: ePerl :: Expand ({
Скрипт => $ скрипт,
Результат => \ $ результат,
});
...
print $ result;
...

Посмотреть Разбор ::ePerl(3) для получения более подробной информации.

CGI / 1.1 отвечающий всем требованиям интерфейс Режим
Это режим выполнения, в котором ePerl использует интерфейс CGI / 1.1 веб-сервера, когда
используется как На стороне сервера Сценарии Язык в сети. ePerl переходит в этот режим
автоматически, когда установлена ​​переменная среды CGI / 1.1 "PATH_TRANSLATED" и ее
или имя файла сценария делает начинаются с префикса NPH ''нф-''. В этой среде выполнения
режим он добавляет к полученным данным префиксы HTTP / 1.0 (по умолчанию) или HTTP / 1.1 (если указано
веб-сервером) соответствующие строки заголовка ответа.

ePerl также распознает строки заголовка HTTP в начале сгенерированных скриптов.
data, то есть, например, вы можете создавать свои собственные заголовки HTTP, такие как

<? $url = "..";
напечатайте "Location: $ url \ n";
напечатайте "URI: $ url \ n \ n"; !>

...

Но обратите внимание, что, хотя вы можете выводить произвольные заголовки, большинство веб-серверов ограничивают
заголовки, которые принимаются через интерфейс CGI / 1.1. Обычно вы можете предоставить только
несколько конкретных заголовков HTTP, таких как «Местоположение» или «Статус». Если вам нужно больше контроля, вы
необходимо использовать режим интерфейса NPH-CGI / 1.1.

Кроме того, ePerl предоставляет полезную функцию в этом режиме: он может переключать свой UID / GID.
владельцу скрипта, если он работает как Unix УстановитьUID программа (см. ниже в
Безопасность и вариант `` u + s '' CHMOD(1 г.)).

Есть два общеизвестных способа использования этого режима интерфейса CGI / 1.1 в сети.
Во-первых, вы можете использовать его для явного преобразования простых файлов HTML в сценарии CGI / 1.1.
через притон техника (см. выше). Для веб-сервера Apache просто введите следующее
строка как первая строка файла:

#! / путь / к / eperl -mc

Затем переименуйте скрипт из файл.html в файл.cgi и установить его бит выполнения через

$ mv файл.html файл.cgi
$ chmod a + rx file.cgi

Теперь убедитесь, что Apache принимает файл.cgi как программа CGI, включив поддержку CGI
для каталога, где файл.cgi проживает. Для этого добавьте строку

Опции + ExecCGI

до .htaccess файл в этом каталоге. Наконец, убедитесь, что Apache действительно
распознает расширение .cgi. Возможно, вам дополнительно придется добавить следующую строку
. httpd.conf файл:

AddHandler cgi-скрипт .cgi

Теперь вы можете использовать файл.cgi вместо файл.html и воспользоваться достигнутым
возможность программирования щетиной файл.cgi с вашими блоками Perl (или
преобразование в сценарий CGI было бы бесполезно).

В качестве альтернативы (или даже дополнительно) веб-мастер может включить поддержку ePerl в более
бесшовным способом, настроив ePerl как настоящий неявный язык сценариев на стороне сервера.
Это делается путем присвоения MIME-типа различным допустимым расширениям файлов ePerl и
принудительная внутренняя обработка всех файлов с этим MIME-типом через ePerl
устный переводчик. Вы можете сделать это для Apache, добавив в свой
httpd.conf файл

Приложение AddType / x-httpd-eperl .phtml .eperl .epl
Приложение действия / x-httpd-eperl / internal / cgi / eperl
ScriptAlias ​​/ внутренний / cgi / путь / к / apache / cgi-bin

и создание копии Eperl программа в вашем CGI-каталоге:

$ cp -p / путь / к / eperl / путь / к / apache / cgi-bin / eperl

Теперь все файлы с расширениями .phtml, .eperl и .epl обрабатываются автоматически
интерпретатором ePerl. Нет необходимости в притон линия или любой локально включенный
Режим CGI.

Последний совет: если вы хотите протестировать свои скрипты в автономном режиме, просто запустите их с принудительной
Режим CGI / 1.1 из вашей оболочки. Но убедитесь, что вы подготовили все переменные среды для своего
сценарий зависит, например, от "QUERY_STRING" или "PATH_INFO".

$ export QUERY_STRING = "ключ1 = значение1 & ключ2 = значение2"
$ eperl -mc файл.phtml

NPH-CGI / 1.1 отвечающий всем требованиям интерфейс Режим
Этот режим выполнения является особым вариантом режима интерфейса CGI / 1.1, поскольку большинство
веб-серверы (например, Apache) предоставляют его для специальных целей. Он известен как Не разобранный
заголовок (NPH) Режим CGI / 1.1 и обычно используется веб-сервером, когда имя файла
программа CGI имеет префикс «nph-». В этом режиме веб-сервер не
обработка заголовков HTTP-ответа и отсутствие буферизации результирующих данных, т.е.
программа CGI фактически должна сама предоставить полный ответ HTTP. Преимущество
заключается в том, что программа может генерировать произвольные заголовки HTTP или многоблочные MIME-кодированные
сообщений.

Итак, выше мы переименовали файл в файл.cgi что немного ограничивало нас. Когда
мы альтернативно переименовываем файл.html в nph-файл.cgi и заставьте интерфейс NPH-CGI / 1.1
режим через опцию -мн тогда этот файл становится программой, совместимой с NPH-CGI / 1.1 под
Apache и другие веб-серверы. Теперь наш скрипт может предоставить собственный HTTP-ответ (ему нужно
нет, потому что, когда он отсутствует, ePerl предоставляет для него значение по умолчанию).

#! / путь / к / bin / eperl -mn
<? напечатайте «HTTP/1.0 200 Ok\n»;
print "X-MyHeader: Foo Bar Quux \ n";
print "Content-type: text / html \ n \ n";

...

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

Приложение AddType / x-httpd-eperl .phtml .eperl .epl
Приложение действия / x-httpd-eperl / internal / cgi / nph-eperl
ScriptAlias ​​/ внутренний / cgi / путь / к / apache / cgi-bin

в свой httpd.conf и запустите команду

$ cp -p / путь / к / eperl / путь / к / apache / cgi-bin / nph-eperl

из вашей оболочки. Эти is привилегированный путь of через ePerl as a На стороне сервера Сценарии
Язык, потому что it приводит самой гибкость.

Безопасность.
Когда вы устанавливаете ePerl как программу, совместимую с CGI / 1.1 или NPH-CGI / 1.1 (см. Выше для
подробное описание этих режимов) через

$ cp -p / путь / к / eperl / путь / к / apache / cgi-bin / eperl
$ chown корень / путь / к / apache / cgi-bin / eperl
$ chmod u + s / путь / к / apache / cgi-bin / eperl

or

$ cp -p / путь / к / eperl / путь / к / apache / cgi-bin / nph-eperl
$ chown корень / путь / к / apache / cgi-bin / nph-eperl
$ chmod u + s / путь / к / apache / cgi-bin / nph-eperl

то есть с УстановитьUID бит включен для корень пользователя, ePerl может переключиться на UID / GID
скрипты владелец. Хотя это очень полезная функция для программистов скриптов (потому что один
больше не нужно делать вспомогательные файлы общедоступными, а временные файлы -
доступен для записи!), это может быть опасно для вас, если вы не уверены в безопасности SetUID.
программы. Если это так, просто не устанавливайте ePerl с включенным битом SetUID! Это причина, по которой
ePerl по умолчанию устанавливается только как автономный фильтр Unix, который никогда не нуждается в этом
функцию.

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

1. Скрипт должен соответствовать следующим расширениям:
.html, .phtml, .ephtml, .epl, .pl, .cgi
2. UID вызывающего процесса должен быть действительным UID,
т.е. он должен быть найден в файле паролей системы
3. UID вызывающего процесса должен соответствовать
следующие пользователи: root, никто
4. UID владельца скрипта должен быть действующим UID,
т.е. он должен быть найден в файле паролей системы
5. GID группы скриптов должен быть действующим GID,
т.е. он должен быть найден в файле группы систем
6. Скрипт должен оставаться ниже или в хомедире владельцев.

IF ТОЛЬКО ONE OF ТЕ ШАГИ ПОТЕРПЕТЬ ПОРАЖЕНИЕ, НЕТ UID / GID ПЕРЕКЛЮЧЕНИЕ ПРИНИМАЕТ МЕСТО!. Дополнительно (если
"DO_ON_FAILED_STEP" был определен как "STOP_AND_ERROR" в eperl_security.h - не по умолчанию
определяется таким образом!) ePerl может полностью прекратить обработку и отобразить страницу с ошибкой. Это
для действительно параноидальных веб-мастеров. По умолчанию, когда на любом этапе не удалось переключить UID / GID.
просто отключен, но ePerl продолжает обработку. В качестве альтернативы вы можете отключить некоторые
шаги во время компиляции. Видеть eperl_security.h.

Также помнить которая ePerl всегда ликвидирует высокоэффективным UID / GID, независимые of
время выполнения Режим и независимые if ePerl и включается в UID / GID of владелец. При покупке недвижимости
безопасность причины, высокоэффективным UID / GID is всегда уничтожили до скрипт is казнены.

ePerl препроцессор
ePerl предоставляет собственный препроцессор, похожий на CPP в стиле, который либо включен
вручную через опцию -P или автоматически, когда ePerl работает в режиме (NPH-) CGI. Следующее
поддерживаются директивы:

"#include path"
Эта директива является директивой include, которая может использоваться для включения действительно любого материала,
но на самом деле он был разработан для включения других исходных файлов ePerl. В путь
быть относительным или абсолютным путем для локальной файловой системы или полностью определенным
URL-адрес HTTP.

В случае абсолютного пути к файлу осуществляется прямой доступ в файловой системе, а
относительный путь сначала ищется в текущем рабочем каталоге, а затем во всех
каталоги, указанные с помощью опции -I. В третьем случае (HTTP URL) файл
получает через запрос HTTP / 1.0 в сети. Здесь HTTP редиректы (коды ответов
301 и 302) также поддерживаются.

Примечание: хотя ePerl строго сохраняет номера строк при переводе щетинистых
Формат ePerl в простой формат Perl, препроцессор ePerl не может этого сделать (потому что это
заранеепроцессор, который расширяется) для этой директивы. Итак, всякий раз, когда вы используете "#include",
помните, что номера строк в сообщениях об ошибках неправильные.

Также обратите внимание на один важный аспект безопасности: потому что вы можете включать все, что есть
с этой директивой, используйте ее только для вещей, которые находятся под вашим прямым
контроль. Не используйте эту директиву для включения сторонних данных, по крайней мере, из внешних
веб-серверы. Например, скажем, у вас есть страница ePerl с "#include
http://www.foreigner.com/nice-page.html"и при следующем запросе этой страницы ваш
файловая система потеряна! Почему? Потому что иностранец признает, что вы включаете его страницу
и используете ePerl, просто добавив простой "" "'' в его
страница. Подумай об этом. ЕЩЕ НИКОГДА НЕ БЫЛ ИСПОЛЬЗОВАНИЕ #ВКЛЮЧАЮТ Для ЛЮБОЕ ДАННЫЕ КОТОРЫЙ IS НЕ ПО ВАШ СВОЯ
КОНТРОЛЬ. Вместо этого всегда используйте "#sinclude" в таких ситуациях.

"#sinclude path"
Это безопасный вариант "#include", когда после чтения данных из путь ВСЕ
Начальные и конечные ограничители ePerl удалены. Так рискованные блоки ePerl потеряли смысл
и преобразуются в обычный текст. Всегда используйте эту директиву, если хотите включить
данные, которые не находятся под вашим контролем.

"#if expr", "#elsif expr", "#else", "#endif"
Они реализуют конструкцию "#if - [# else -] # endif" в стиле CPP, но с семантикой Perl.
В то время как другие директивы являются настоящими командами препроцессора, которые оцениваются в
этап предварительной обработки, эта конструкция фактически просто преобразуется в низкоуровневый ePerl
построить, так что это фактически оценивается на этапе предварительной обработки. Это просто
удобный ярлык для следующего (где BD - это текущий разделитель начала и
ED конечный разделитель):

`` #if expr '' -> `` BD if (expr) {_ ED // ''
`` #elsif expr '' -> `` BD} elsif (expr) {_ ED // ''
`` #else '' -> `` BD} else {_ ED // ''
`` #endif '' -> `` BD} _ ED // ''

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

"#c"
Это директива комментария, которая просто отбрасывает все данные, включая
символ новой строки. Используйте это, чтобы закомментировать любой материал, даже другой препроцессор
директивы.

При условии Функциональность системы
Чтобы знать, что вы понимаете, что ePerl предоставляет удобные средства для встраивания кода Perl в
любые данные ASCII. Но теперь типичный вопрос: какой код Perl можно поместить в эти
Блоки ePerl, и предоставляет ли ePerl какие-либо специальные функции внутри этих блоков ePerl?

Ответы таковы: во-первых, вы действительно можете поставить любое Код Perl в блоки ePerl, которые
действительно для интерпретатора Perl, с которым был связан ePerl. Во-вторых, ePerl делает предоставить любые
особая функциональность внутри этих блоков ePerl, потому что Perl уже сложен
достаточно ;-)

Следствие этого: поскольку вы можете использовать любой допустимый код Perl, вы можете использовать
все доступные модули Perl 5, даже те, которые используют общие объекты (поскольку ePerl is a
Интерпретатор Perl, включая поддержку DynaLoader). Итак, перейдите к всеобъемлющему Perl
Архивная сеть (CPAN) через http://www.perl.com/perl/CPAN и бери свои любимые пакеты
которые могут облегчить вашу жизнь (как из простых скриптов Perl и скрипты ePerl)
и просто используйте конструкцию "" использовать имя; "" в любом блоке ePerl, чтобы использовать их изнутри
ePerl.

При использовании ePerl в качестве языка сценариев на стороне сервера я действительно рекомендую вам установить его на
минимум пакеты CGI.pm (текущая версия 2.36), HTML-поток (1.40) либнет (1.0505) и
libwww-perl (5.08). Если вы хотите также создавать изображения на лету, я рекомендую вам
дополнительно установить не менее GD (1.14) и Размер изображения (2.3). Интерпретатор ePerl в
в сочетании с этими действительно сложными модулями Perl 5 предоставит вам максимум
гибкость и функциональность. Другими словами: MAKE используют of максимальный ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Кредитное плечо in
Хакеры Мир of Perl as большой as возможное.

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


-d имя=ценностное
Устанавливает переменную Perl в пакете main, на которую можно ссылаться через $ name или более.
явно через $ main :: name. Команда

eperl -d имя = значение ..

фактически эквивалентно наличию



В начале входной_файл. Этот вариант может встречаться более одного раза.

-D имя=ценностное
Устанавливает переменную среды, на которую можно ссылаться через $ ENV {'variable'} внутри
Блоки Perl. Команда

eperl -D имя = значение ..

фактически эквивалентен

имя экспорта = значение; Эперл ...

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

-B начало_разделителя
Устанавливает строку разделителя начала блока Perl. Используйте это вместе с "-E", чтобы установить
различные разделители при использовании ePerl в качестве автономного языка создания HTML, пока
используя его как онлайн-скриптовый язык HTML. Разделители по умолчанию: " "
для режимов CGI и «<:» и «:>» для автономного режима фильтрации Unix.

Вы можете выбрать множество возможных вариантов: "" <: "" и "":> "" (
разделители автономного режима фильтрации ePerl по умолчанию), "" "" (по умолчанию
разделители режимов интерфейса ePerl CGI), "" "" and "" ""
(стандартный стиль языка сценариев HTML), "" "" and
"" "" (готовящийся к выпуску HTML3.2 + aka Cougar style), "" "" и "" ""
(HTML-стиль), "" "" (Стиль NeoScript и SSI) или
четное "" "" (Стиль PHP / FI; но это больше не рекомендуется, потому что он может
привести к проблемам с парсингом. Следует использовать только для обратной совместимости со старым ePerl.
версии 1.x).

Начальный и конечный разделители ищутся без учета регистра.

-E конечный_разделитель
Устанавливает строку ограничителя конца блока Perl. Также вариант -B.

-i Заставляет начальный и конечный разделители искать без учета регистра. Используйте это, когда
вы используете разделители вроде "" "..." "'' или другие, более текстовые.

-m Режим
Это заставляет ePerl работать в определенном режиме выполнения. Подробнее см. Выше
описание трех возможных режимов: Автономный фильтр (Режим= "f", т.е. вариант
-мф), Режим интерфейса CGI / 1.1 (Режим= "c", т.е. вариант -mc) или интерфейс NPH-CGI / 1.1
Режим (Режим= "n", т.е. вариант -мн).

-o выходной файл
Принудительно записывает вывод в выходной файл вместо стандартный вывод. Используйте эту опцию, когда
используя ePerl в качестве фильтра. Выходной файл ``-'наборы стандартный вывод как дескриптор вывода
явно. Обратите внимание, что этот файл относится к каталогу исходного файла, когда
режим выполнения принудительно устанавливается на CGI или NPH-CGI.

-k Заставляет ePerl сохранять текущий рабочий каталог, в котором он был запущен. За
по умолчанию ePerl перейдет в каталог, в котором остается исполняемый файл. Этот
Эта опция полезна, если вы используете ePerl в качестве автономного фильтра для временного файла.

-x Это устанавливает режим отладки, в котором ePerl выводит созданный внутри Perl скрипт в
консоль (/ dev / tty) перед его выполнением. Только для отладки проблем с входным файлом
преобразование.

-I каталог
Укажите каталог, который используется для директив #include и #sinclude
препроцессор ePerl и добавлен в @INC во время выполнения. Этот вариант может встречаться еще
чем один раз

-P Вручную включает специальный препроцессор ePerl (см. Выше). Эта опция включена
для всех режимов CGI автоматически.

-C Это включает преобразование объекта HTML для блоков ePerl. Эта опция автоматически
принудительно в режимах CGI.

Решенная проблема заключается в следующем: когда вы используете ePerl в качестве серверной стороны-
Scripting-Language для HTML-страниц, и вы редактируете исходные файлы ePerl через HTML
редактор, высока вероятность, что ваш редактор переведет некоторые введенные символы в HTML
сущности, например от `` <"'' до` `" <"''. Это приводит к недопустимому коду Perl внутри
Блоки ePerl, потому что редактор HTML ничего не знает о блоках ePerl. Используя это
опция парсер ePerl автоматически преобразует все сущности, находящиеся внутри блоков ePerl
обратно к обычным символам, поэтому интерпретатор Perl снова получает допустимые блоки кода.

-L Это позволяет использовать символ продолжения строки "\" '(обратная косая черта) вне блоков ePerl.
С помощью этой опции вы можете распределить онлайн-данные по большему количеству строк. Но используйте осторожно: это
опция изменяет ваши данные (вне блоков ePerl). Обычно ePerl действительно проходят через
все окружающие данные в виде необработанных данных. С этой опцией новые строки становятся новой семантикой.

-T Это позволило Perl Порча Режим где интерпретатор Perl принимает особые меры предосторожности
называется проверкой на заражение, чтобы предотвратить как очевидные, так и тонкие ловушки. Видеть перлсек(1) подробнее


-w Это включает предупреждения, в которых интерпретатор Perl производит прекрасную диагностику. Видеть
Perldiag(1) для получения более подробной информации.

-c Это запускает чистую проверку синтаксиса, аналогичную «perl -c».

-r Это напечатает внутренний файл README ePerl на консоль.

-l Это распечатает внутренний файл ЛИЦЕНЗИИ ePerl на консоль.

-v Это напечатает информацию о версии ePerl на консоли.

-V То же, что вариант -v но дополнительно показывает параметры компиляции Perl.

ОКРУЖАЮЩАЯ СРЕДА


Не новая Переменные показатели
"PATH_TRANSLATED"
Эта переменная CGI / 1.1 используется для определения исходного файла, когда ePerl работает как
Программа NPH-CGI / 1.1 в среде веб-сервера.

При условии Переменные показатели
"SCRIPT_SRC_PATH"
Абсолютный путь к скрипту. Используйте это, если хотите получить прямой доступ к
сценарий изнутри себя, например, для выполнения "stat ()" и других вызовов.

"SCRIPT_SRC_PATH_DIR"
Часть каталога "SCRIPT_SRC_PATH". Используйте это, если хотите получить прямой доступ
другие файлы, находящиеся в том же каталоге, что и сценарий, например, для чтения конфигурации
файлы и т. д.

"SCRIPT_SRC_PATH_FILE"
Часть имени файла "SCRIPT_SRC_PATH". Используйте этот, когда вам нужно имя
сценарий, например, для относительных ссылок на себя через URL-адреса.

"SCRIPT_SRC_URL"
Полный URL-адрес скрипта. Используйте это, когда вам нужен URL-адрес для самостоятельной
Справка.

"SCRIPT_SRC_URL_DIR"
Часть каталога "SCRIPT_SRC_URL". Используйте это, если хотите получить прямой доступ
другие файлы, находящиеся в том же каталоге, что и сценарий, через Интернет, например, для
эталонные изображения и т. д.

"SCRIPT_SRC_URL_FILE"
Часть имени файла "SCRIPT_SRC_URL". Используйте этот, когда вам нужно имя
сценарий, например, для относительных ссылок на себя через URL-адреса. Фактически то же самое, что и
«SCRIPT_SRC_PATH_FILE», но для согласованности.

"SCRIPT_SRC_SIZE"
Размер файла сценария в байтах.

"SCRIPT_SRC_MODIFIED"
Время последней модификации скрипта в секундах с 0 часов, 0 минут, 0
секунд, 1 января 1970 г., всемирное координированное время.

"SCRIPT_SRC_MODIFIED_CTIME"
Время последней модификации скрипта в cвремя(3) формат (`` СД МММ ДД ЧЧ: ММ: СС
ГГГГ \ п '').

"SCRIPT_SRC_MODIFIED_ISOTIME"
Время последней модификации скрипта в формате ISO (`` ДД-ММ-ГГГГ ЧЧ: ММ '').

"SCRIPT_SRC_OWNER"
Имя пользователя владельца скрипта.

"VERSION_INTERPRETER"
Строка идентификации ePerl.

"VERSION_LANGUAGE"
Строка идентификации используемой библиотеки интерпретатора Perl.

При условии Встроенный Фотографии
Следующие встроенные изображения доступны по URL-адресу "/ url / to / nph-eperl /"ИМЯ".gif":

"logo.gif"
Стандартный логотип ePerl. Пожалуйста, не размещайте это на своем веб-сайте.

"powered.gif"
``Питание by ePerl 2.2'логотип. Не стесняйтесь использовать это на своем веб-сайте.

Используйте eperl в Интернете с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad




×
Реклама
❤️Совершайте покупки, бронируйте или заказывайте здесь — никаких затрат, что помогает поддерживать бесплатность услуг.