Получение первых N байт по http
Aug. 1st, 2011 04:36 pm
#! perl
use LWP::UserAgent
use Try::Tiny
my $chunk;
try { new LWP::UserAgent()->get ($url, ':content_cb' => sub { $chunk = $_[0]; die },
':read_size_hint' => 32); };
однострочник.
# perl -MLWP::UserAgent -le 'try { new LWP::UserAgent()->get ($ARGV[0], \
'':content_cb'' => sub { print $_[0]; exit }, '':read_size_hint'' => $ARGV[1]); }' \
http://www.google.fi/images/srpr/logo2w.png 32 | file -
/dev/stdin: PNG image data, 275 x 95, 8-bit colormap, non-interlaced
no subject
Date: 2011-08-01 08:06 pm (UTC)трёхколёсныйоднострочный велосипед-то не едет в том виде, в котором он приведён (syntax error).И кстати, документация на LWP говорит, что "However, there is no guarantee that's how big the $data string will actually be. It is merely a hint, which LWP may disregard." То есть это всё безобразие вообще может не работать случайным образом. И, кстати, запускать perl без -w -- дурной тон (см. раздел BUGS в man perl) :-)
no subject
Date: 2011-08-01 08:33 pm (UTC)2. да, try надо удалить.
3. да, но пока не подводил.
4. однострочники можно :)
no subject
Date: 2011-08-01 09:40 pm (UTC)1a. Это что, не просто перловые скрипты от рута пускаем, а ещё и ssh рута разрешает? Ой. Или это мимикрия?
2. во-во
3. во-во
4. #! perl кто написал? ;-)
no subject
Date: 2011-08-02 04:25 am (UTC)предвидя дальнейeие рассуждения, да, noexec.
1a. да, PS1="# ".
4. а, это. схема использования.