drieux wrote:

> On Friday, May 31, 2002, at 02:13 , Sudarsan Raghavan wrote:
>
> > while (<INPUTDATA>) {
> >         chomp;
> >         s/^\s+//;
> >         next if ((1 .. /^NPROC/) || m/^$/);
> >        # The conditions have been swapped here
> >        # Explanation for this is one of my earlier mails
> >         unless (/^Total/) {
> >                 # Assumes the line to stop searching for input starts
> > with Total
> >                 my ($user, $mem, $cpu) = (split (/\s+/))[1, 4, 6];
> >                 print "user = $user, mem = $mem, cpu = $cpu\n";
> >         }
> > }
>
> this is still generating:
>
> user = USERNAME, mem = STATE, cpu = NICE
> user = prago, mem = cpu49, cpu = 0
> user = oracle, mem = cpu46, cpu = 0
> user = prago, mem = sleep, cpu = 0
> user = oracle, mem = sleep, cpu = 0
> user = oracle, mem = sleep, cpu = 0
> user = prago, mem = sleep, cpu = 0
> user = USERNAME, mem = MEMORY, cpu = CPU
> user = prago, mem = 2.9%, cpu = 11%
> user = oracle, mem = 91%, cpu = 4.1%
> user = patrol, mem = 0.2%, cpu = 0.2%
> user = dbmsys, mem = 0.1%, cpu = 0.1%
> user = root, mem = 0.8%, cpu = 0.1%

This means the range condition check is always returning false.
Works for me though, with the same input it outputs
user = prago, mem = 2.9%, cpu = 11%
user = oracle, mem = 91%, cpu = 4.1%
user = patrol, mem = 0.2%, cpu = 0.2%
user = dbmsys, mem = 0.1%, cpu = 0.1%
user = root, mem = 0.8%, cpu = 0.1%

Can the OP confirm if it works fine

I cut-pasted the input from original mail. Can you attach the file that you are
using as input so that I can test it here.
You can also change the if to
next if (1 .. /^NPROC/ or m/^$/);
This really is not a fix just playing around with precedence

>
>
> given the input data set of:
>
>     PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
>
>   13261 prago    5728K 5240K cpu49    0    0   0:40.04 9.4% cfprsdrv/1
>   20318 oracle    519M  496M cpu46    0    0  35:47.20 3.2% oracle/1
>   12924 prago    1720K 1056K sleep    1    0   0:06.55 1.6% zcat/1
>   21244 oracle    514M  494M sleep    0    0   0:00.01 0.3% oracle/1
>   21107 oracle    526M  507M sleep    0    0   0:00.13 0.3% oracle/1
>   13310 prago     392M  101M sleep   59    0   0:01.07 0.2% syncsort/1
>    NPROC USERNAME  SIZE   RSS MEMORY      TIME  CPU
>
>      17 prago    1596M  394M   2.9%   0:48.54  11%
>      47 oracle     13G   12G    91%  38:17.25 4.1%
>       5 patrol     36M   23M   0.2%  10:53.17 0.2%
>      11 dbmsys     52M   20M   0.1%   0:00.53 0.1%
>      53 root      173M  113M   0.8%   5:32.40 0.1%
> Total: 208 processes, 875 lwps, load averages: 2.03, 2.04, 2.12
>
> cf:
> http://www.wetware.com/drieux/pbl/Sys/Admin/ciscoParse2.txt
> which given the same input file generates:
>
> user prago hogs 2.9% memory and 11% cpu
> user oracle hogs 91% memory and 4.1% cpu
> user patrol hogs 0.2% memory and 0.2% cpu
> user dbmsys hogs 0.1% memory and 0.1% cpu
> user root hogs 0.8% memory and 0.1% cpu
>   we do not like:Total: 208 processes, 875 lwps, load averages: 2.03, 2.04,
>   2.12
>
> which I think is closer to the OP's preferred choice.
>
> and may I put a plug in for the
>
>         use Inline::Files;
>
> WAY too wicked slick a solution for skanking test cases like this.
>
> ciao
> drieux
>
> ---
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


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

Reply via email to