Bonjour,


J'aimerai faire une condition sur un nombre à virgule :
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
#!/usr/bin/perl
use strict;
use warnings;
 
my $infile= 'MATLAB.log';
my @prstat= `prstat 0 1 | grep -v PID | grep -v Total`;
#print "@prstat \n";
 
foreach my $line  (@prstat) {
        my @line=split (/\s+/,$line);
        #La colonne 10 doit contenir MATLAB
        if ($line[10] =~ /MATLAB/) {
                print "Flag time :  $line[1] $line[8] $line[2] $line[10] $line[9]\n";
                my @percent=split (/%/, $line[9] );
                print "Flag pourcentage : $percent[0]\n";
                if ( $percent[0] > 1) {
                        open (WRITE, ">>$infile");
                        print WRITE "Flag time :  $line[1] $line[8] $line[2] $line[10] $line[9]\n";
                        close (WRITE);
                }
        }
}
J'ai l'erreur suivante :
Flag time : 16982 6:55:11 user1 MATLAB/66 0,1%
Flag pourcentage : 0,1
Argument "0,1" isn't numeric in numeric gt (>) at ./MATLAB_using.pl line 16.


J'ai essayé une substitution de la virgule par un point mais ma variable $percent[0] prend la valeur dans ce cas....

Merci de votre aide.