#!/usr/bin/perl 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 %files_by_number = ( '00008' => '/foo/oradata/bar/foodb-index11.dbf', '00004' => '/foo/oradata/bar/tools01.dbf', '00003' => '/foo/oradata/bar/undotbs01.dbf', '00019' => '/foo/oradata/bar/foodb-data02.dbf', '00014' => '/foo/oradata/bar/foodb-lob01.dbf' ); #print Dumper \%files_by_channel; #print Dumper \%files_by_number; print "\n"; printf "%-10s %-15s %-40s\n", 'File#', 'Channel Name', 'File Name'; printf "%-10s %-15s %-40s\n", '-' x 10, '-' x 15, '-' x 40; foreach my $file_number (sort keys %files_by_number) { foreach $channel_name ( %files_by_channel ) { #TO DO } printf "%-10s %-15s %-40s\n", $file_number, $channel_name, $files_by_number{$file_number}; }