#!/usr/bin/perl
#####################################################
# uptime - determine Linux' uptime
# Mike Schilli, 2002 (m@perlmeister.com)
#####################################################
use warnings;
use strict;
use Date::Calc qw(Normalize_DHMS);
use Inline "C";

my $secs = uptime();

my ($d,$h,$m,$s) = Normalize_DHMS(0, 0, 0, $secs);

printf "Uptime: $d days $h hours $m mins $s secs\n";

__END__
__C__

#include <sys/sysinfo.h>

long uptime() {
   struct sysinfo si;

   if(sysinfo(&si) == 0) {
       return si.uptime;
   } else {
       return -1L;
   }
}
