|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre émérite
![]() Inscription : février 2003 Messages : 1 099 ![]() |
Bonjour !
Dans le cadre du changement de nos PC au bureau, on vient de nous coller la version 5.8.8 de Perl d'ActiveState. Cette version n'a jamais été fonctionnelle avec nos scripts. Ces derniers, au choix : - ne fonctionnent plus du tout - fonctionnent mais sont extrêmement lents - ne savent plus gérer les chemins d'accès de répertoires Tous ces scripts fonctionnant parfaitement sous Perl 5.6.1, je viens d'aller sur le site d'ActiveState pour télécharger le .msi. Par de bol, en dehors de la toute dernière version en date, les anciennes versions ne sont disponibles qu'en payant ![]() Comment faire pour avoir une version 5.6.1 pour Windows ?
__________________
Comment écrire du bon code en Perl |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Inscription : avril 2004 Messages : 9 359 ![]() |
Je trouve que c'est une très très mauvaise idée de chercher à travailler sous Perl 5.6. L'idéal serait que tu installse Perl 5.12 et refasse quelques modifications dans tes programmes si besoin.
__________________
Pensez toujours aux cours, FAQ Perl et la fonction recherchez!!!!!!!! Lisez les règles du forum Perl. Aucun problème par MP, merci de poster vos questions dans les sous forums dédiés et rendez vos codes sources lisibles |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() Inscription : février 2003 Messages : 1 099 ![]() |
Le soucis, c'est que mon service info n'est pas d'une grande souplesse.
Ils ont installé une v5.8.8 parce que c'est un vieux .msi qu'ils avaient sous la main au moment où ils ont dû installer Perl sur nos postes. Si je leur demande d'installer une 5.12 à la place, j'ai droit illico au remplissage d'une demande d'achat... Alors si jamais la 5.12 ne fonctionne pas mieux, ça m'étonnerait fortement qu'ils acceptent avec le sourire de rétrograder en 5.6.1. Quant aux programmes, on en a environ 50 utilisés au moins de manière hebdomadaire par plusieurs personnes différentes. Tous ces programmes n'ont pas été écrits par mes soins et sérieux, je n'ai pas le temps de tous les tester. Et comme je suis le dernier programmeur Perl de ma boite... Je ne comprends pas pourquoi un script basique qui tourne habituellement en 5 minutes en 5.6.1 met 40 minutes en 5.8.8 ! Je ne comprends pas davantage pourquoi un chemin du genre "M:\PoleNumerique\AA\Temp" n'est plus reconnu comme un répertoire en 5.8.8 alors qu'en 5.6.1 ça fonctionnait parfaitement.
__________________
Comment écrire du bon code en Perl |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Inscription : avril 2004 Messages : 9 359 ![]() |
Bah tes remarques me surprennent également car j'ai bossé sous Perl 5.8.8 pendant plusieurs années sans jamais avoir de soucis. Donc tes programmes auraient dû fonctionner, voire mieux fonctionner que sous Perl 5.6.
__________________
Pensez toujours aux cours, FAQ Perl et la fonction recherchez!!!!!!!! Lisez les règles du forum Perl. Aucun problème par MP, merci de poster vos questions dans les sous forums dédiés et rendez vos codes sources lisibles |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Inscription : février 2003 Messages : 1 099 ![]() |
Ca ne me surprend pas car il y a 4 ans, lors du précédent changement de bécane, j'avais déjà eu ce soucis.
Le dossier "M:\PoleNumerique\AA\Temp" existe. Si je fais un test (if -d) sur cette chaine, ça retourne 0 et je n'ai pas de message d'erreur (même avec la pragma warnings). Différents tests de vérif si répertoire réalisés avec ces chaines : "M:\PoleNumerique\AA\Temp" "M:\PoleNumerique\AA\Temp\" "M:\\PoleNumerique\\AA\\Temp" "M:\\PoleNumerique\\AA\\Temp\\" "M:/PoleNumerique/AA/Temp" "M:/PoleNumerique/AA/Temp/" Rien ne fonctionne. Je fais un basique test if -d "M:" et là ça marche.
__________________
Comment écrire du bon code en Perl |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Inscription : avril 2004 Messages : 9 359 ![]() |
et -e ?
__________________
Pensez toujours aux cours, FAQ Perl et la fonction recherchez!!!!!!!! Lisez les règles du forum Perl. Aucun problème par MP, merci de poster vos questions dans les sous forums dédiés et rendez vos codes sources lisibles |
|
|
00
|
|
|
#7 | ||
|
Membre émérite
![]() Inscription : février 2003 Messages : 1 099 ![]() |
Je viens de tester ce petit code :
Code :
NO OK NO OK "M:\\PoleNumerique\\AA\\Temp\\" donne : OK rep OK existe J'applique la modif du double \\ sur un des scripts de renommage de fichiers et hop : le répertoire mentionné M:\\PoleNumerique\\AA\\Temp\\ n'existe pas. Bizarrement ET sans modifier mon script, lui demander de vérifier si le dossier C:\toto\pouet\titi\toto existe, il retourne 1. Alors je crois que la solution va vite être trouvée : je ne touche à rien, je ne demande pas de changement de version de Perl et je laisse les utilisateurs se débrouiller avec le programme : si ça ne marche pas, qu'ils recopient leurs fichiers à renommer ailleurs pour voir si c'est pas mieux.
__________________
Comment écrire du bon code en Perl |
||
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() Inscription : février 2003 Messages : 1 099 ![]() |
Merci de ton aide Djibril, ça m'a fait plaisir de repasser par ici
__________________
Comment écrire du bon code en Perl |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Inscription : avril 2004 Messages : 9 359 ![]() |
J'ai une autre solution plus propre que j'utilise régulièrement en utilisant File::Spec.
__________________
Pensez toujours aux cours, FAQ Perl et la fonction recherchez!!!!!!!! Lisez les règles du forum Perl. Aucun problème par MP, merci de poster vos questions dans les sous forums dédiés et rendez vos codes sources lisibles |
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() Inscription : février 2003 Messages : 1 099 ![]() |
Merci pour l'info.
Je m'y pencherai si jamais j'ai trop d'utilisateurs mécontents
__________________
Comment écrire du bon code en Perl |
|
|
00
|
|
|
#11 | ||
![]() ![]() ![]() Inscription : avril 2004 Messages : 9 359 ![]() |
Teste ça pour t'amuser :
Code :
__________________
Pensez toujours aux cours, FAQ Perl et la fonction recherchez!!!!!!!! Lisez les règles du forum Perl. Aucun problème par MP, merci de poster vos questions dans les sous forums dédiés et rendez vos codes sources lisibles |
||
|
|
00
|
|
|
#12 | ||||
|
Membre émérite
![]() Inscription : février 2003 Messages : 1 099 ![]() |
En compilant ton script, j'ai ces warnings là :
Code :
"C:/PoleNumerique/AA/Temp" "C:\\PoleNumerique\\AA\\Temp" Bref, les élements 3 et 5 de la liste sont ok, pas les autres. Et quand je dis que ça marche, c'est qu'à l'affichage, ça donne ceci : Code :
__________________
Comment écrire du bon code en Perl |
||||
|
|
00
|
|
|
#13 |
![]() ![]() ![]() Inscription : avril 2004 Messages : 9 359 ![]() |
Les warnings viennent de ça : "C:\PoleNumerique\AA\Temp", et c'est normal.
Par contre 'C:/PoleNumerique/AA/Temp', donne quoi ?
__________________
Pensez toujours aux cours, FAQ Perl et la fonction recherchez!!!!!!!! Lisez les règles du forum Perl. Aucun problème par MP, merci de poster vos questions dans les sous forums dédiés et rendez vos codes sources lisibles |
|
|
00
|
|
|
#14 |
|
Membre émérite
![]() Inscription : février 2003 Messages : 1 099 ![]() |
Cela ne fonctionne pas. Les chaines entre simples quotes n'ont pas donné de résultats positifs. Seules celles entre doubles quotes sont ok, sauf l'avant-dernière.
Le truc qui m'embête, c'est que ce matin j'ai testé ce genre de choses sur l'un des scripts à problème et ça n'a rien donné. Simple ou double quote, rien ne fonctionne. Ce script étant en réalité du Perl/Tk, je me demande s'il n'y a pas de soucis de compatibilité ici aussi ? Merci pour ton aide et le temps consacré, Djibril !
__________________
Comment écrire du bon code en Perl |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com