0

コードにいくつかの間違いがあります。このコードはローカルでは機能しますが、サーバーでは機能しません。

#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行目で分割された初期化されていない値$sonの使用。

4

1 に答える 1

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) {
于 2012-05-31T15:50:48.350 に答える