Chris Garaffa wrote: > Hello all, > I'm working on a site for a t-shirt company, and doing the order process > in Perl. > I've got everything working, and working fine, but I was wondering about > different ways to go about doing this: > > $the_order = new CGI; > $the_sleeve_type = $the_order->param('sleeve_type'); > $the_previous_step = $the_order->param('step'); > %product_to_number = (); > %number_to_description = (); > $product_to_number{"short"} = "21"; > $product_to_number{"long"} = "20"; > $number_to_description{"21"} = "short sleeved t-shirt"; > $number_to_description{"20"} = "long sleeved t-shirt"; > > (The above is simplified... There are many entries in product_to_number > and number_to_description, as well as many more params passed to > $the_order. > Now, how do I go about defining multidimensional arrays, and then > accessing them? What I have now is this: > > $product_number = $product_to_number{$the_sleeve_type}; > $product_description = $number_to_description{$product_number}; > print "[$product_number] [$product_description] "; > > but I'd like to be able to get rid of %product_description altogether > and make calls to a multidimensional hash > Any ideas? >
Well if you're hardcoding the values as above you can write: #!/bin/perl -w use strict; my %products=(); $products{short}= { number => 21, description => 'short sleeved t-shirt', }; $products{long}= { number => 20, description => 'long sleeved t-shirt', }; print "$products{short}{number} $products{short}{description}\n"; print "$products{long}{number} $products{long}{description}\n"; If the values are coming from variables the syntax is essentially the same, i.e. my $short='short'; my $shortnum=21; my $shortdescription='short sleeved t-shirt'; $products{$short}= { number => $shortnum, description => $shortdescription, }; There are, of course, other ways to write this. What's going on is that each value in %products is a reference to an anonymous hash. Perl doesn't really have hashes of hashes- it has hashes of references to hashes. Tagore Smith -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]