Bonjour,

J'applique mon script sur cette liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Flag time :  4097 0:00:23 user1 MATLAB/42 4.4%
Flag time :  11365 0:00:42 user2 MATLAB/51 3.3%
Flag time :  11365 0:01:23 user2 MATLAB/50 1.2%
Flag time :  11365 0:02:02 user2 MATLAB/50 3.0%
Flag time :  11365 0:10:07 user2 MATLAB/50 7.1%
Flag time :  11365 0:16:37 user2 MATLAB/49 7.5%
Flag time :  11365 0:22:20 user2 MATLAB/49 7.2%
Flag time :  11365 0:24:29 user2 MATLAB/49 6.0%
Flag time :  11365 0:28:19 user2 MATLAB/49 1.2%
Flag time :  11365 0:29:14 user2 MATLAB/51 1.4%
Flag time :  18715 0:00:56 user1 MATLAB/40 3.1%
Voici mon script sans erreur :
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
#!/usr/bin/perl
use POSIX;
use strict;
use warnings;
 
open (F, 'MATLAB_s.log');
my @t = sort <F>;
 
foreach my $line (@t) {
print "$line\n";
my @col=split (/\s+/,$line);
my $pid=$col[3];
my @time=split (/:/,$col[4]);
my $login=$col[5];
print "$time[0] $time[1] $time[2]\n";
my $heures=$time[0]*3600;
my $minutes=$time[1]*60;
my $sec=$time[2];
$sec= ($heures  + $minutes  + $sec);
 
print "PID: $pid Temps :$sec Login: $Login\n";
 
}
Je ne comprend pas pourquoi cette version :
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
#!/usr/bin/perl
use POSIX;
use strict;
use warnings;
 
open (F, 'MATLAB_s.log');
my @t = sort <F>;
 
foreach my $line (@t) {
print "$line\n";
my @col=split (/\s+/,$line);
my $pid=$col[3];
my @time=split (/:/,$col[4]);
my $login=$col[5];
print "$time[0] $time[1] $time[2]\n";
my $sec= ($time[0]*3600  + $time[1]*60  + $time[3]);
print "PID: $pid Temps: $sec Login: $login\n";
}
me genère ce message d'erreur :

Use of uninitialized value in addition (+) at ./tri_col.pl line 21, <F> line 11.

J'ai essayé d'utiliser des sur plusieurs variable sans succès.
Merci de votre aide.