no save
Assistance
Achat
News

Forum | Linux/Unix
[Perl] souci lecture fichier csv
lami20j, le mer. 24 janv. 2007 à 19:46:55
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.

Précédentbob031
janv. 07
Vince17
janv. 07
Suivant
REPONSES
Vince17
janv. 07
bob031
janv. 07
lami20j
janv. 07
Vince17
janv. 07
lami20j
janv. 07
Vince17
janv. 07
Vince17
janv. 07
lami20j
janv. 07
Vince17
févr. 07
Version Web
Réalisé par RedShift
no save