2011-09-07 37 views

回答

0

所以,你想一個循環,你希望它在表達式中。這要求map

(map { $_ => THE_SAME_RULE } qw(key1 key2 .. keyn)) 
2

這些值只是數據,所以您可以有一個額外的變量來保存規則,然後在構建規則集時引用該變量。例如:

my $email = ['NOT_BLANK', 'EMAIL_LOOSE']; 
my $result = FormValidator::Simple->check($query => [ 
    mail1 => $email, 
    mail2 => $email, 
]); 

從理論上講,你可以建立起來的規則,整個庫,然後使用該庫無處不在:

my $result = FormValidator::Simple->check($query => [ 
    mail => $AskersRules::EMAIL, 
    phone => $AskersRules::PHONE, 
    # etc. 
]); 

那麼你就不必再重複自己,你必須一個用於重複使用和測試目的的中央庫。

我想你也可以這樣做:

{ ks => [ 'key1', 'key2' ] } => THE_SAME_RULE 

如果這就是你追求的。從fine manual

my $result = FormValidator::Simple->check($q => [ 
    { mails => ['mail1', 'mail2'] } => [ 'DUPLICATION' ], 
]) 
+0

最簡潔的應該是像'[mail1,mail2] => $ email',它是否支持這樣的東西? – asker

+0

@asker:可能是我的更新中的東西?還有一些額外的語法涉及到,我不確定這是否是你要做的。我通常使用圖書館的方式,以便所有內容排列在漂亮的欄目中。 –

+0

這很酷,讓我試試:) – asker

相關問題