🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52010

Szukanie i podliczanie elementow w tablicy hash

#52010
From: Scottie
Date: Wed, 17 Nov 2010 13:28
84 lines
3083 bytes
Czesc!
Z powodu tego, ze narzedzia top, ps i glance (na HP-UX) pokazuja rozne
(nie dajace porownac sie) dane wyjsciowe, postanowilem skorzystac z
modulu "Proc::ProcessTable". Wszystko fajnie, ale od paru dni glowie
sie nad zliczaniem tego, co ten modul prezentuje. Poszukuje
rozwiazania zliczania elementow w tablicy w stylu ponizszej klauzuli
SQL:
SELECT sum(rssize)
FROM procprocesstable
WHERE uid IN (101, 102);

Kod:
#!/usr/bin/perl

use Proc::ProcessTable;

$ref = new Proc::ProcessTable;

foreach $proc (@{$ref->table}) {
  if(@ARGV) {
    next unless grep {$_ == $proc->{pid}} @ARGV;
  }

  print "--------------------------------\n";
  foreach $field ($ref->fields){
    print $field, ":  ", $proc->{$field}, "\n";
  }
}

Powyzszy kod robi cos takiego (debug): http://goo.gl/y35jX
Co po duzym uproszczeniu prezentuje ponizsze, przykladowe (zmyslone)
dane:
--------------------------------
uid:  0
pid:  0
cpu:  0
start:  1284802722
flag:  515
state:  sleep
procnum:  1
pctcpu:  0.000000
rssize:  0
--------------------------------
uid:  101
pid:  0
cpu:  0
start:  1284802722
flag:  515
state:  sleep
procnum:  1
pctcpu:  0.000010
rssize:  3057
--------------------------------
uid:  102
pid:  0
cpu:  2
start:  1284802722
flag:  515
state:  sleep
procnum:  1
pctcpu:  0.000002
rssize:  2048
--------------------------------
uid:  101
pid:  0
cpu:  1
start:  1284802722
flag:  515
state:  sleep
procnum:  1
pctcpu:  0.000001
rssize:  1024
--------------------------------

Problem, ktory mam, to jak podliczyc np. RSSIZE dla kazdego
uzytkownika?? Dla jednego usera (uid) to bym wiedzial, ale jak dla
wielu??

Bylbym wdzieczny, gdyby ktos zapodal jakis pomysl, jak w ogole sie za
to zabrac, bo ja na razie nie mam pojecia... :-/

Pozdrawiam,
--
Scottie
Technical Details
Message-ID: <b92886c9-29d7-49d9-8e06-13034eba8fc4@z19g2000yqb.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!news-out2.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!news-out.readnews.com!transit3.readnews.com!postnews.google.com!z19g2000yqb.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!news-out2.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!news-out.readnews.com!transit3.readnews.com!postnews.google.com!z19g2000yqb.googlegroups.com!not-for-mail
From: Scottie <scottie383@gmail.com>
Newsgroups: pl.comp.lang.perl
Subject: Szukanie i podliczanie elementow w tablicy hash
Date: Wed, 17 Nov 2010 05:28:53 -0800 (PST)
Organization: http://groups.google.com
Lines: 84
Message-ID: <b92886c9-29d7-49d9-8e06-13034eba8fc4@z19g2000yqb.googlegroups.com>
NNTP-Posting-Host: 193.109.212.35
Mime-Version: 1.0
X-Trace: posting.google.com 1290000533 6494 127.0.0.1 (17 Nov 2010 13:28:53 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 17 Nov 2010 13:28:53 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: z19g2000yqb.googlegroups.com; posting-host=193.109.212.35; posting-account=ELxU3goAAAC0N9FXVO0mEF4trg5o1BZ0
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3 ChromePlus/1.4.2.0,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit