use Data::Dumper; # Get proc info via wmic (not available on all versions of windows)... my @procs = split(/^\s*\cM\n/m, `wmic process list /format:value`); shift(@procs); # Remove initial blank line # Iterate through each process... foreach my $p (@procs) { $p =~ s/\cM//g; # Grrrr, rotten windows my %node = split(/[=\n]/, $p); # Hashify information print Dumper(\%node); }