http://qs1969.pair.com?node_id=1148461

KimberTLE has asked for the wisdom of the Perl Monks concerning the following question:

Having difficulty coming-up with what the prototype for my sub might look like. If coded as is (below), the sub works; the caller sends named parameters, the sub checks for useful data, does the caller's bidding. A sample of things I've tried for prototypes are:
sub ConfigRead($ @ %); sub ConfigRead(;$ @ %); sub ConfigRead($ \@ \%); sub ConfigRead(;$ \@ \%);
My actual code without the prototype resembles this:
#!/usr/bin/perl -w use strict; my @aFieldHeaders; my %hFieldConfigs; my $sConfigFile = 'mydata.csv'; ConfigRead(sFILE => $sConfigFile, apHEAD => \@aFieldHeaders, hpFIELDCONF => \%hFieldConfigs); # my array and hash now have some cool stuff in 'em! sub ConfigRead { my %hArgs = ( sFILE => 'BAD', # lazy user alert! whine & die apHEAD => 'BAD', # ^^^ see comment above hpFIELDCONF => 'BAD', # by now you know the drill! @_, # user demands come from here ); # stick some cool stuff in their variables }
Suggestions, solutions and/or winning lottery ticket numbers for Wednesday's drawing gratefully accepted!