J'ai un problème avec la fonction POSIX strftime et la localisation.
J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que je
modifie dans mon script l'environnement au travers de la variable %ENV pour
dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN {
delete $ENV{"LANG"};
}
use POSIX qw{strftime};
sub rfc822date() {
strftime("%a, %e %b %Y %T", localtime(time));
}
print rfc822date(), "\n";
La variable LANG est positionnée à "fr" dans mon environnement :
% echo $LANG
fr
Si je lance l'exécution, voici ce que j'obtiens :
% perl rfc822date.pl
mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la variable
LANG le temps de l'exécution du programme. Si je supprime en dehors du
script cette variable, j'obtins le résultat voulu :
% unsetenv LANG
% perl ~/rfc822date.pl
Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur du
script ? Si quelqu'un a une idée, je suis preneur.
"Denis Joiret" a écrit dans le message de news:c77jcv$7r3$
Bonjour,
J'ai un problème avec la fonction POSIX strftime et la localisation. J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que je
modifie dans mon script l'environnement au travers de la variable %ENV pour
dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN { delete $ENV{"LANG"}; }
use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement : % echo $LANG fr
Si je lance l'exécution, voici ce que j'obtiens : % perl rfc822date.pl mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la variable
LANG le temps de l'exécution du programme. Si je supprime en dehors du script cette variable, j'obtins le résultat voulu : % unsetenv LANG % perl ~/rfc822date.pl Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur du
script ? Si quelqu'un a une idée, je suis preneur.
Denis Joiret
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant
LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w
use POSIX qw{:locale_h};
use POSIX qw{strftime};
sub rfc822date() {
strftime("%a, %e %b %Y %T", localtime(time));
}
"Denis Joiret" <Denis.Joiret@inria.fr> a écrit dans le message de
news:c77jcv$7r3$1@news-rocq.inria.fr...
Bonjour,
J'ai un problème avec la fonction POSIX strftime et la localisation.
J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que
je
modifie dans mon script l'environnement au travers de la variable %ENV
pour
dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN {
delete $ENV{"LANG"};
}
use POSIX qw{strftime};
sub rfc822date() {
strftime("%a, %e %b %Y %T", localtime(time));
}
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement :
% echo $LANG
fr
Si je lance l'exécution, voici ce que j'obtiens :
% perl rfc822date.pl
mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la
variable
LANG le temps de l'exécution du programme. Si je supprime en dehors du
script cette variable, j'obtins le résultat voulu :
% unsetenv LANG
% perl ~/rfc822date.pl
Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur
du
script ? Si quelqu'un a une idée, je suis preneur.
"Denis Joiret" a écrit dans le message de news:c77jcv$7r3$
Bonjour,
J'ai un problème avec la fonction POSIX strftime et la localisation. J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que je
modifie dans mon script l'environnement au travers de la variable %ENV pour
dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN { delete $ENV{"LANG"}; }
use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement : % echo $LANG fr
Si je lance l'exécution, voici ce que j'obtiens : % perl rfc822date.pl mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la variable
LANG le temps de l'exécution du programme. Si je supprime en dehors du script cette variable, j'obtins le résultat voulu : % unsetenv LANG % perl ~/rfc822date.pl Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur du
script ? Si quelqu'un a une idée, je suis preneur.
Denis Joiret
FDA
Denis Joiret wrote:
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w use POSIX qw{:locale_h}; use POSIX qw{strftime};
sub rfc822date() {
Pas de "use locale;" ?
Denis Joiret wrote:
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant
LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w
use POSIX qw{:locale_h};
use POSIX qw{strftime};
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w use POSIX qw{:locale_h}; use POSIX qw{strftime};
sub rfc822date() {
Pas de "use locale;" ?
Denis Joiret
Bonjour,
De ce que je comprends, "use locale;" est un pragma qui sert à faire prendre en compte la localisation pour les opérateurs build-in de perl, comme sort, gt, lt, etc. Ici pour mon besoin, il s'agit d'appeler une fonction externe de perl (strftime) via le module POSIX, je ne pense donc pas que cela puisse servir. En plus, ce que je veux est justement ne pas utiliser la localisation, donc cela serait plutôt "no locale;" que "use locale;".
De toutes façon, quelle que soit la forme utilisée, cela ne fonctionne pas :
% cat rfc822date-bis.pl #!/usr/local/bin/perl5 -w use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
no locale; print rfc822date(), "n"; use locale; print rfc822date(), "n";
% perl ~/rfc822date-bis.pl jeu, 6 mai 2004 16:31:27 jeu, 6 mai 2004 16:31:27 %
Denis
"FDA" a écrit dans le message de news:4098a9e4$0$11486$
Denis Joiret wrote:
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w use POSIX qw{:locale_h}; use POSIX qw{strftime};
sub rfc822date() {
Pas de "use locale;" ?
Bonjour,
De ce que je comprends, "use locale;" est un pragma qui sert à faire prendre
en compte la localisation pour les opérateurs build-in de perl, comme sort,
gt, lt, etc. Ici pour mon besoin, il s'agit d'appeler une fonction externe
de perl (strftime) via le module POSIX, je ne pense donc pas que cela puisse
servir. En plus, ce que je veux est justement ne pas utiliser la
localisation, donc cela serait plutôt "no locale;" que "use locale;".
De toutes façon, quelle que soit la forme utilisée, cela ne fonctionne pas :
% cat rfc822date-bis.pl
#!/usr/local/bin/perl5 -w
use POSIX qw{strftime};
sub rfc822date() {
strftime("%a, %e %b %Y %T", localtime(time));
}
no locale;
print rfc822date(), "n";
use locale;
print rfc822date(), "n";
% perl ~/rfc822date-bis.pl
jeu, 6 mai 2004 16:31:27
jeu, 6 mai 2004 16:31:27
%
Denis
"FDA" <armingaud@noos.fr> a écrit dans le message de
news:4098a9e4$0$11486$79c14f64@nan-newsreader-03.noos.net...
Denis Joiret wrote:
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant
LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w
use POSIX qw{:locale_h};
use POSIX qw{strftime};
De ce que je comprends, "use locale;" est un pragma qui sert à faire prendre en compte la localisation pour les opérateurs build-in de perl, comme sort, gt, lt, etc. Ici pour mon besoin, il s'agit d'appeler une fonction externe de perl (strftime) via le module POSIX, je ne pense donc pas que cela puisse servir. En plus, ce que je veux est justement ne pas utiliser la localisation, donc cela serait plutôt "no locale;" que "use locale;".
De toutes façon, quelle que soit la forme utilisée, cela ne fonctionne pas :
% cat rfc822date-bis.pl #!/usr/local/bin/perl5 -w use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
no locale; print rfc822date(), "n"; use locale; print rfc822date(), "n";
% perl ~/rfc822date-bis.pl jeu, 6 mai 2004 16:31:27 jeu, 6 mai 2004 16:31:27 %
Denis
"FDA" a écrit dans le message de news:4098a9e4$0$11486$
Denis Joiret wrote:
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w use POSIX qw{:locale_h}; use POSIX qw{strftime};
sub rfc822date() {
Pas de "use locale;" ?
Scetbon Cyril
Et pourquoi $ENV{LC_ALL}="" ne fonctionne pas ? quelqu'un a une explication ? je pensais que celà modifier la variable d'environnement durant le script et que c'était pris en compte par les commandes suivantes.
Denis Joiret wrote:
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w use POSIX qw{:locale_h}; use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
"Denis Joiret" a écrit dans le message de news:c77jcv$7r3$
Bonjour,
J'ai un problème avec la fonction POSIX strftime et la localisation. J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que
je
modifie dans mon script l'environnement au travers de la variable %ENV
pour
dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN { delete $ENV{"LANG"}; }
use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement : % echo $LANG fr
Si je lance l'exécution, voici ce que j'obtiens : % perl rfc822date.pl mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la
variable
LANG le temps de l'exécution du programme. Si je supprime en dehors du script cette variable, j'obtins le résultat voulu : % unsetenv LANG % perl ~/rfc822date.pl Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur
du
script ? Si quelqu'un a une idée, je suis preneur.
Denis Joiret
Et pourquoi $ENV{LC_ALL}="" ne fonctionne pas ?
quelqu'un a une explication ?
je pensais que celà modifier la variable d'environnement durant le
script et que c'était pris en compte par les commandes suivantes.
Denis Joiret wrote:
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant
LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w
use POSIX qw{:locale_h};
use POSIX qw{strftime};
sub rfc822date() {
strftime("%a, %e %b %Y %T", localtime(time));
}
"Denis Joiret" <Denis.Joiret@inria.fr> a écrit dans le message de
news:c77jcv$7r3$1@news-rocq.inria.fr...
Bonjour,
J'ai un problème avec la fonction POSIX strftime et la localisation.
J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que
je
modifie dans mon script l'environnement au travers de la variable %ENV
pour
dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN {
delete $ENV{"LANG"};
}
use POSIX qw{strftime};
sub rfc822date() {
strftime("%a, %e %b %Y %T", localtime(time));
}
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement :
% echo $LANG
fr
Si je lance l'exécution, voici ce que j'obtiens :
% perl rfc822date.pl
mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la
variable
LANG le temps de l'exécution du programme. Si je supprime en dehors du
script cette variable, j'obtins le résultat voulu :
% unsetenv LANG
% perl ~/rfc822date.pl
Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur
du
script ? Si quelqu'un a une idée, je suis preneur.
Et pourquoi $ENV{LC_ALL}="" ne fonctionne pas ? quelqu'un a une explication ? je pensais que celà modifier la variable d'environnement durant le script et que c'était pris en compte par les commandes suivantes.
Denis Joiret wrote:
J'ai trouvé. Il suffit de rajouter un appel à setlocale en positionnant LC_ALL à "". Voici le script modifié et qui fonctionne cette fois:
#!/usr/local/bin/perl5 -w use POSIX qw{:locale_h}; use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
"Denis Joiret" a écrit dans le message de news:c77jcv$7r3$
Bonjour,
J'ai un problème avec la fonction POSIX strftime et la localisation. J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que
je
modifie dans mon script l'environnement au travers de la variable %ENV
pour
dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN { delete $ENV{"LANG"}; }
use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement : % echo $LANG fr
Si je lance l'exécution, voici ce que j'obtiens : % perl rfc822date.pl mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la
variable
LANG le temps de l'exécution du programme. Si je supprime en dehors du script cette variable, j'obtins le résultat voulu : % unsetenv LANG % perl ~/rfc822date.pl Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur
du
script ? Si quelqu'un a une idée, je suis preneur.
Denis Joiret
Jack
Bonjour,
rfc1766 pourrait-elle t'aider?
Jack
Le 04/05/2004 10:14, :
Bonjour,
J'ai un problème avec la fonction POSIX strftime et la localisation. J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que je modifie dans mon script l'environnement au travers de la variable %ENV pour dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN { delete $ENV{"LANG"}; }
use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement : % echo $LANG fr
Si je lance l'exécution, voici ce que j'obtiens : % perl rfc822date.pl mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la variable LANG le temps de l'exécution du programme. Si je supprime en dehors du script cette variable, j'obtins le résultat voulu : % unsetenv LANG % perl ~/rfc822date.pl Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur du script ? Si quelqu'un a une idée, je suis preneur.
Denis Joiret
Bonjour,
rfc1766 pourrait-elle t'aider?
Jack
Le 04/05/2004 10:14, :
Bonjour,
J'ai un problème avec la fonction POSIX strftime et la localisation.
J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que je
modifie dans mon script l'environnement au travers de la variable %ENV pour
dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN {
delete $ENV{"LANG"};
}
use POSIX qw{strftime};
sub rfc822date() {
strftime("%a, %e %b %Y %T", localtime(time));
}
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement :
% echo $LANG
fr
Si je lance l'exécution, voici ce que j'obtiens :
% perl rfc822date.pl
mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la variable
LANG le temps de l'exécution du programme. Si je supprime en dehors du
script cette variable, j'obtins le résultat voulu :
% unsetenv LANG
% perl ~/rfc822date.pl
Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur du
script ? Si quelqu'un a une idée, je suis preneur.
J'ai un problème avec la fonction POSIX strftime et la localisation. J'aimerais afficher la date en anglais, mais je n'y arrive pas, bien que je modifie dans mon script l'environnement au travers de la variable %ENV pour dupprimer la variable d'environnement "LANG".
Voici le script :
#!/usr/local/bin/perl5 -w
BEGIN { delete $ENV{"LANG"}; }
use POSIX qw{strftime};
sub rfc822date() { strftime("%a, %e %b %Y %T", localtime(time)); }
print rfc822date(), "n";
La variable LANG est positionnée à "fr" dans mon environnement : % echo $LANG fr
Si je lance l'exécution, voici ce que j'obtiens : % perl rfc822date.pl mar, 4 mai 2004 10:05:25
Pourtant, la ligne delete dans le block BEGIN devrait supprimer la variable LANG le temps de l'exécution du programme. Si je supprime en dehors du script cette variable, j'obtins le résultat voulu : % unsetenv LANG % perl ~/rfc822date.pl Tue, 4 May 2004 10:05:41
Comment obtenir ce résultat sans modifier mon environnement à l'extérieur du script ? Si quelqu'un a une idée, je suis preneur.
Denis Joiret
Denis Joiret
Bonjour,
Pas vraiment, cette rfc décrit la manière d'informer sur le langage utilisé (ex: "fr" => langue française)
Mon problème n'est pas un problème de définition des valeurs, mais un problème de manipulation spécifique à l'implémentation sous Un*x.
Je n'ai pas compris pourquoi on ne peut pas agir en modifiant seulement les variables d'environnement liées au locale (LANG, LC_*), c'est pourtant bien ce que la documentation standard indique (man 3 locale)
Petite précision: si j'avais mis dans un block BEGIN la ligne "delete $ENV{LANG}", c'est pour que la destruction de la variable soit effective au moment du "use POSIX qw{strftime}". Cela ne suffit cependant pas, et créer une variable "LC_ALL" ne règle pas non plus le problème. Seule la methode avec "setlocale" fonctionne correctement, et encore uniquement si je supprime également la variable "LANG", ce qui est contraire à ce qu'indique la page de manuel de la fonction "setlocale(3)" et "locale(7)" qui précise que "LC_ALL" prévaut sur le reste, notamment sur "LANG".
Denis
"Jack" a écrit dans le message de news:c7g168$
Bonjour,
rfc1766 pourrait-elle t'aider?
Jack
Bonjour,
Pas vraiment, cette rfc décrit la manière d'informer sur le langage utilisé
(ex: "fr" => langue française)
Mon problème n'est pas un problème de définition des valeurs, mais un
problème de manipulation spécifique à l'implémentation sous Un*x.
Je n'ai pas compris pourquoi on ne peut pas agir en modifiant seulement les
variables d'environnement liées au locale (LANG, LC_*), c'est pourtant bien
ce que la documentation standard indique (man 3 locale)
Petite précision: si j'avais mis dans un block BEGIN la ligne "delete
$ENV{LANG}", c'est pour que la destruction de la variable soit effective au
moment du "use POSIX qw{strftime}". Cela ne suffit cependant pas, et créer
une variable "LC_ALL" ne règle pas non plus le problème. Seule la methode
avec "setlocale" fonctionne correctement, et encore uniquement si je
supprime également la variable "LANG", ce qui est contraire à ce qu'indique
la page de manuel de la fonction "setlocale(3)" et "locale(7)" qui précise
que "LC_ALL" prévaut sur le reste, notamment sur "LANG".
Denis
"Jack" <jack.sardin@rd.francetelecom.com> a écrit dans le message de
news:c7g168$m9j3@news.rd.francetelecom.fr...
Pas vraiment, cette rfc décrit la manière d'informer sur le langage utilisé (ex: "fr" => langue française)
Mon problème n'est pas un problème de définition des valeurs, mais un problème de manipulation spécifique à l'implémentation sous Un*x.
Je n'ai pas compris pourquoi on ne peut pas agir en modifiant seulement les variables d'environnement liées au locale (LANG, LC_*), c'est pourtant bien ce que la documentation standard indique (man 3 locale)
Petite précision: si j'avais mis dans un block BEGIN la ligne "delete $ENV{LANG}", c'est pour que la destruction de la variable soit effective au moment du "use POSIX qw{strftime}". Cela ne suffit cependant pas, et créer une variable "LC_ALL" ne règle pas non plus le problème. Seule la methode avec "setlocale" fonctionne correctement, et encore uniquement si je supprime également la variable "LANG", ce qui est contraire à ce qu'indique la page de manuel de la fonction "setlocale(3)" et "locale(7)" qui précise que "LC_ALL" prévaut sur le reste, notamment sur "LANG".
Denis
"Jack" a écrit dans le message de news:c7g168$
Bonjour,
rfc1766 pourrait-elle t'aider?
Jack
Jack
Bonjour,
Il est utile de préciser l'OS, car certains systèmes ne supportent pas le formatage. La rfc1766 permet d'aménager dans certains langages (ex: php) la compatibilité Unix et Windows, l'utilisation de setlocale en conjonction avec strftime est alors nécessaire. C'est ce qui se passe ailleurs mais dans perl?
Bon courage JacK
Le 10/05/2004 09:22, :
Bonjour,
Pas vraiment, cette rfc décrit la manière d'informer sur le langage utilisé (ex: "fr" => langue française)
Mon problème n'est pas un problème de définition des valeurs, mais un problème de manipulation spécifique à l'implémentation sous Un*x.
Je n'ai pas compris pourquoi on ne peut pas agir en modifiant seulement les variables d'environnement liées au locale (LANG, LC_*), c'est pourtant bien ce que la documentation standard indique (man 3 locale)
Petite précision: si j'avais mis dans un block BEGIN la ligne "delete $ENV{LANG}", c'est pour que la destruction de la variable soit effective au moment du "use POSIX qw{strftime}". Cela ne suffit cependant pas, et créer une variable "LC_ALL" ne règle pas non plus le problème. Seule la methode avec "setlocale" fonctionne correctement, et encore uniquement si je supprime également la variable "LANG", ce qui est contraire à ce qu'indique la page de manuel de la fonction "setlocale(3)" et "locale(7)" qui précise que "LC_ALL" prévaut sur le reste, notamment sur "LANG".
Denis
"Jack" a écrit dans le message de news:c7g168$
Bonjour,
rfc1766 pourrait-elle t'aider?
Jack
Bonjour,
Il est utile de préciser l'OS, car certains systèmes ne supportent pas
le formatage. La rfc1766 permet d'aménager dans certains langages (ex:
php) la compatibilité Unix et Windows, l'utilisation de setlocale en
conjonction avec strftime est alors nécessaire. C'est ce qui se passe
ailleurs mais dans perl?
Bon courage
JacK
Le 10/05/2004 09:22, :
Bonjour,
Pas vraiment, cette rfc décrit la manière d'informer sur le langage utilisé
(ex: "fr" => langue française)
Mon problème n'est pas un problème de définition des valeurs, mais un
problème de manipulation spécifique à l'implémentation sous Un*x.
Je n'ai pas compris pourquoi on ne peut pas agir en modifiant seulement les
variables d'environnement liées au locale (LANG, LC_*), c'est pourtant bien
ce que la documentation standard indique (man 3 locale)
Petite précision: si j'avais mis dans un block BEGIN la ligne "delete
$ENV{LANG}", c'est pour que la destruction de la variable soit effective au
moment du "use POSIX qw{strftime}". Cela ne suffit cependant pas, et créer
une variable "LC_ALL" ne règle pas non plus le problème. Seule la methode
avec "setlocale" fonctionne correctement, et encore uniquement si je
supprime également la variable "LANG", ce qui est contraire à ce qu'indique
la page de manuel de la fonction "setlocale(3)" et "locale(7)" qui précise
que "LC_ALL" prévaut sur le reste, notamment sur "LANG".
Denis
"Jack" <jack.sardin@rd.francetelecom.com> a écrit dans le message de
news:c7g168$m9j3@news.rd.francetelecom.fr...
Il est utile de préciser l'OS, car certains systèmes ne supportent pas le formatage. La rfc1766 permet d'aménager dans certains langages (ex: php) la compatibilité Unix et Windows, l'utilisation de setlocale en conjonction avec strftime est alors nécessaire. C'est ce qui se passe ailleurs mais dans perl?
Bon courage JacK
Le 10/05/2004 09:22, :
Bonjour,
Pas vraiment, cette rfc décrit la manière d'informer sur le langage utilisé (ex: "fr" => langue française)
Mon problème n'est pas un problème de définition des valeurs, mais un problème de manipulation spécifique à l'implémentation sous Un*x.
Je n'ai pas compris pourquoi on ne peut pas agir en modifiant seulement les variables d'environnement liées au locale (LANG, LC_*), c'est pourtant bien ce que la documentation standard indique (man 3 locale)
Petite précision: si j'avais mis dans un block BEGIN la ligne "delete $ENV{LANG}", c'est pour que la destruction de la variable soit effective au moment du "use POSIX qw{strftime}". Cela ne suffit cependant pas, et créer une variable "LC_ALL" ne règle pas non plus le problème. Seule la methode avec "setlocale" fonctionne correctement, et encore uniquement si je supprime également la variable "LANG", ce qui est contraire à ce qu'indique la page de manuel de la fonction "setlocale(3)" et "locale(7)" qui précise que "LC_ALL" prévaut sur le reste, notamment sur "LANG".