use Win32::IProcess 1.4, qw( PROCESS_ALL_ACCESS PROCESS_QUERY_INFORMATION PROCESS_TERMINATE NONINHERITED ); my $pobj = new Win32::IProcess; getPids(); sub getPids { my ( @proc_list, @result ); $pobj->EnumProcesses( \@proc_list ) or die "Unable to enumerate processes: $!"; foreach my $process ( @proc_list ) { my $pid = $process->{ProcessId}; my $name = lc($process->{ProcessName}); print STDERR $pid, "\t", $name, "\n"; } return @result; }