use Win32::Setupsup; die if(!Win32::Setupsup::GetProcessList('', \@proc, \@threads)); foreach $item (@proc) { print "name: ${$item}{'name'}; pid: ${$item}{'pid'}\n";} foreach $item (@threads) { print "tid: ${$item}{'tid'}; pidx: ${$item}{'process'}; process: ${$proc[${$item}{'process'}]}{'name'}\n"; }