我在課堂上使用的方法調用命名參數,並想知道是否有以確保沒有未知參數傳遞最佳實踐。這是我在做什麼的Perl:命名參數驗證的最佳實踐
sub classmethod {
my $self = shift;
my %args = (
"param1" => "default1",
"param2" => "default2",
@_
)
if (my @invalid = grep { !/^(param1|param2)$/ } keys %args) {
croak "received unknown arg(s) ".join(",", @invalid)." from ".caller();
}
}
這是一個正確的方式前進,或可能會導致性能問題?
最佳, 馬庫斯
我已經投票贊成這兩個模塊似乎是有用的驗證參數。我不會讓這是一個被接受的答案,因爲使用另一個模塊來檢查不需要的術語似乎有些矯枉過正。無論如何,感謝您的努力! – Marcus