my $ui = UI->new; $ui->query_dialog( { search_with => 'DB::File' } ); package UI; sub query_dialog { my( $self, $args ) =@_; print "Name? "; my $name = ; my $search_class = $args->{search_with}; my @files = $search_class->search( { name => $name } ); ... }