我想在perl舞者做一個簡單的表單驗證,但我想知道什麼是驗證簡單參數的最佳方法(例如,字段不能爲空,電子郵件的有效性,最小長度一個字段)中的舞者/ Perl裏沒有任何額外的插件或CPAN模塊簡單的表單驗證在舞者/ perl
這裏是到目前爲止的代碼
post '/register' => sub {
my $db = connect_db();
my $sql = 'insert into users (username, email, password, motivation) values (?, ?, ? ,?)';
my $sth = $db->prepare($sql) or die $db->errstr;
$sth->execute(params->{'username'}, params->{'email'},params->{'password'}, params->{'motivation'}) or die $sth->errstr;
set_flash('Hey you signed up !');
redirect '/thanks';
};
我沒有谷歌,我發現幾種方法使用狀CPAN模塊,以做驗證: :Foo但是沒有那個怎麼辦?
謝謝你的回覆。那麼爲什麼我想避免使用cpan模塊的原因是,在Ruby中,每場需要一行代碼,例如電子郵件驗證if self.email =='' 錯誤<<'電子郵件不能爲空' elsif!(email!=〜/ \ A \ Z | \ A([^ @ \ s] +)@((?: [-a-z0-9] + \。)+ [az] {2,})\ Z/i) 錯誤<<'電子郵件必須具有有效格式'是否真的*在Perl中,例如另一個模板,cpan模塊+單獨的文件來定義驗證標準?我只是想確保我不會錯過像Ruby中那樣簡單的事情......謝謝 – devnull
如果你真的認爲在Ruby中這很容易,那麼你可以用完全相同的方式在Perl中完成。在Perl中,您可能會說'add_error('message here')',而不是定義'add_error'輔助函數來將消息推送到全局數組。最終這就是Data :: Form :: Validator正在做的事情,但是以一種更加結構化和可重用的方式(例如:它有一個電子郵件地址的規則,所以你不需要一個正則表達式)。同樣在我看來,它簡化了讓一個幫助者返回一整套有效輸入或根本沒有任何東西的邏輯。 –
授予,非常感謝。如果我沒有太多要求,並希望其他未來觀衆的利益,你可以通過使用data :: validator(如用戶名,電子郵件,密碼,動機)的樣本驗證來優化您的回覆,假設用戶名檢查應該存在,請發送電子郵件至sytnax和現有的密碼相匹配的2個字段和動機有一定的長度?我認爲這將是有益的!如果太多問我明白 – devnull