Bonjour,
J'ai un petit problème de compréhension avec l'opérateur apostrophe et
l'interpolation.
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opérateurs '
', le code
$Path = 'C:\Temp\';
retourne l'erreur suivante :
Can't find string terminator "'" anywhere before EOF at ...
Je dois écrire
$Path = 'C:\Temp\\';
pour ne pas avoir d'erreur à la compil et obtenir " C:\Temp\ " dans $Path.
Je trouve étrange d'être obligé de faire un mix entre les opérateurs ' ' et
" " pour écrire cette ligne.
Dans le cas de l'opérateur " ", pas de problème, il suffit d'écrire
$Path = "C:\\Temp\\";
mais est-il possible de désactiver temporairement l'interprétation du
caractère \ et écrire
$Path = "C:\Temp\";
pour obtenir " C:\Temp\ " dans $Path ?
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) Tue, 28 Feb 2006 15:03:28 +0100, "s.Müller" écrivait (wrote):
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opérateurs ' ', le code $Path = 'C:Temp'; retourne l'erreur suivante : Can't find string terminator "'" anywhere before EOF at ... Je dois écrire $Path = 'C:Temp'; pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans $Path.
Dans une chaîne entre simple quote, il n'y a effectivement pas d'interpolation (des variables et des caractères spéciaux). Par contre, il existe encore un caractère d'échappement (le ) qui ne sert que pour 'interpoler' le délimiteur et le caractère d'échappement lui-même. Il n'est pas possible (simplement) de changer le caractère d'échappement.
Le plus simple, dans l'exemple que vous citez, est d'utiliser / au lieu de . Depuis longtemps, la libc de Windows (utilisée par Perl) reconnait aussi bien le que le / comme séparateur.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 28 Feb 2006 15:03:28 +0100,
"s.Müller" <stephane.muller@laposte.net> écrivait (wrote):
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opérateurs '
', le code
$Path = 'C:Temp';
retourne l'erreur suivante :
Can't find string terminator "'" anywhere before EOF at ...
Je dois écrire
$Path = 'C:Temp\';
pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans $Path.
Dans une chaîne entre simple quote, il n'y a effectivement pas
d'interpolation (des variables et des caractères spéciaux). Par
contre, il existe encore un caractère d'échappement (le ) qui ne sert
que pour 'interpoler' le délimiteur et le caractère d'échappement
lui-même. Il n'est pas possible (simplement) de changer le caractère
d'échappement.
Le plus simple, dans l'exemple que vous citez, est d'utiliser / au
lieu de . Depuis longtemps, la libc de Windows (utilisée par Perl)
reconnait aussi bien le que le / comme séparateur.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 28 Feb 2006 15:03:28 +0100, "s.Müller" écrivait (wrote):
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opérateurs ' ', le code $Path = 'C:Temp'; retourne l'erreur suivante : Can't find string terminator "'" anywhere before EOF at ... Je dois écrire $Path = 'C:Temp'; pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans $Path.
Dans une chaîne entre simple quote, il n'y a effectivement pas d'interpolation (des variables et des caractères spéciaux). Par contre, il existe encore un caractère d'échappement (le ) qui ne sert que pour 'interpoler' le délimiteur et le caractère d'échappement lui-même. Il n'est pas possible (simplement) de changer le caractère d'échappement.
Le plus simple, dans l'exemple que vous citez, est d'utiliser / au lieu de . Depuis longtemps, la libc de Windows (utilisée par Perl) reconnait aussi bien le que le / comme séparateur.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
JacK
s.Müller wrote:
Bonjour, J'ai un petit problème de compréhension avec l'opérateur apostrop he et l'interpolation.
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opé rateurs ' ', le code $Path = 'C:Temp'; retourne l'erreur suivante : Can't find string terminator "'" anywhere before EOF at ...
Je dois écrire $Path = 'C:Temp'; pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans $ Path.
Je trouve étrange d'être obligé de faire un mix entre les opéra teurs ' ' et " " pour écrire cette ligne.
Dans le cas de l'opérateur " ", pas de problème, il suffit d'écri re $Path = "C:Temp"; mais est-il possible de désactiver temporairement l'interprétation du caractère et écrire $Path = "C:Temp"; pour obtenir " C:Temp " dans $Path ?
Par avance merci Stéphane
$Path = "C:/Temp/";
s.Müller wrote:
Bonjour,
J'ai un petit problème de compréhension avec l'opérateur apostrop he et
l'interpolation.
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opé rateurs '
', le code
$Path = 'C:Temp';
retourne l'erreur suivante :
Can't find string terminator "'" anywhere before EOF at ...
Je dois écrire
$Path = 'C:Temp\';
pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans $ Path.
Je trouve étrange d'être obligé de faire un mix entre les opéra teurs ' ' et
" " pour écrire cette ligne.
Dans le cas de l'opérateur " ", pas de problème, il suffit d'écri re
$Path = "C:\Temp\";
mais est-il possible de désactiver temporairement l'interprétation du
caractère et écrire
$Path = "C:Temp";
pour obtenir " C:Temp " dans $Path ?
Bonjour, J'ai un petit problème de compréhension avec l'opérateur apostrop he et l'interpolation.
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opé rateurs ' ', le code $Path = 'C:Temp'; retourne l'erreur suivante : Can't find string terminator "'" anywhere before EOF at ...
Je dois écrire $Path = 'C:Temp'; pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans $ Path.
Je trouve étrange d'être obligé de faire un mix entre les opéra teurs ' ' et " " pour écrire cette ligne.
Dans le cas de l'opérateur " ", pas de problème, il suffit d'écri re $Path = "C:Temp"; mais est-il possible de désactiver temporairement l'interprétation du caractère et écrire $Path = "C:Temp"; pour obtenir " C:Temp " dans $Path ?
Par avance merci Stéphane
$Path = "C:/Temp/";
s.Müller
Effectivement, je n'avais jamais testé que sous DOS la commande " cd C:/Temp " fonctionnait ! Merci pour ces infos.
Cordialement Stéphane
"Paul Gaborit" a écrit dans le message de news:
À (at) Tue, 28 Feb 2006 15:03:28 +0100, "s.Müller" écrivait (wrote):
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opérateurs ' ', le code $Path = 'C:Temp'; retourne l'erreur suivante : Can't find string terminator "'" anywhere before EOF at ... Je dois écrire $Path = 'C:Temp'; pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans $Path.
Dans une chaîne entre simple quote, il n'y a effectivement pas d'interpolation (des variables et des caractères spéciaux). Par contre, il existe encore un caractère d'échappement (le ) qui ne sert que pour 'interpoler' le délimiteur et le caractère d'échappement lui-même. Il n'est pas possible (simplement) de changer le caractère d'échappement.
Le plus simple, dans l'exemple que vous citez, est d'utiliser / au lieu de . Depuis longtemps, la libc de Windows (utilisée par Perl) reconnait aussi bien le que le / comme séparateur.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Effectivement, je n'avais jamais testé que sous DOS la commande " cd C:/Temp
" fonctionnait !
Merci pour ces infos.
Cordialement
Stéphane
"Paul Gaborit" <Paul.Gaborit@invalid.invalid> a écrit dans le message de
news: r7irqza5qm.fsf@vaugirard.enstimac.fr...
À (at) Tue, 28 Feb 2006 15:03:28 +0100,
"s.Müller" <stephane.muller@laposte.net> écrivait (wrote):
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les
opérateurs '
', le code
$Path = 'C:Temp';
retourne l'erreur suivante :
Can't find string terminator "'" anywhere before EOF at ...
Je dois écrire
$Path = 'C:Temp\';
pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans
$Path.
Dans une chaîne entre simple quote, il n'y a effectivement pas
d'interpolation (des variables et des caractères spéciaux). Par
contre, il existe encore un caractère d'échappement (le ) qui ne sert
que pour 'interpoler' le délimiteur et le caractère d'échappement
lui-même. Il n'est pas possible (simplement) de changer le caractère
d'échappement.
Le plus simple, dans l'exemple que vous citez, est d'utiliser / au
lieu de . Depuis longtemps, la libc de Windows (utilisée par Perl)
reconnait aussi bien le que le / comme séparateur.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
Effectivement, je n'avais jamais testé que sous DOS la commande " cd C:/Temp " fonctionnait ! Merci pour ces infos.
Cordialement Stéphane
"Paul Gaborit" a écrit dans le message de news:
À (at) Tue, 28 Feb 2006 15:03:28 +0100, "s.Müller" écrivait (wrote):
Bien qu'il soit écrit qu'il n'y a pas d'interpolation entre les opérateurs ' ', le code $Path = 'C:Temp'; retourne l'erreur suivante : Can't find string terminator "'" anywhere before EOF at ... Je dois écrire $Path = 'C:Temp'; pour ne pas avoir d'erreur à la compil et obtenir " C:Temp " dans $Path.
Dans une chaîne entre simple quote, il n'y a effectivement pas d'interpolation (des variables et des caractères spéciaux). Par contre, il existe encore un caractère d'échappement (le ) qui ne sert que pour 'interpoler' le délimiteur et le caractère d'échappement lui-même. Il n'est pas possible (simplement) de changer le caractère d'échappement.
Le plus simple, dans l'exemple que vous citez, est d'utiliser / au lieu de . Depuis longtemps, la libc de Windows (utilisée par Perl) reconnait aussi bien le que le / comme séparateur.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>