lorsque j'exécute le code ci-dessous sur un fichier dont le nom contient des
accents (par exemple: matériel.txt), le script se plante et donne le message
d'erreur suivant :
Can't call method "mtime" on an undefined value at /blahblah/myScript.pl
J'utilise perl 5.8.1 sous Solaris 5.8
use File::stat;
$st = stat($file);
$mtime = $st->mtime;
Comment faire pour que ce code supporte les noms de fichiers qui contiennent
des caractères spéciaux ?
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
Paul Gaborit
À (at) Fri, 19 Nov 2004 17:31:12 +0100, "Pierre-Yves" <pyu-at-belbone.be> écrivait (wrote):
lorsque j'exécute le code ci-dessous sur un fichier dont le nom contient des accents (par exemple: matériel.txt), le script se plante et donne le message d'erreur suivant :
Can't call method "mtime" on an undefined value at /blahblah/myScript.pl
J'utilise perl 5.8.1 sous Solaris 5.8
use File::stat;
$st = stat($file); $mtime = $st->mtime;
Comment faire pour que ce code supporte les noms de fichiers qui contiennent des caractères spéciaux ?
Vérifier l'encodage des accents :
1- sur le filesystem Solaris (ici, c'est iso-latin-1 mais je pense que c'est configurable)
2- dans vos scripts Perl (utf8 ou iso-latin-1)
Ils doivent être les mêmes ou alors vous devez passer par du réencodage. Un autre moyen serait de demander au système lui-même de vous fournir le nom (via opendir par exemple).
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Fri, 19 Nov 2004 17:31:12 +0100,
"Pierre-Yves" <pyu-at-belbone.be> écrivait (wrote):
lorsque j'exécute le code ci-dessous sur un fichier dont le nom contient des
accents (par exemple: matériel.txt), le script se plante et donne le message
d'erreur suivant :
Can't call method "mtime" on an undefined value at /blahblah/myScript.pl
J'utilise perl 5.8.1 sous Solaris 5.8
use File::stat;
$st = stat($file);
$mtime = $st->mtime;
Comment faire pour que ce code supporte les noms de fichiers qui contiennent
des caractères spéciaux ?
Vérifier l'encodage des accents :
1- sur le filesystem Solaris (ici, c'est iso-latin-1 mais je pense
que c'est configurable)
2- dans vos scripts Perl (utf8 ou iso-latin-1)
Ils doivent être les mêmes ou alors vous devez passer par du réencodage. Un
autre moyen serait de demander au système lui-même de vous fournir le nom (via
opendir par exemple).
--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Fri, 19 Nov 2004 17:31:12 +0100, "Pierre-Yves" <pyu-at-belbone.be> écrivait (wrote):
lorsque j'exécute le code ci-dessous sur un fichier dont le nom contient des accents (par exemple: matériel.txt), le script se plante et donne le message d'erreur suivant :
Can't call method "mtime" on an undefined value at /blahblah/myScript.pl
J'utilise perl 5.8.1 sous Solaris 5.8
use File::stat;
$st = stat($file); $mtime = $st->mtime;
Comment faire pour que ce code supporte les noms de fichiers qui contiennent des caractères spéciaux ?
Vérifier l'encodage des accents :
1- sur le filesystem Solaris (ici, c'est iso-latin-1 mais je pense que c'est configurable)
2- dans vos scripts Perl (utf8 ou iso-latin-1)
Ils doivent être les mêmes ou alors vous devez passer par du réencodage. Un autre moyen serait de demander au système lui-même de vous fournir le nom (via opendir par exemple).
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
Denis -esp2008-
Bonsoir,
$st = stat($file); $mtime = $st->mtime;
Je ne vais pas re-répondre à la question, mais je signal au passage que selon l'utilisation du script derrière, il peut être plus simple de faire un -M sur le fichier.
-- Denis
Bonsoir,
$st = stat($file);
$mtime = $st->mtime;
Je ne vais pas re-répondre à la question, mais je signal au passage que
selon l'utilisation du script derrière, il peut être plus simple de
faire un -M sur le fichier.
Je ne vais pas re-répondre à la question, mais je signal au passage que selon l'utilisation du script derrière, il peut être plus simple de faire un -M sur le fichier.