Печатающая головка с сайта в Perl - PullRequest
1 голос
/ 25 февраля 2011

Мне нужен встроенный скрипт на Perl, который печатает заголовок раздела онлайн-файла. Например:

perl -MLWP::Simple -e "print head \"http:stackoverflow.com\""

Но эта печать приводит к одной строке. Мне нужно напечатать отдельные строки.

Ответы [ 4 ]

3 голосов
/ 26 февраля 2011

Еще один -

perl -MLWP::Simple -e 'print head("http://stackoverflow.com")->as_string'

Обновление, ответ / вывод & ndash;

HTTP/1.1 200 OK
Cache-Control: public, max-age=60
Connection: close
Date: Fri, 25 Feb 2011 21:49:45 GMT
Vary: *
Content-Length: 194708
Content-Type: text/html; charset=utf-8
Expires: Fri, 25 Feb 2011 21:50:46 GMT
Last-Modified: Fri, 25 Feb 2011 21:49:46 GMT
Client-Date: Fri, 25 Feb 2011 21:49:46 GMT
Client-Peer: 64.34.119.12:80
Client-Response-Num: 1

Обновлено еще раз, для полноты картины. Обобщенный, чтобы взять аргумент -

perl -MLWP::Simple -e 'print head(shift||die"Give a URL\n")->as_string'

perl -MLWP::Simple -e 'print head(shift||die"Give a URL\n")->as_string' http://stackoverflow.com

И я люблю меня, Perl, но это, вероятно, лучшее решение для этой задачи -

curl -I http://stackoverflow.com

Хотя ответы HEAD для curl v LWP отличаются в этом случае. :)

2 голосов
/ 25 февраля 2011

Ох, мне это нравится намного лучше.Требуется> 5.10.

perl -MLWP::Simple -E "say for head q(http://stackoverflow.com)"
text/html; charset=utf-8
196768
1298660195
1298660255
1 голос
/ 25 февраля 2011

Вам нужно присоединиться к списку возвратов head ().

perl -MLWP::Simple -e "print join qq(\n), head q(http://stackoverflow.com)"
text/html; charset=utf-8
196503
1298659282
1298659342
1 голос
/ 25 февраля 2011

Вызов head() возвращает список.

Этот список при печати печатается путем объединения отдельных элементов.

Вместо этого присоединитесь к "\ n":

perl -MLWP::Simple -e "print join('\n', head(\"http:stackoverflow.com\"));"

Альтернативой является добавление "\ n" к каждому элементу (это лучше, поскольку в конце также печатается "\ n"):

perl -MLWP::Simple -e 'print map { "$_\n" } head "http:stackoverflow.com";'
...