Article View: pl.comp.lang.perl
Article #52010Szukanie i podliczanie elementow w tablicy hash
From: Scottie
Date: Wed, 17 Nov 2010 13:28
Date: Wed, 17 Nov 2010 13:28
84 lines
3083 bytes
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-mailShow 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