#### package Model::Validate::Foo; sub on_insert { my %value_of = @_; if ( !$value_of{a} ) { die "a is required"; } if ( $value_of{b} !~ /\d+\.\d+\.\d+/ ) { die "invalid b"; } if ( !$value_of{c} ) { die "c is required if a" if $value_of{a}; } } #### ...
##
## sub avg_a { # called on insert, update of table foo # check if average(a) > 100 }