http://www.perlmonks.org?node_id=890110

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

Hi Monks, I have a little piece of code that is going to be part of a larger program, but it seems a bit cumbersome. It does work, but I was hoping for a more elegant solution. I'm sure in perl it can be better. I have 3 reports (doc_request, doc_errors, and doc_types) and each report has 3 sections as you can see in the code. I need to access each section of each report in the order presented...so T_Doc_Request 1st, then N_Doc_Request, followed by X_Doc_Request, then T_Doc_Errors, followed by N_Doc_Errors, etc..

my @reports = qw /doc_request doc_errors doc_types /; my %rpt = ( doc_request => [ "T_Doc_Request, N_Doc_Request, X_Doc_Request" ], doc_errors => [ "T_Doc_Errors, N_Doc_Errors, X_Doc_Errors" ], doc_types => [ "T_Doc_Types, N_Doc_Errors, X_Doc_Errors" ], ); my @queries; foreach (@reports) { @queries = split /,/, "@{$rpt{$_}}"; foreach (@queries) { print "section is: $_\n"; } splice(@queries); }

Any help would be greatly appreciated. thanks