<div dir="ltr"><div style="font-family:monospace,monospace" class="gmail_default">Приветствую.<br></div><div style="font-family:monospace,monospace" class="gmail_default"><br>Похоже, нашёл нужное: <br><br><a href="https://metacpan.org/pod/Input::Validator">https://metacpan.org/pod/Input::Validator</a><br><br></div><div style="font-family:monospace,monospace" class="gmail_default">Но если кто-то знает ещё - YW!<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-09-03 11:23 GMT+03:00 Alessandro Gorohovski <span dir="ltr"><<a href="mailto:an.gorohovski@gmail.com" target="_blank">an.gorohovski@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Здравствуйте,<div><br></div><div>/Я|хочу/i;</div><div><br></div><div> </div></div><div class="gmail_extra"><br><div class="gmail_quote">3 сентября 2016 г., 11:09 пользователь Konstantin S. Uvarin <span dir="ltr"><<a href="mailto:khedin@gmail.com" target="_blank">khedin@gmail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div><div><div><div><div><div>Приветствую. <br><br></div><div>Может, подскажет кто модуль? Просьба не холиварить на тему "лучше-хуже", просто "огласите весь список" (с).<br></div><div><br> Хочу фильтр/валидатор/иное очистное сооружение для форм. Требования примерно такие: 
<br> <br>* инициализируем один раз, валидируем 100500 раз;<br>* на входе хеш параметр => строка;<br>* валидация параметра, как минимум, включает regexp, required =1|0 и дефолтное значение;<br>* на выходе всё, что выжило после валидации, или пусто, если не прошло валидацию что-то из required. (Если дохнет - тоже ок). Если какой-то мараметр мусор - он просто молча выкидывается;
<br>* опционально хеш с непрошедшими валидацию как второй return; 
<br>* опционально - strict mode, т.е. если есть лишние или хоть один параметр defined и провалил валидацию - нафиг;<br> <br>Т.е. псевдокод: 
<br>my $cleaner = My::Validator->( \%per_param_validation_profile<wbr>);
<br># much later
<br>my $safe_data = $cleaner->sanitize( \%evil_user_input );
<br>my ($safe_data, $failed_param_details) = $cleaner->sanitize( \%evil_user_input );<br><br></div>На CPAN-е валидаторов, ввв-валидаторов и пр., понятное дело, три дня греби лопатой - я не смог продраться. <br><br></div>Был один как мне нужно, только наоборот - <br></div>my $val = My::Validator->new( $query );<br></div>$val->check( \%profile );<br><br></div>Но я-то хочу закешировать правила и применять к разным инпутам, а не наоборот :) <br><br></div>Спасибо!<br><br>--<br></div>Konstantin S. Uvarin<br></div>
<br></div></div><span class="HOEnZb"><font color="#888888">--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
<br></font></span></blockquote></div><br></div>
<br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div><div><font face="monospace,monospace">Konstantin S. Uvarin<br></font></div><font face="monospace,monospace">jabber: see <from><br></font></div><font face="monospace,monospace">skype: kuvarin<br></font></div><font face="monospace,monospace"><a href="http://github.com/dallaylaen">http://github.com/dallaylaen</a><br></font></div></div>
</div>