use strict; use warnings; use Win32::TieRegistry( Delimiter=>"/"); my $Glob_Key = $Registry->{"LMachine/SYSTEM/CurrentControlSet/Control/Class"} or die "Can't read LMachine/SYSTEM/CurrentControlSet/Control/Class value: $^E\n"; my @Glob_Key = keys(%{$Glob_Key}) or die "Can't read LMachine/SYSTEM/CurrentControlSet/Control/Class value: $^E\n"; for (@Glob_Key) { my $Net_Key = $Registry->{"LMachine/SYSTEM/CurrentControlSet/Control/Class/".$_} or die "Can't read LMachine/SYSTEM/CurrentControlSet/Control/Class.$_ value: $^E\n"; my @Net_Key = keys(%{$Net_Key}) or die "Can't read LMachine/SYSTEM/CurrentControlSet/Control/Class.$_ value: $^E\n"; #print @Net_Key,"\n"; for (@Net_Key) { my $Duplex = $Registry->{"LMachine/SYSTEM/CurrentControlSet/Control/Class/".$_ ."/SpeedDuplex"} or die "Can't read LMachine/SYSTEM/CurrentControlSet/Control/Class.$_ value: $^E\n"; my @Duplex = keys(%{$Net_Key}) or die "Can't read LMachine/SYSTEM/CurrentControlSet/Control/Class.$_ value: $^E\n"; print $_,"\n"; } }