in reply to Package-Level Variables

Will our create a package-level variable?

Well, it will create a global variable in the package's namespace. If you want the data to be private to your package, you shouldn't use our; you should put your package in a file by itself (or in a block) and use a lexical variable declared with my instead.

Or should I just be passing around hash-references

Probably, yes. (A single hash ref would probably suffice, right?) For instance, I'd probably have subs something like this:

sub process_search { my $options = shift; # . . . } sub simple_search { my $options = { SearchType => simple, # Contrived parameters for MaxMatches => 10, # illustrative purposes. }; process_search( $options ); }

Any suggestions/advice/criticism encouraged!

I notice you are using prototypes. Don't. At least not until you understand that they aren't anything like what you probably expect coming from a C++ background. Read Tom Christiansen's article about them for a detailed explanation of why they aren't for general use.

-sauoq
"My two cents aren't worth a dime.";