Cet exemple fonctionne chez moi :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #!/usr/bin/perl
use warnings;
use strict;
my $DirSql1;
if( scalar(@ARGV) >= 2 ){
if( $ARGV[0] eq "-i" ){
$DirSql1= "$ARGV[1]";
}
}
if( defined( $DirSql1)){
$DirSql1 =~ s/\\/\\\\/g;
print "$DirSql1\n";
} |
j'appelle le code avec la ligne de commande suivante :
test_chemin.PL -i c:\toto\slq.txt
Le chemin est correctement affiché.
En résumé, j'ai juste rajouté des doubles quotes lors la valorisation de $Dirsql1, ce qui semble protéger la variable d'une quelconque interprétation.
Sinon, pour éviter l'interprétation d'un chemin, il faut utiliser ses simples quotes (ou apostrophes)
$DirSql1= 'C:\TEST\EXP\repertoire1\toto\script.sql';
Partager