use strict; my %tosca =( kein => ["Linux","HP","Sun","IBM","SGI"], tosca45 => ["Linux","HP","Sun","IBM","SGI"], tosca451 => ["Linux","HP","Sun","IBM"], tosca452 => ["Linux","HP","Sun","IBM","SGI"], tosca50 => ["Linux","HP","Sun","IBM","SGI"], tosca50B => ["Linux","HP","Sun","IBM","SGI"], ); my %solver =( Nastran => ["Linux","HP","Sun","IBM","SGI"], Solver1 => ["Linux","HP","Sun","IBM","SGI"], Solver2 => ["Linux","HP","Sun","IBM","SGI"], Solver3 => ["Linux","HP","Sun","IBM","SGI"], Solver4 => ["Linux","HP","IBM","SGI"], Solver5 => ["Linux","HP","Sun","IBM","SGI"], Solver6 => ["Linux","HP","Sun","IBM","SGI"], ); my $tosca = 'tosca451'; my $solver = 'Solver4'; for my $name (@{$tosca{$tosca}}) { print "$name\n" if grep($name eq $_,@{$solver{$solver}}); } _ _ END _ _ Linux HP IBM