Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
my $run = $ARGV[0];
my $run = @ARGV[0];
my ($run) = @ARGV;
my ($index) = $cpuname =~ /cpu(\d+)/;
my $cpus[$index] = foobar;
my $cpus{$cpuname} = foobar;
use Data::Dumper;
my %CPU = ();
open ( STAT, "</proc/stat" ) or die;
while (<STAT>) {
chomp;
if (/^(cpu\d?)/) {
$CPU{$1} = [(split(/\s+/))[1..7]];
}
else {last;}
}
close(STAT);
print Dumper %CPU;
[gray]#!/usr/bin/perl[/gray]
[url=http://perldoc.perl.org/functions/use.html][black][b]use[/b][/black][/url] [green]strict[/green][red];[/red]
[black][b]use[/b][/black] [green]warnings[/green][red];[/red]
[black][b]use[/b][/black] [green]diagnostics[/green][red];[/red]
[black][b]use[/b][/black] [green]Storable[/green] [red]qw/[/red][purple]freeze thaw[/purple][red]/[/red][red];[/red]
[gray][i]# I was testing in a browser, just remove this stuff[/i][/gray]
[gray][i]# if running in console[/i][/gray]
[url=http://perldoc.perl.org/functions/print.html][black][b]print[/b][/black][/url] [red]"[/red][purple]Content-type: text/html[purple][b]\n[/b][/purple][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[black][b]print[/b][/black] [red]'[/red][purple]<plaintext>[/purple][red]'[/red][red];[/red]
[url=http://perldoc.perl.org/functions/sub.html][black][b]sub[/b][/black][/url] [maroon]getcpu[/maroon] [red]{[/red]
[url=http://perldoc.perl.org/functions/my.html][black][b]my[/b][/black][/url] [blue]%HoH[/blue] = [red]([/red][red])[/red][red];[/red]
[url=http://perldoc.perl.org/functions/open.html][black][b]open[/b][/black][/url] [red]([/red] CPUSTAT, [red]'[/red][purple]cat /proc/stat |[/purple][red]'[/red] [red])[/red] or [url=http://perldoc.perl.org/functions/die.html][black][b]die[/b][/black][/url] [red]"[/red][purple]Cannot open pipe to stat: [blue]$![/blue][/purple][red]"[/red][red];[/red]
[black][b]my[/b][/black] [blue]@lines[/blue] = <CPUSTAT>[red];[/red]
[olive][b]foreach[/b][/olive] [black][b]my[/b][/black] [blue]$lines[/blue] [red]([/red][blue]@lines[/blue][red])[/red] [red]{[/red]
[url=http://perldoc.perl.org/functions/chomp.html][black][b]chomp[/b][/black][/url] [blue]$lines[/blue][red];[/red]
[olive][b]if[/b][/olive] [red]([/red] [blue]$lines[/blue] =~ [red]/[/red][purple]^(cpu[purple][b]\d[/b][/purple]?)[/purple][red]/[/red] [red])[/red] [red]{[/red]
[black][b]my[/b][/black] [red]([/red][blue]$cpu[/blue],[blue]$user[/blue],[blue]$nice[/blue],[blue]$system[/blue],[blue]$idle[/blue][red])[/red] = [url=http://perldoc.perl.org/functions/split.html][black][b]split[/b][/black][/url][red]([/red][red]/[/red][purple][purple][b]\s[/b][/purple]+[/purple][red]/[/red],[blue]$lines[/blue][red])[/red][red];[/red]
[blue]$HoH[/blue][red]{[/red] [blue]$cpu[/blue] [red]}[/red][red]{[/red] [red]'[/red][purple]user[/purple][red]'[/red] [red]}[/red] = [blue]$user[/blue][red];[/red]
[blue]$HoH[/blue][red]{[/red] [blue]$cpu[/blue] [red]}[/red][red]{[/red] [red]'[/red][purple]nice[/purple][red]'[/red] [red]}[/red] = [blue]$nice[/blue][red];[/red]
[blue]$HoH[/blue][red]{[/red] [blue]$cpu[/blue] [red]}[/red][red]{[/red] [red]'[/red][purple]system[/purple][red]'[/red] [red]}[/red] = [blue]$system[/blue][red];[/red]
[blue]$HoH[/blue][red]{[/red] [blue]$cpu[/blue] [red]}[/red][red]{[/red] [red]'[/red][purple]idle[/purple][red]'[/red] [red]}[/red] = [blue]$idle[/blue][red];[/red]
[red]}[/red]
[red]}[/red]
[url=http://perldoc.perl.org/functions/close.html][black][b]close[/b][/black][/url] CPUSTAT[red];[/red]
[url=http://perldoc.perl.org/functions/return.html][black][b]return[/b][/black][/url] \[blue]%HoH[/blue][red];[/red]
[red]}[/red]
[black][b]my[/b][/black] [blue]$rHoH[/blue][red];[/red]
[black][b]my[/b][/black] [blue]$store[/blue][red];[/red]
[black][b]my[/b][/black] [blue]$iteration[/blue] = [fuchsia]0[/fuchsia][red];[/red]
[maroon]LOOP[/maroon][maroon]:[/maroon] [olive][b]until[/b][/olive] [red]([/red] [blue]$iteration[/blue] == [fuchsia]10[/fuchsia] [red])[/red] [red]{[/red]
[olive][b]if[/b][/olive] [red]([/red][blue]$iteration[/blue] == [fuchsia]0[/fuchsia][red])[/red] [red]{[/red] [gray][i]#<-- for initializing first set of data from stat[/i][/gray]
[blue]$rHoH[/blue] = [maroon]getcpu[/maroon][red]([/red][red])[/red][red];[/red]
[blue]$store[/blue] = freeze [blue]$rHoH[/blue][red];[/red] [gray][i]#<-- first set of records "frozen"[/i][/gray]
[blue]$iteration[/blue]++[red];[/red]
[olive][b]next[/b][/olive] LOOP[red];[/red] [gray][i]#<-- go to next iteration of loop[/i][/gray]
[red]}[/red]
[olive][b]else[/b][/olive] [red]{[/red] [gray][i]#<-- we have the first set compare with the next set [/i][/gray]
[black][b]my[/b][/black] [blue]$rOld[/blue] = [maroon]thaw[/maroon][red]([/red][blue]$store[/blue][red])[/red][red];[/red] [gray][i]#<-- "thaw" old set [/i][/gray]
[blue]$rHoH[/blue] = [maroon]getcpu[/maroon][red]([/red][red])[/red][red];[/red] [gray][i]#<-- get the next set [/i][/gray]
[blue]$store[/blue] = freeze [blue]$rHoH[/blue][red];[/red] [gray][i]#<-- "freeze" new set from stat for next iteration[/i][/gray]
[olive][b]foreach[/b][/olive] [black][b]my[/b][/black] [blue]$cpu[/blue] [red]([/red] [url=http://perldoc.perl.org/functions/sort.html][black][b]sort[/b][/black][/url] [url=http://perldoc.perl.org/functions/keys.html][black][b]keys[/b][/black][/url] [blue]%$rHoH[/blue] [red])[/red] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple][blue]$cpu[/blue] [/purple][red]"[/red], [url=http://perldoc.perl.org/functions/join.html][black][b]join[/b][/black][/url][red]([/red][red]'[/red][purple],[/purple][red]'[/red],
[blue]$rHoH[/blue]->[red]{[/red][blue]$cpu[/blue][red]}[/red][red]{[/red]user[red]}[/red] - [blue]$rOld[/blue]->[red]{[/red][blue]$cpu[/blue][red]}[/red][red]{[/red]user[red]}[/red],
[blue]$rHoH[/blue]->[red]{[/red][blue]$cpu[/blue][red]}[/red][red]{[/red]nice[red]}[/red] - [blue]$rOld[/blue]->[red]{[/red][blue]$cpu[/blue][red]}[/red][red]{[/red]nice[red]}[/red],
[blue]$rHoH[/blue]->[red]{[/red][blue]$cpu[/blue][red]}[/red][red]{[/red][url=http://perldoc.perl.org/functions/system.html][black][b]system[/b][/black][/url][red]}[/red] - [blue]$rOld[/blue]->[red]{[/red][blue]$cpu[/blue][red]}[/red][red]{[/red][black][b]system[/b][/black][red]}[/red],
[blue]$rHoH[/blue]->[red]{[/red][blue]$cpu[/blue][red]}[/red][red]{[/red]idle[red]}[/red] - [blue]$rOld[/blue]->[red]{[/red][blue]$cpu[/blue][red]}[/red][red]{[/red]idle[red]}[/red],
[red])[/red][red];[/red]
[black][b]print[/b][/black] [red]"[/red][purple][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[red]}[/red]
[black][b]print[/b][/black] [red]"[/red][purple][purple][b]\n[/b][/purple][/purple][red]"[/red],[red]'[/red][purple]-[/purple][red]'[/red] x [fuchsia]30[/fuchsia],[red]"[/red][purple][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[blue]$iteration[/blue]++[red];[/red]
[url=http://perldoc.perl.org/functions/sleep.html][black][b]sleep[/b][/black][/url] [fuchsia]2[/fuchsia][red];[/red]
[red]}[/red]
[red]}[/red]
LOOP: until ( $iteration == 10 ) {