in reply to oop + named arguments

I have used this with much success in the past:

sub foo { my $self = shift; my %args = @_; do_something() if $args{jam_on_it}; }

Have you considered, perhaps, using Params::Validate?

my %args = validate(@_, { search_text => { type => SCALAR }, my_customer_id => { type => SCALAR }, });

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)