It doesn't seem like you need the second hash at all. You just need the first one arranged differently.
use strict; use warnings; use Data::Dumper; my $channel_name; my %files_by_channel = ( 'ch1' => { '00014' => '/foo/oradata/bar/foodb-lob01.dbf', '00008' => '/foo/oradata/bar/foodb-index11.dbf', }, 'ch2' => { '00004' => '/foo/oradata/bar/tools01.dbf', '00019' => '/foo/oradata/bar/foodb-data02.dbf', '00003' => '/foo/oradata/bar/undotbs01.dbf' }, ); my %rearranged; foreach my $ch ( keys %files_by_channel ) { my $file_ref = $files_by_channel{$ch}; foreach my $file ( keys %{$file_ref} ) { $rearranged{$file} = [ $ch, $file_ref->{$file} ] } } printf "%-10s %-15s %-40s\n", 'File#', 'Channel Name', 'File Name'; printf "%-10s %-15s %-40s\n", '-' x 10, '-' x 15, '-' x 40; printf "%-10s %-15s %-40s\n", $_, @{ $rearranged{$_} } for sort keys %rearranged;
Dave
In reply to Re: How-To integrate information from two hash tables?
by davido
in thread How-To integrate information from two hash tables?
by Scottie
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |