use strict; use warnings; use Win32::Process::Info; my $pid = Win32::Process::Info->new (); my @info = $pid->GetProcInfo (); @info = grep { defined $_->{Name} && $_->{Name} =~ m/notepad/ } $pid->GetProcInfo (); # All processes with 'notepad' in name. for my $pid (@info){ print $pid->{"Name"}. " is running.\n"; }