if grep ne fonctionne pas
Bonjour,
J'ai le script suivant qui utilise le CPAN Proc::ProcessTable :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #!/usr/bin/perl
use strict;
use warnings;
use Proc::ProcessTable;
#use POSIX qw(strftime);
my $FORMAT = "%-6s %-10s %-8s %-24s %s\n";
my $t = new Proc::ProcessTable;
foreach my $p ( @{$t->table} ){
if (grep (/EMPIRE/, @{$p->cmndline} )) {
printf($FORMAT, "PID", "TTY", "STAT", "START", "COMMAND");
printf($FORMAT,
$p->pid,
$p->ttydev,
$p->state,
scalar(localtime($p->start)),
$p->cmndline);
}
} |
Il me revoie l'erreur suivante :
Can't use string ("init [5] ") as an ARRAY ref while "strict refs" in use at ./Monitor_process.pl line 11.
Je pense que cela vient que le mot clé EMPIRE est contenu dans un PATH avec des slash, j'ai donc essayé plusieurs façon du style avec /*EMPIRE*/ ou /^EMPIRE/ sans sucés. Je n'ai pas trouvé de doc adapté à mon cas.
Merci de votre aide....