Bennco99 has asked for the wisdom of the Perl Monks concerning the following question:

I found this code to pull disk drive properties.
#!perl use Win32::OLE('in'); use constant wbemFlagReturnImmediately => 0x10; use constant wbemFlagForwardOnly => 0x20; $computer = <STDIN>; $objWMIService = Win32::OLE->GetObject ("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection fai +led.\n"; $colItems = $objWMIService->ExecQuery ("SELECT * FROM Win32_LogicalDisk","WQL",wbemFlagReturnImmediately + | wbemFlagForwardOnly); foreach my $objItem (in $colItems) { print "Description: $objItem->{Description}\n"; print "Device ID: $objItem->{DeviceID}\n"; print "File System: $objItem->{FileSystem}\n"; print "Free Space: $objItem->{FreeSpace}\n"; print "Name: $objItem->{Name}\n"; print "Size: $objItem->{Size}\n"; print "System Name: $objItem->{SystemName}\n"; print "Volume Serial Number: $objItem->{VolumeSerialNumber}\n"; print "\n"; }
When I run it it get properties for all attached drives & network mapped drives.
Description: 3 1/2 Inch Floppy Drive Device ID: A: File System: Free Space: Name: A: Size: System Name: Computer1 Volume Serial Number: Description: Local Fixed Disk Device ID: C: File System: NTFS Free Space: 60143833088 Name: C: Size: 80023715840 System Name: Computer1 Volume Serial Number: 3C009544 Description: CD-ROM Disc Device ID: D: File System: CDFS Free Space: 0 Name: D: Size: 732608512 System Name: Computer1 Volume Serial Number: 3467A882 Description: Network Connection Device ID: F: File System: NTFS Free Space: 1024006098944 Name: F: Size: 1610608492544 System Name: Computer1 Volume Serial Number: D4855886
I only want to print if the "Description: $objItem->{Description}" equals the "Logical Fixed Drive"
How do I accomplish this?

Replies are listed 'Best First'.
Re: Print list value from foreach loop
by GrandFather (Saint) on Aug 09, 2006 at 22:20 UTC

    Put:

    next unless $objItem->{Description} eq "Logical Fixed Drive";

    as the first line of your foreach loop.


    DWIM is Perl's answer to Gödel
      That did it. Thank you very much.