Bonjour,

Toujours dans mes histoire de date en PERL

J'aimerais calculer un delta temps en POSIX. L'idée est de savoir combien on utilise un programme en ayant ses date de départ dans un fichier que j'ai appelé lmstat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
    user host localhost:42.0 (v2008.09) (host/29060 239), start Fri 1/21 16:53
 
 
    user host localhost:42.0 (v2008.09) (host/29060 239), start Fri 1/21 16:53
Ensuite je lui soumet le script suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
#!/usr/bin/perl
use warnings;
use strict;
use POSIX qw(mktime strftime);
 
(my $sec,my $min,my $hour,my $mday,my $mon,my $year,my $wday,my $yday,my $isdst) =localtime(time);
$year += 1900;
 
open(LMSTAT, "lmstat") || die "Impossible d'ouvrir : $!";
my @feat=<LMSTAT>;
close (LMSTAT);
 
foreach my $check  (@feat) {
        if ($check =~ /start/) { 
                my @check=split (/ /,$check);
                print "$check \n";
                print "$check[4] \n";
                my $time_start=$check[13];
                my $date_start=$check[12];
                print "FLAG Hour_start :  $time_start\n";
                print "FLAG Date_start :  $date_start\n";
 
                (my $hour_start, my $min_start) = split/:/,$time_start;
                        $hour_start=~ s/^0//;
                        $min_start=~ s/^0//;
                print "FLAG hour_start : $hour_start \n";
                print "FlAG min_start : $min_start \n";
                (my $mon_start, my $day_start) = split/\//,$date_start;
                print "FLAG mon_start:  $mon_start\n";
                print "FLAG day_start :  $day_start\n";
 
                my $local_time= mktime (0, $min, $hour, $mday, $mon, $year);
                print "FLAG local_time : $local_time \n";
                my $start_time = mktime(0, $min_start, $hour_start, $day_start, $mon_start, $year);
                print "FLAG use_time : $start_time\n";
#Delta time :
                my $used_time=$start_time - $local_time ;
                print "Flag used_time : $used_time \n";
 
                my $readable_time = localtime($used_time);
                print " $readable_time \n";
                        }
                }
Mon problème c'est que je n'arrive pas à avoir un résultat en heure minutes seconde. Je n'arrive qu'a avoir des dates .....
Est ce possible avec POSIX ? Sinon je dois installer CPAN du style Date::Time

Merci de votre aide