Salut,
C'est bien que tu as trouvé :-)
Cependant la manière dont tu as écrit ton script n'est pas très propre ni correcte
Par exemple
$nom[$j] = ($hote,$IP);
tu affectes à un scalaire une liste, ce qui veut dire que $nom[$i] va prendre la valeur de $IP
l'opérateur virgule sait s'il est dans un contexte scalaire ou dans un contexte de liste
Autre exemple
($hote,$IP) = split /;/, <ADRIP>;
ici tu dois faire un split pour chaque ligne de fichier dans ton cas $_ et pas <ADRIP>
et d'ailleurs à chaque passage de ligne les variables sont remplacées et à la fin du fichier tu n'auras que la dernière ligne splitée
Pour ne pas parler de l'horreur :-))
print DB
"\$\TTL\t86400\n",
"@\tIN\tSOA\t ent.toto.fr. root.toto.fr. (\n",
"\t\t\t\t1997022700\t; Serial\n",
"\t\t\t\t28800\t; Refresh\n",
"\t\t\t\t14400\t; Retry\n",
"\t\t\t\t3600000\t; Expire\n",
"\t\t\t\t86400 )\t; Minimum\n",
"\n",
"@\tIN\tNS\tent.toto.fr\n",
"ent\tIN\tA\t10.2.2.145\n",
"test\tIN\tCNAME\tent\n";
Moi j'aurais écrit comme ça
$t="\t" x 4; # le nombre de tabulations
print DB "\$\TTL\t86400
@\tIN\tSOA\t ent.toto.fr. root.toto.fr. (
${t}1997022700\t; Serial
${t}28800\t; Refresh
${t}14400\t; Retry
${t}3600000\t; Expire
${t}86400 )\t; Minimum\n
@\tIN\tNS\tent.toto.fr
ent\tIN\tA\t10.2.2.145
test\tIN\tCNAME\tent\n"; A ne pas oublier non plus d'indenter ton code.


