Quelqu'un peut me faire un man print ?

Quelqu'un peut me faire un man print ? - Perl - Programmation

Marsh Posté le 24-04-2008 à 18:08:31    

Bonjour, je suis sous cygwin et je n'ai pas la doc de perl.
J'ai pourtant essayer de taper "perl Man Print" dans google, mais je ne trouve pas de doc en ligne pour print.
Vous devais vous dire : "Faut vraiment être con pour pas savoir se servir de Print..."   +1  :) Sauf que j'aimerai que mon print n'interprète pas les \.  
J'ai une variable qui comporte un path : $chemin="c:\dossier\fichier.adbet quand je fait un :  
print("chemin : $chemin \n" );
Il se tape tout les \ comme des caractère d'échappement...
j'ai essayer pour contourner ca de faire un :
$chemin =~ s/\\/\\\\/g;   # c'est censé remplacer tout les \ par des \\ mais là encore, il prend tout les \ comme caractère d'échappement.  
 
Vous avez un moyen de traiter un path sans que les \ ne perturbe tout ?  
 
Merci.  :jap:

Reply

Marsh Posté le 24-04-2008 à 18:08:31   

Reply

Marsh Posté le 25-04-2008 à 10:58:39    

Personne n'a jamais eu de problème à cause des caractères d'échappement ? :/

Reply

Marsh Posté le 25-04-2008 à 11:02:12    

http://perldoc.perl.org/functions/print.html
mais le plus simple reste  

Code :
  1. $chemin='c:\dossier\fichier.adb';


avec des simples quotes et non des doubles.


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 25-04-2008 à 11:27:17    

Oooh Yesss ! Pourquoi n'y ai-je pas pensé plus tôt !  
Merci beaucoup Anapajari !! :jap:

Reply

Marsh Posté le 25-04-2008 à 13:30:25    

Une autre solution consiste à mettre le Path au format Unix :  

Code :
  1. $chemin="c:/dossier/fichier.adb";


 
Et si il faut on remplace les \ par des / :  

Code :
  1. $chemin =~ s{\\}{/}g;

Message cité 1 fois
Message édité par haaawaaax le 25-04-2008 à 13:31:06
Reply

Marsh Posté le 25-04-2008 à 21:38:05    

Ta solution laisse penser que tu n'as pas réellement compris quel était le problème :
quand tu utilises des "", le \ est un caractère d'échappement.
quand tu utilises les '', le problème ne se pose pas...
 
Donc en fait, il ne faut pas faire ce que tu proposes, mais :

Code :
  1. $chemin = "c:\\dossier\\fichier.adb";


 
Par contre, la solution d'anapajari est la plus simple pour ton besoin

Reply

Marsh Posté le 26-04-2008 à 08:49:50    

haaawaaax a écrit :

Une autre solution consiste à mettre le Path au format Unix :  

Code :
  1. $chemin="c:/dossier/fichier.adb";


Non. Il y a des modules pour tout renormaliser en fonction de l'OS sur lequel est executé le script (le pb des echapements avec \ est autre chose), comme File::Spec et son canonpath, et il faut les utiliser.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 28-04-2008 à 11:28:23    

dreameddeath a écrit :

Ta solution laisse penser que tu n'as pas réellement compris quel était le problème :
quand tu utilises des "", le \ est un caractère d'échappement.
quand tu utilises les '', le problème ne se pose pas...
 
Donc en fait, il ne faut pas faire ce que tu proposes, mais :

Code :
  1. $chemin = "c:\\dossier\\fichier.adb";


 
Par contre, la solution d'anapajari est la plus simple pour ton besoin


 
 
J'ai très bien compris le problème. Sauf qu'a chaque problème sa solution. Et en général, on prend pas la solution la plus compliquée. Pour mon cas, c'était beaucoup plus simple d'utiliser des simples quotes dans mon code plutot que de mettre des double anti-slash partout.  
Maintenant, pour un autre cas, je dis pas que ta solution ne sera pas plus adéquate.  
En tout cas, merci pour vos suggestions.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed