use strict; use warnings; open my $speedtest,"speedtest-cli --simple |" or die "Cannot open speedtest:$!"; my %speed = (DATETIME => '"' . GetDateTime()->{datetime} . '"'); while (<$speedtest>) { next unless m/(\w+): ([\d\.]+)/; $speed{$1} = $2; } close $speedtest; print join(",",map {$speed{$_}} qw|DATETIME Download Upload|),"\n"; sub GetDateTime{ local $_={}; @$_{qw|sec min hour mday mon year wday yday isdst|} =localtime(time); $_->{year}+=1900; $_->{mon}+=1; $_->{yyyymmdd} = sprintf "%04d-%02d-%02d", @$_{qw|year mon mday|}; $_->{hhmm} = sprintf "%02d:%02d", @$_{qw|hour min|}; $_->{datetime} = $_->{yyyymmdd} . " " . $_->{hhmm}; return $_ } #### "2014-12-11 22:58",53.79,7.19