Как прочитать значение параметра запроса из URL с помощью команды perl - PullRequest
5 голосов
/ 01 марта 2012

В оболочке мне нужно извлечь конкретный параметр запроса из URI.

Я пытался поэкспериментировать с этим, чтобы получить значение «смещения»

echo "/mypath/index.php?offset=20&query=uro" | perl -MURI -le 'chomp($url = <>); print URI->new($url)->query_form("offset")'

Но он всегда возвращает только offset=20&query=uro

Пожалуйста, помогите

Ответы [ 3 ]

4 голосов
/ 01 марта 2012

query_form возвращает хеш, измените ваш скрипт на:

perl -MURI -le 'chomp($url = <>); print +{URI->new($url)->query_form}->{offset}'

Для обработки нескольких строк:

perl -MURI -nle 'print +{URI->new($_)->query_form}->{offset}'
3 голосов
/ 01 марта 2012

Вы можете использовать модуль URI::QueryParam в дополнение к URI. Метод query_param в модуле URI::QueryParam дает запросзначения параметров.

echo "/mypath/index.php?offset=20&query=uro" | perl -MURI -le 'use URI::QueryParam; chomp($url = <>); print URI->new($url)->query_param(offset);'
1 голос
/ 01 марта 2012

Вы можете использовать основной CGI модуль:

perl -MCGI=param -e 'print param("offset")' "index.php?offset=20&query=uro"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...