gnuplot画图;现值班表是execl做的,想法:用perl智能排班,CGI显示

gnuplot画图;现值班表是execl做的,想法:用perl智能排班,CGI显示

各位好,小弟初学Perl,想了很久没有得出,请教各位:
su-2.05# dig sina.com.cn +trace

; <<>> DiG 9.3.1 <<>> sina.com.cn +trace
;; global options:  printcmd
.                       266820  IN      NS      A.ROOT-SERVERS.NET.
.                       266820  IN      NS      B.ROOT-SERVERS.NET.
.                       266820  IN      NS      C.ROOT-SERVERS.NET.
.                       266820  IN      NS      D.ROOT-SERVERS.NET.
.                       266820  IN      NS      E.ROOT-SERVERS.NET.
.                       266820  IN      NS      F.ROOT-SERVERS.NET.
.                       266820  IN      NS      G.ROOT-SERVERS.NET.
.                       266820  IN      NS      H.ROOT-SERVERS.NET.
.                       266820  IN      NS      I.ROOT-SERVERS.NET.
.                       266820  IN      NS      J.ROOT-SERVERS.NET.
.                       266820  IN      NS      K.ROOT-SERVERS.NET.
.                       266820  IN      NS      L.ROOT-SERVERS.NET.
.                       266820  IN      NS      M.ROOT-SERVERS.NET.
;; Received 500 bytes from 218.108.244.135#53(218.108.244.135) in 1 ms

cn.                     172800  IN      NS      E.DNS.cn.
cn.                     172800  IN      NS      NS.CERNET.NET.
cn.                     172800  IN      NS      A.DNS.cn.
cn.                     172800  IN      NS      B.DNS.cn.
cn.                     172800  IN      NS      C.DNS.cn.
cn.                     172800  IN      NS      D.DNS.cn.
;; Received 292 bytes from 192.228.79.201#53(B.ROOT-SERVERS.NET) in 357 ms

sina.com.cn.            21600   IN      NS      ns1.sina.com.cn.
sina.com.cn.            21600   IN      NS      ns2.sina.com.cn.
sina.com.cn.            21600   IN      NS      ns3.sina.com.cn.
;; Received 131 bytes from 203.119.29.1#53(E.DNS.cn) in 204 ms

sina.com.cn.            600     IN      A       202.108.33.32
sina.com.cn.            86400   IN      NS      ns1.sina.com.cn.
sina.com.cn.            86400   IN      NS      ns2.sina.com.cn.
sina.com.cn.            86400   IN      NS      ns3.sina.com.cn.
;; Received 147 bytes from 202.106.184.166#53(ns1.sina.com.cn) in 163 ms

su-2.05#



利用perl得出1+357+204+163的值。

谢谢各位!

直接算这个数值加法?还是需要程序匹配后取出数值相加?
程序匹配后取出值相加
很容易的,建议你看看正则表达式一章。
写了个shell的,我也在学perl,也没写出来呢

dig sina.com.cn +trace | grep ms | awk '{sum=sum+$8}END{print sum}'


[Copy to clipboard] [ - ]
CODE:
my $string = `dig sina.com.cn +trace`;
print $string;
my $time;
while($string =~ /in\s(\d+)\sms/g){
    print "$1 ms\t"; $time+=$1;
}
print "\nResult:  $time ms\n";

#!/usr/bin/perl


use strict;
use warnings;

my $date=`date`;
print $date;
my $sina=`dig sina.com.cn +trace`;
if ($sina =~ /(\d+) ms.*?(\d+) ms.*?(\d+) ms.*?(\d+) ms/s) {
        print "sina.com.cn\t\t";
        print $1+$2+$3+$4;
        print "\n";
}
注意 非贪婪数量词?
还是这个代码好。


my $string = `dig sina.com.cn +trace`;
print $string;
my $time;
while($string =~ /in\s(\d+)\sms/g){
    print "$1 ms\t"; $time+=$1;
}
print "\nResult:  $time ms\n";
但是这个代码是错误的。。。。得出结果是最后的值。