• Publicidad

Duda con barra usando q()

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Duda con barra usando q()

Notapor BigBear » 2012-08-25 13:23 @599

Hola. Tengo el siguiente problema con q() cuando hay \\.

El código es:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $re = q(hola \\ chau);
  2.  
  3. print $re;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y devuelve:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
hola \ chau
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo solucioné con \\\\.

¿ Pero, qué otras soluciones tengo ?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Duda con barra usando q()

Notapor explorer » 2012-08-25 20:16 @886

Extraído de perldata, sección Constructores de valores escalares:
Los literales de cadena se suelen delimitar con comillas simples o dobles. Estas comillas funcionan de forma muy parecida a las comillas en las shell estándar de Unix: los literales de cadena entre comillas dobles están sujetos al uso de la barra diagonal inversa y la sustitución de variables; en cambio, las cadenas entre comillas simples no lo están (a excepción de "\'" y "\\"). Se aplican las reglas normales de barra diagonal inversa estilo C para crear caracteres como el salto de línea, tabulaciones, etc., y algunas formas más exóticas. Encontrará una lista en la sección "Comillas y operadores de comillas" de perlop.

Así que no, no se puede abreviar más.

Pero se puede hacer de otras formas...

$ perl -E '$re = "hola " . "\\"x2 . " chau"; say $re'
hola \\ chau
$ perl -E '$re = join " " . "\\"x2 . " ", qw(hola chau); say $re'
hola \\ chau
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 28 invitados

cron