如何处理“使用未初始化的值”警告?

时间:2012-05-31 14:47:07

标签: perl

我的代码中有一些错误。此代码在本地工作,但不在我的服务器上。

#Vérification de la concordance BD ->  Sons
for (my $k = 0; $k < scalar(@tableau_de_donnees); $k++) {
    my $donnee = $tableau_de_donnees[$k];
    if ($donnee) {
        my @une_donnee = split(/\./, $donnee);    #enlève l'extension
        for (my $l = 0; $l < scalar(@tableau_de_sons); $l++) {
            my $son    = $tableau_de_donnees[$l];
            my @un_son = split(/\./, $son);       #enlève l'extension
            if ($une_donnee[0] eq ($un_son[0])) {
                $trouver_son = "1";
            }
        }
        if ($trouver_son == "0") {
            print "Le fichier "
              . $tableau_de_donnees[$k]
              . " est introuvable. \n";
        }
        $trouver_son = "0";
    } else {
        print "Fin";
    }
}

这是日志:

  

在verif_db_physio.pl第141行第2行的字符串eq中使用未初始化的值。

     

在verif_db_physio.pl第139行第2行的split中使用未初始化的值$ son。

1 个答案:

答案 0 :(得分:3)

我认为这样:

my $son    = $tableau_de_donnees[$l];

应该是这个::

my $son    = $tableau_de_sons[$l];

您可以通过更改

来完全避免此问题
for (my $l = 0; $l < scalar(@tableau_de_sons); $l++) {
    my $son    = $tableau_de_donnees[$l];

for my $son (@tableau_de_sons) {