Thanks Kevin, that did it.
Mark G.
----- Original Message -----
From: "Kevin Pfeiffer" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, June 29, 2003 5:45 AM
Subject: Re: refs to hashes
> In article <[EMAIL PROTECTED]>, Mark G wrote:
>
> > Hi All,
> >
> > I need to read in some data and put it into a data structure ex:
> >
> > knife #product name
> > 3 #quantity
> > 1 #price
> >
> > I would like to hold in as a hash referancing other hashes ex:
> > $ref=read_data();
> >
> >
> >
> > sub read_data{
> > open $RD,"< value.dat" || print "could not process request\n";
> >
> > while( chomp ( $product = <$RD> ) ){
> > chomp ( $quantity = <$RD> );
> > chomp ( $price = <$RD> );
> >
> > $inventory{$product}={
> > quantity=> $quantityr,
> > price => $price
> > };
> > }
> >
> > return \%inventory;
> > }
> >
> > now how can I access the elements for example:
> >
> > foreach( sort keys %{ $ptr } ){
> > print the quantity and price of each product
> > if a given product exist print its price
> > }
>
> Here is what I came up with:
> sub price_list {
> my $ref = shift;
> my $format = "%15s %4s %5.2f \n";
> printf "%15s %4s %5s\n\n", "Product Name", "Qty.", "Price";
> foreach my $product ( sort keys %{ $ref } ){
>
> printf $format, $product, $ref->{$product}{quantity},
$ref->{$product}{price};
>
> # If ea. product has lots of attributes, this add'l loop pulls the
> # values for all keys, but you might have to modify order (store
> # attribute names in an ordered array)?
> # my @line;
> # push @line, $product;
> # foreach( keys %{ $ref->{$product} } ){
> # push @line, $ref->{$product}{ $_ };
> # }
> # printf $format, @line;
>
> } # end of product loop
> }
>
> (Disclaimer - just trying this myself - no warranty)
> --
> Kevin Pfeiffer
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]