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]