in reply to Use of uninitialized value

and the question is what?

Maybe what you need is a test to see if the hash entries exist? The following may help:

#!/sbcimp/perl/bin/perl use strict; use warnings; my %extend_hash = ( '6' => { 'IACI' => {'ARCX' => {'specialist' => '1', 'penny' => '0'} +}, 'MCHP' => {'ARCX' => {'specialist' => '1', 'penny' => '0'} +}, 'BC' => {'AMXO' => {'specialist' => '1', 'penny' => '0'} +}, 'WINN' => {'XISX' => {'specialist' => '1', 'penny' => '0'} +}, 'WTR_S5F4' => {'XISX' => {'specialist' => '1', 'penny' => '0'} +}, 'XLY' => {'CS' => {'specialist' => '0', 'penny' => '1'} +} } ); my %spec_hash = ( 'XISX' => { 'FCEL' => 1, 'GPS' => 1, 'MCO' => 1, 'DPZ' => 1, 'ENTG' => 1, 'PDS' => 1 } ); foreach my $symbol (sort keys %{$extend_hash{6}}) { foreach my $exch (sort keys %{$extend_hash{6}{$symbol}}) { next if !$extend_hash{6}{$symbol}{$exch}{'specialist'}; next if !exists $spec_hash{$exch}{$symbol} || $spec_hash{$exch}{$symbol} == 1; print "$symbol = '$exch'\n"; } }

If that doesn't do it for you, you need to actually ask a question and provide a run-able code sample. See I know what I mean. Why don't you? for some hints.

Perl is the programming world's equivalent of English