Sudarsan Raghavan wrote:
> 
> "Kipp, James" wrote:
> 
> > I am reading output from a pipe to a command called 'prstat' (like top).
> > just wanted to get some ideas on the best way to capture the data i am
> > looking for. below is an example of the output:
> 
> # INPUTDATA is the filehandle through which you are getting the input
> while (<INPUTDATA>) {
>     chomp;

chomp() isn't really needed as the split on whitespace removes newlines
(\s includes \n).

>     s/^\s+//;

If you use the default split you won't need this either.

>     next if (m/^$/ || (1 .. /^NPROC/));
>     unless (/^Total/) {
>         # Assumes the line to stop searching for input starts with Total
>         my ($user, $mem, $cpu) = (split (/\s+/))[1, 4, 6];

        my ($user, $mem, $cpu) = (split)[1, 4, 6];

>         print "user = $user, mem = $mem, cpu = $cpu\n";
>     }
> }
> close (INPUTDATA);


How about something like this:   :-)

while ( <INPUTDATA> ) {
    if ( /NPROC/ .. /^Total/ and /\d/ ) {
        my ( $user, $mem, $cpu ) = (split)[1, 4, 6];
        print "user = $user, mem = $mem, cpu = $cpu\n";
        }
    }



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to