Luinrandir <mailto:[EMAIL PROTECTED]> wrote: : OK.. maybe I'm trying to be too fancy. : : the package is: : ################### : package Names; : @Countries("Ireland","Wales"); : %Lord{Ireland}=("Bob","Tom"); : %Lord{Wales}=("Ted","Ned"); : : return 1; : ################# : the program is: : ################### : foreach $Country(@Names::Countries) : { : print qq|$Names::$Lord{$Country}|; : } : ################### : : I have tried several variation on this.. can't get it to work. : I need it to print the array of Ireland and then Wales.
And later: : my alternative is this, in the program: : : @[EMAIL PROTECTED]::Countries; I assume that should be Names and not NamesList. package Names; %Lords = ( Wales => [ qw( Ted Ned ) ], Ireland => [ qw( Bob Tom ) ], ); use Names; { # Use a shorter name to access %Names::Lord my $lords = \%Names::Lords; foreach my $Country ( qw( Wales Ireland ) ) { print "@{ $lords->{ $Country } }\n" if exists $lords->{ $Country }; } } __END__ If you don't know the country names ahead of time you can use the keys from %Names::Lord. @Names::Countries array is not necessary. use Names; { # Use a shorter name to access %Names::Lord my $lords = \%Names::Lords; foreach my $country ( keys %$lords ) { print "@{ $lords->{ $country } }\n"; } } HTH, Charles K. Clarkson -- Mobile Homes Specialist 254 968-8328 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>