Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Use of uninitialized value in split

2 réponses
Avatar
Gerard Breiner
Bonjour

#!/usr/bin/perl -w

use strict;
my @dblist = `/usr/bin/mysql -e "SHOW DATABASES" -s | grep ^syslog`;
my $dbname;
my %tab;
my @listps = `ps -ef`;
my @pidsyslog;
foreach $dbname (@dblist) {
my ($pid_mysql) = grep(/$dbname/,@listps);
(@pidsyslog) = split(/ +/, $pid_mysql); # le problème est ici
print "$pidsyslog[1]\n";
%tab=("$dbname",$pidsyslog[1]); print values(%tab); print "\n";

}
J'obtiens l'avertissement : "Use of uninitialized value in split" pour
cette ligne : (@pidsyslog) = split(/ +/, $pid_mysql);
Le contenu de $pid_mysql est : "root 18837 1 0 10:31 pts/2
00:00:00 /usr/bin/mysql syslog_orion".

Bien cordialement

Gérard Breiner
Institut d'Astrophysique Spatiale
Orsay

2 réponses

Avatar
Denis -esp2008-
Bonjour,

J'obtiens l'avertissement : "Use of uninitialized value in split" pour
cette ligne : (@pidsyslog) = split(/ +/, $pid_mysql);


Cela signifie que lors d'un tour de boucle $pid_mysql n'est pas attribué,
pour identifier le quel il suffit d'ajouter une condition de test après
le grep :

# [...]
my ($pid_mysql) = grep(/$dbname/,@listps);

if ($pid_mysql)
{
(@pidsyslog) = split(/ +/, $pid_mysql);
print "$pidsyslog[1]n";
}
else
{
print "il n'y a pas de pid pour $dbname";
}
# [...]


Bonne chance,

--
Denis

Avatar
Gerard Breiner
Oui, c'est cela. Merci beaucoup.
Gérard
"Denis -esp2008-" a écrit dans le
message de
news:
Bonjour,

J'obtiens l'avertissement : "Use of uninitialized value in split" pour
cette ligne : (@pidsyslog) = split(/ +/, $pid_mysql);


Cela signifie que lors d'un tour de boucle $pid_mysql n'est pas attribué,
pour identifier le quel il suffit d'ajouter une condition de test après
le grep :

# [...]
my ($pid_mysql) = grep(/$dbname/,@listps);

if ($pid_mysql)
{
(@pidsyslog) = split(/ +/, $pid_mysql);
print "$pidsyslog[1]n";
}
else
{
print "il n'y a pas de pid pour $dbname";
}
# [...]


Bonne chance,

--
Denis