$VAR1 = { '' => [ '', 1, '' ] }; #### $x->GetValues(\%vals ); #print Dumper \%vals; for my $item (keys %vals) { #next if ($item eq ''); #din't work #next if ($item=~ /\W+/g ); # nor did this #next if ($item=~ /\W/g ); # no #next if ($item =~ /^[^\w]/); # no next unless ($item !~ /\W/); #no print "$item"; } print "---------\n"; #### $x->GetValues(\%vals ); #print Dumper \%vals; $rec->{app} = $vals{DisplayName}[2] if ( exists $vals{DisplayName}); $rec->{path} = $vals{InstallSource}[2] if ( exists $vals{InstallSource}); print "App : $rec->{app} print "Path :$rec->{path} \n"; print "---------\n"; #### Use of uninitialized value in concatenation (.) or string at U:\scripts\listapps4.pl line 23. App : --------- Use of uninitialized value in concatenation (.) or string at U:\scripts\listapps4.pl line 23. App : --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Apple Quicktime Pro 5.0.2 --------- App : Internet Explorer Q837251 --------- #### $rec->{app} = $vals{DisplayName}[2] if ( exists $vals{DisplayName}); $rec->{path} = $vals{InstallSource}[2] if ( exists $vals{InstallSource}); print "$rec->{app}" if ($rec->{app}); print "$rec->{path}" if ($rec->{path}); #### $x->GetValues(\%vals ); $rec->{app} = $vals{DisplayName}[2] if ( exists $vals{DisplayName}); if ( exists $vals{InstallSource}) { $rec->{path} = $vals{InstallSource}[2]; } else { $rec->{path} = 'N/A'; } push (@source,$rec) if ($rec->{app}); } $Key->Close; } } print "\nListing Application information\n"; for my $apps (@source) { print "DisplayName\t: $apps->{app}"; print "InstallSource\t: $apps->{path}"; print "------------------------------------------------\n"; }