• Publicidad

Símbolo infinito

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

Símbolo infinito

Notapor perliña » 2013-05-16 06:21 @306

¡Buenas!
Quisiera saber si hay alguna forma de introducir el símbolo matemático que representa el infinito, en Perl.
Gracias
perliña
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2013-04-09 05:18 @262

Publicidad

Re: Símbolo infinito

Notapor explorer » 2013-05-16 07:00 @333

Según veo, el infinito es el carácter ∞ (U+221E) dentro de Unicode.

Para ponerlo dentro de un programa Perl, puedes usar alguna de estas opciones:

my $infinito = "\x{221E}";
my $infinito = "\N{U+221E}"; # mejor y más moderna


Si tienes un Perl moderno, se puede hacer también por nombre:

my $infinito = "\N{INFINITY}";

(esta última línea hace cargar el módulo 'charnames' de forma automática a partir de Perl v5.16. Si es un Perl más viejo, hay que poner 'use charnames ":full";')

Obviamente, también podemos escribirlo directamente:

use utf8;
my $infinito = "∞";


Más información en tu propio ordenador en perldoc perlunicode, y en la Web.


A la hora de sacarlo en pantalla, hay que tener en cuenta que tenemos que informar a Perl que vamos a sacar caracteres que son más anchos de un byte (en codificación UTF-8, el infinito lo saca con tres bytes: 0xE2 0x88 0x9E).

Entonces, si la salida es hacia la salida estándar (STDOUT), podemos escribir esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use v5.14;
  3. use open qw(:utf8 :std);         # declaramos que las salidas y entradas estándar van a estar en utf-8
  4. my $infinito = "\N{U+221E}";
  5. say $infinito;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Si estamos en una máquina que todavía no usa la codificación utf-8, lo mejor será indicar a Perl que use como salida la codificación que el sistema operativo esté indicando que está usando en ese momento:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use v5.14;
  3. use open ':locale';              # usar las mismas codificaciones a la entrada y salida que las del sistema operativo
  4. my $infinito = "\N{U+221E}";
  5. say $infinito;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Más información en perldoc open.

Desde la línea de comandos, todo esto se puede hacer así:

perl -CO -E 'say "\N{U+221E}"'
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: No hay usuarios registrados visitando el Foro y 38 invitados