linux.org.ru Хотя он и начал что-то подозревать. Я злой, да? =)
Я кажется сейчас заставлю знакомго по не знанию запустить $ cat chlen.pl
#!/usr/bin/perl
use strict;
sub chlen{
return ' 8' . '=' x $_[0] . "D\n";
}
`uptime`=~/(\d+)\sdays/ and print "Uptime (days): " . chlen($1) or die "Could not run uptime";
`free | grep Mem`=~/(\d+)/ and print "Memory (MB/20):" . chlen($1/20000) or die "Could not run free";
`cat /proc/cpuinfo | grep MHz`=~/(\d+)/ and print "CPU (MHz/50): " . chlen($1/50) or die "Could not cat cpuinfo";
`uname -r`=~/(\d+)\.(\d+).(\d+)/ and print "Kernel version:" . chlen(($2*10+$3)/2) or die "Could not run uname";
my @df = `df -P -k -x nfs` or die "Could not run df\n";
shift @df;
my ($size, $blocks);
for (@df) {
my ($fs, $blocks) = split;
$blocks *= 2 if $fs =~ m!/scsi|/sd!;
$size += $blocks/1024/750;
}
print "Num. processes:" . chlen(`ps ax|wc -l`/2);
print "Load average: " . chlen(`cat /proc/loadavg|cut -f 1 -d ''`*100);
print "Disk space: " . chlen($size/50);
my $z = 1;
given ($z) {
when ( 1 ) {
print "z equals 1!\n";
}
default {
print "z is not 1 it's — $z\n";
}
}
Прям-таки человечьим голосом молвит! Люблю когда код на перле напоминает связную речь =)
use FindBin qw($Bin);
use lib "$Bin/../../lib";
Не очень понятно зачем они там. Закомментить их конечно можно и все даже станет работать, но письмо автору модуля написал.
Решение для пайтон — всё нашлось из коробки =)
$ cat tst.py
#!/usr/bin/python
X = range(1,11)
i,n = 5,9
print reduce(lambda x,y: x+y, map(lambda x: 1./x, map(lambda x: x**2, X[i:n+1])))
Решение для перл — к сожалению пришлось ставить Language::Functional ради foldl
$ cat tst.pl
#!/usr/bin/perl -w
use Language::Functional ':all';
use strict;
my @arr = 1..10;
my ($i, $n) = (5,9);
print my $x = foldl1 {shift() + shift()} [map {1/$_} (map {$_**2} @arr[$i..$n])];
Результаты работы:
$ python tst.py
0.0861566200554
$ perl -l tst.pl
0.0861566200554296