Cool! I'm down to 161 bytes now, short enough for a oneliner at the C:\> prompt.
for(grep/\S/,`tasklist /v /nh`){ chomp;my($p,$i,$u,$t)=unpack'A24A8x56A50x14A*',$_;$p="$p $t"unless$t eq'N/A';$p=~s/ +/ /g;$i+=0;$u=~tr/ /_/;print"$i $u $p\n"} Don't worry guys, my other scripts are far more readable :-) JP "Bob Showalter" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > JP wrote: > > The object of the code below is to output a list of space seperated > > fields with PID, username and process. The code generates te correct > > output. My guess is that my perl code can be smaller. Who dares? > > unpack() with 'A' is handy for extracting and removing trailing blanks in > one step. > > for (grep /\S/, `tasklist /v /nh`) { > chomp; > my ($proc, $pid, $user, $title) = unpack 'A24 A8 x56 A50 x14 A*', $_; > $proc = "$proc $title" unless $title eq 'N/A'; > $proc =~ s/ +/ /g; # compress multiple spaces > $pid += 0; # convert to number > $user =~ tr/ /_/; # change blanks to underscores > print join("\t", $pid, $user, $proc), "\n"; > } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>