use Win32::API; my $GetLogicalDriveStrings = new Win32::API(kernel32 => GetLogicalDriveStrings => ['N', 'P'], 'N'); my $drives = "\0" x 4000; my @drives; if($GetLogicalDriveStrings->Call(length $drives, $drives)) { @drives = split /\0+/, $drives; }