hors déclarations, mon script se réduit à : find(\&process, $startDir);
et ma fonction :
29:sub process {
30: if((-f $_)&(!/\cM/)) {
31: open (INPUT, $_) || die "can't open [$_] : $!";
32: my $data = <INPUT>;
33: close(INPUT);
34: my $checksum = md5_hex($data);
35: print "$checksum : $File::Find::name\n";
36: }
36: }
vraiment rien d'extraordinaire. mais j'ai quelques problèmes : la
variable $_ sensée contenir le nom complet du fichier n'est pas toujours
exploitable ! j'ai pu traité un cas ou le nom du fichier contient en
controle-M je trouve ça bizarre puisque c'est le script qui me retourne
le nom mais après, mon script plante avec une erreur :
Error Line 31:
can't open [ Read in a file] : No such file or directory
c'est lui qui me donne un nom de fichier/dossier qui n'existe pas ?
je pigais plus la :(((( en regardant ou ça plante, j'ai trouvé le
dossier coupable :), il se nomme "perl - expreg" :))) j'en déduis donc
que $_ est interprété (c'est comme ça qu'on dit ?) et que le script
essaye de faire un open du résultat de la commande "perl -expreg"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
publimike
kurtz le pirate wrote:
29:sub process { 30: if((-f $_)&(!/cM/)) { 31: open (INPUT, $_) || die "can't open [$_] : $!"; 32: my $data = <INPUT>; 33: close(INPUT); 34: my $checksum = md5_hex($data); 35: print "$checksum : $File::Find::namen"; 36: } 36: }
c'est lui qui me donne un nom de fichier/dossier qui n'existe pas ? je pigais plus la :(((( en regardant ou ça plante, j'ai trouvé le dossier coupable :), il se nomme "perl - expreg" :))) j'en déduis donc que $_ est interprété (c'est comme ça qu'on dit ?) et que le script essaye de faire un open du résultat de la commande "perl -expreg"
bon je fais quoi la ?
Plusieurs remarques en vrac, il n'est pas dit que ça règlera ton problème:
ligne 30: il manque un '&', non ? if -f && .... ligne 31: corrige par open (INPUT, "<$_") or die ... ligne 32: est-ce bien uniquement la première ligne de ton flux INPUT qui t'intéresse ? Sinon il faut déclarer @data au lieu de $data.
kurtz le pirate <kurtzlepirate@yahoo.fr> wrote:
29:sub process {
30: if((-f $_)&(!/cM/)) {
31: open (INPUT, $_) || die "can't open [$_] : $!";
32: my $data = <INPUT>;
33: close(INPUT);
34: my $checksum = md5_hex($data);
35: print "$checksum : $File::Find::namen";
36: }
36: }
c'est lui qui me donne un nom de fichier/dossier qui n'existe pas ?
je pigais plus la :(((( en regardant ou ça plante, j'ai trouvé le
dossier coupable :), il se nomme "perl - expreg" :))) j'en déduis donc
que $_ est interprété (c'est comme ça qu'on dit ?) et que le script
essaye de faire un open du résultat de la commande "perl -expreg"
bon je fais quoi la ?
Plusieurs remarques en vrac, il n'est pas dit que ça règlera ton
problème:
ligne 30:
il manque un '&', non ? if -f && ....
ligne 31:
corrige par open (INPUT, "<$_") or die ...
ligne 32:
est-ce bien uniquement la première ligne de ton flux INPUT qui
t'intéresse ? Sinon il faut déclarer @data au lieu de $data.
29:sub process { 30: if((-f $_)&(!/cM/)) { 31: open (INPUT, $_) || die "can't open [$_] : $!"; 32: my $data = <INPUT>; 33: close(INPUT); 34: my $checksum = md5_hex($data); 35: print "$checksum : $File::Find::namen"; 36: } 36: }
c'est lui qui me donne un nom de fichier/dossier qui n'existe pas ? je pigais plus la :(((( en regardant ou ça plante, j'ai trouvé le dossier coupable :), il se nomme "perl - expreg" :))) j'en déduis donc que $_ est interprété (c'est comme ça qu'on dit ?) et que le script essaye de faire un open du résultat de la commande "perl -expreg"
bon je fais quoi la ?
Plusieurs remarques en vrac, il n'est pas dit que ça règlera ton problème:
ligne 30: il manque un '&', non ? if -f && .... ligne 31: corrige par open (INPUT, "<$_") or die ... ligne 32: est-ce bien uniquement la première ligne de ton flux INPUT qui t'intéresse ? Sinon il faut déclarer @data au lieu de $data.
kurtz le pirate
In article <1hd8wg5.vpnppv1giogyeN%, (Michael H.) wrote:
kurtz le pirate wrote:
29:sub process { 30: if((-f $_)&(!/cM/)) { 31: open (INPUT, $_) || die "can't open [$_] : $!"; 32: my $data = <INPUT>; 33: close(INPUT); 34: my $checksum = md5_hex($data); 35: print "$checksum : $File::Find::namen"; 36: } 36: }
c'est lui qui me donne un nom de fichier/dossier qui n'existe pas ? je pigais plus la :(((( en regardant ou ça plante, j'ai trouvé le dossier coupable :), il se nomme "perl - expreg" :))) j'en déduis donc que $_ est interprété (c'est comme ça qu'on dit ?) et que le script essaye de faire un open du résultat de la commande "perl -expreg"
bon je fais quoi la ?
Plusieurs remarques en vrac, il n'est pas dit que ça règlera ton problème:
ligne 30: il manque un '&', non ? if -f && ....
oui bien sur.
ligne 31: corrige par open (INPUT, "<$_") or die ...
en fait j'ai déja corriger par : open(INPUT,"<",$_) or die...
ligne 32: est-ce bien uniquement la première ligne de ton flux INPUT qui t'intéresse ? Sinon il faut déclarer @data au lieu de $data. c'est tout le contenu du fichier. j'ai fais un undef $/ (slurp mode) un
peu avant.
merci
-- klp
In article <1hd8wg5.vpnppv1giogyeN%publimike@free.fr>,
publimike@free.fr (Michael H.) wrote:
kurtz le pirate <kurtzlepirate@yahoo.fr> wrote:
29:sub process {
30: if((-f $_)&(!/cM/)) {
31: open (INPUT, $_) || die "can't open [$_] : $!";
32: my $data = <INPUT>;
33: close(INPUT);
34: my $checksum = md5_hex($data);
35: print "$checksum : $File::Find::namen";
36: }
36: }
c'est lui qui me donne un nom de fichier/dossier qui n'existe pas ?
je pigais plus la :(((( en regardant ou ça plante, j'ai trouvé le
dossier coupable :), il se nomme "perl - expreg" :))) j'en déduis donc
que $_ est interprété (c'est comme ça qu'on dit ?) et que le script
essaye de faire un open du résultat de la commande "perl -expreg"
bon je fais quoi la ?
Plusieurs remarques en vrac, il n'est pas dit que ça règlera ton
problème:
ligne 30:
il manque un '&', non ? if -f && ....
oui bien sur.
ligne 31:
corrige par open (INPUT, "<$_") or die ...
en fait j'ai déja corriger par :
open(INPUT,"<",$_) or die...
ligne 32:
est-ce bien uniquement la première ligne de ton flux INPUT qui
t'intéresse ? Sinon il faut déclarer @data au lieu de $data.
c'est tout le contenu du fichier. j'ai fais un undef $/ (slurp mode) un
In article <1hd8wg5.vpnppv1giogyeN%, (Michael H.) wrote:
kurtz le pirate wrote:
29:sub process { 30: if((-f $_)&(!/cM/)) { 31: open (INPUT, $_) || die "can't open [$_] : $!"; 32: my $data = <INPUT>; 33: close(INPUT); 34: my $checksum = md5_hex($data); 35: print "$checksum : $File::Find::namen"; 36: } 36: }
c'est lui qui me donne un nom de fichier/dossier qui n'existe pas ? je pigais plus la :(((( en regardant ou ça plante, j'ai trouvé le dossier coupable :), il se nomme "perl - expreg" :))) j'en déduis donc que $_ est interprété (c'est comme ça qu'on dit ?) et que le script essaye de faire un open du résultat de la commande "perl -expreg"
bon je fais quoi la ?
Plusieurs remarques en vrac, il n'est pas dit que ça règlera ton problème:
ligne 30: il manque un '&', non ? if -f && ....
oui bien sur.
ligne 31: corrige par open (INPUT, "<$_") or die ...
en fait j'ai déja corriger par : open(INPUT,"<",$_) or die...
ligne 32: est-ce bien uniquement la première ligne de ton flux INPUT qui t'intéresse ? Sinon il faut déclarer @data au lieu de $data. c'est tout le contenu du fichier. j'ai fais un undef $/ (slurp mode) un