MYSTERRIA3.0

HTML::Form Tips&Tricks

Сегодня немного о таком полезном модуле, как HTML::Form. Как уже видно из названия, этот модуль служит для парсинга и формализации HTML форм и дает множество полезных методов для модификации формализованной в объект формы с последующим ее сабмитом. Для сабмита в терминах СЕО я бы не стал пользовать этот модуль в виду того, что процесс парсинга страницы под сео надо писать самостоятельно с учетом капч, кейфраз перед полями и т.п., а вот для повседневных задач HTML::Form просто необходим, так как экономит огромное количество времени. Документация по модулю доступна на CPAN-e, где ее следует прочесть перед употреблением модуля. Так же рекомендую прогнать объект-форму через Data::Dumper для понимания, как там все внутри хранится. Иногда можно немного пошалить и что-то вкорячить напрямую в структуру данных модуля. Trick 1: создаем свое поле и добавляем в форму

my $faculty_vals = qw/foo bar huy/; my $faculty_inp = HTML::Form::ListInput->new(name=>'faculty', type=>'option', option_selected=>1, value=>$faculty_vals[int(rand(@faculty_vals))]); $faculty_inp->add_to_form($form);

Trick 2: Закачиваем файлы через поля типа "FILE" Если вам надо просто загрузить файл с диска, то никаких проблем, вставляем путь к нему на локальном диске в value соответствующего инпута формы и вперед. Иногда же надо закачать файл с рандомным названием, ну чтоб не запалили :) Тогда делаем так:

my $src_file = 'jopa_kompu.exe';
my $filename = md5_hex(time());# не делайте так в реальных программах!
my $fi = $form->find_input('FILE1');
$fi->value($src_file);
$fi->headers("Content-Disposition"=> sprintf('form-data; name="FILE1"; filename="%s"', $filename) );

Рубрики: Perl

↑ Наверх


blog comments powered by Disqus

Контакты

Igor Zinkovsky aka TLoD,Snake. Писать на электропочту, стучаться в аську 302380533, искать в Санкт-Петербурге.

© 2002-2019