my %q=@_; #### #!/usr/bin/perl #A quick easy way to do it given @keys (array of keys) and @values #(array of values): #@hash{@keys} = @values; #This will set up the key/value pairs in %hash. #The real pain here is that the files have to be in sync otherwise #the data becomes a mess. #Given the above: my @MyArray1 = qw(5 4 3 2 1 6 9 11 12); my @MyArray2 = qw(cat dog mouse mice tree shrub sap unix max); if ( scalar(@MyArray1) != scalar(@MyArray2) ) { printf "Expecting two equal size arrays, but got the following:\n"; printf "MyArray1: %5d MyArray2: %5d\n"; die "Incorrect data setup"; } my %MyHash = (); while ( scalar(@MyArray1) ) { my $MyKey = pop(@MyArray1); my $MyData = pop(@MyArray2); $MyHash{$MyKey} = $MyData; } foreach my $MyKey (sort {$a <=> $b} keys %MyHash) { printf "%4d: %-s\n", $MyKey, $MyHash{$MyKey}; }