addition de multiplication
Bonjour,
J'applique mon script sur cette liste :
Code:
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:
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:
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.