<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Perl</id>
	<title>Perl - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Perl"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Perl&amp;action=history"/>
	<updated>2026-10-21T04:22:51Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Perl&amp;diff=36789&amp;oldid=prev</id>
		<title>Vieites: /* Enlaces interesantes */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Perl&amp;diff=36789&amp;oldid=prev"/>
		<updated>2013-08-26T07:07:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Enlaces interesantes&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introdución a Perl ==&lt;br /&gt;
Instalación de Perl en Windows:&lt;br /&gt;
* Baixar e instalar [http://www.activestate.com/activeperl/downloads Perl para Windows]&lt;br /&gt;
&lt;br /&gt;
Para ver a versión de Perl instalada:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
C:\scripts&amp;gt; perl -v&lt;br /&gt;
&lt;br /&gt;
This is perl, v5.10.1 built for MSWin32-x64-multi-thread&lt;br /&gt;
(with 2 registered patches, see perl -V for more detail)&lt;br /&gt;
&lt;br /&gt;
Copyright 1987-2009, Larry Wall&lt;br /&gt;
&lt;br /&gt;
Binary build 1007 [291969] provided by ActiveState http://www.ActiveState.com&lt;br /&gt;
Built Jan 27 2010 14:12:21&lt;br /&gt;
&lt;br /&gt;
Perl may be copied only under the terms of either the Artistic License or the&lt;br /&gt;
GNU General Public License, which may be found in the Perl 5 source kit.&lt;br /&gt;
&lt;br /&gt;
Complete documentation for Perl, including FAQ lists, should be found on&lt;br /&gt;
this system using &amp;quot;man perl&amp;quot; or &amp;quot;perldoc perl&amp;quot;.  If you have access to the&lt;br /&gt;
Internet, point your browser at http://www.perl.org/, the Perl Home Page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O meu primeiro &amp;#039;&amp;#039;script&amp;#039;&amp;#039; en perl:&lt;br /&gt;
&lt;br /&gt;
Creamos o arquivo &amp;#039;&amp;#039;&amp;#039;proba.pl&amp;#039;&amp;#039;&amp;#039; e o editamos có noso editor favorito, o contido do arquivo debe ser o seguinte:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
print &amp;quot;Ola Caracola!\n&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Logo para executalo:&lt;br /&gt;
- Se é dende Linux hai que configurar o arquivo como executable:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# chmod 755 proba.pl&lt;br /&gt;
# ./proba.pl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E logo executalo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ./proba.pl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Se é dende Windows, acceder á liña de comandos e escribir:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;dos&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; perl proba.pl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Un exemplo mais elaborado será o seguinte:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
print &amp;quot;Valor del inmueble? &amp;quot;;&lt;br /&gt;
chop( $valor = &amp;lt;STDIN&amp;gt; );&lt;br /&gt;
$comision = $valor * 0.25;&lt;br /&gt;
print &amp;quot;Comision = $comision\n&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Para poñer unha línea de comentarios empregar o símbolo &amp;#039;&amp;#039;&amp;#039;#&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Variables e Tipos ==&lt;br /&gt;
: Perl emprega variables para representar cousas que poden ter diferentes valores. En Perl temos tres grandes grupos de variables: escalares ($), arrays (@) e &amp;#039;&amp;#039;hashes&amp;#039;&amp;#039; (%). Ter en conta que se distingue entre minúsculas e maiúsculas.&lt;br /&gt;
&lt;br /&gt;
=== Escalares ===&lt;br /&gt;
:* Esta variable pode conter calquera tipo de información xa sexan números, letras, cadenas de texto, signos, código ASCII, etc.&lt;br /&gt;
:* Para definir unha variable escalar todo o que temos que facer é:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
$variable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* Por escalares enténdense valores numéricos e alfanuméricos, no caso dos valores alfanuméricos (texto) este escríbese entre comiñas.&lt;br /&gt;
:* Ao final da asignación débese escribir &amp;quot;;&amp;quot;.&lt;br /&gt;
:* As variables non poden comezar por un número.&lt;br /&gt;
: Exemplos:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Número enteiro&lt;br /&gt;
$num1=127;&lt;br /&gt;
# Número decimal&lt;br /&gt;
$num2=2.5;&lt;br /&gt;
# Número Octal&lt;br /&gt;
$Octal1=044;&lt;br /&gt;
# Número Hexadecimal&lt;br /&gt;
$Hex1=0xFF;&lt;br /&gt;
# Interpolar variables dentro doutra&lt;br /&gt;
$Frase1=&amp;quot;O usuario $nome $apelidos de $idade anos...&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Pódese definir tamén o alcance (&amp;#039;&amp;#039;scope&amp;#039;&amp;#039;) da variable:&lt;br /&gt;
Se non se indica nada as variables son sempre globais.&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;my&amp;#039;&amp;#039;&amp;#039; - Unha variable declarada con &amp;#039;&amp;#039;&amp;#039;my&amp;#039;&amp;#039;&amp;#039; non pertence a ningún paquete, pertence só ao seu bloque.&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;our&amp;#039;&amp;#039;&amp;#039; - Para definir variables globais empregamos a palabra clave &amp;#039;&amp;#039;&amp;#039;our&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
my $age = 40;&lt;br /&gt;
our $count = 1;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;Arrays&amp;#039;&amp;#039; ===&lt;br /&gt;
:* Comezan có signo &amp;#039;&amp;#039;&amp;#039;@&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:* Conteñen unha lista de valores escalares (números e textos).&lt;br /&gt;
Exemplos:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Definir un array&lt;br /&gt;
@provincia=(&amp;quot;A Coruña&amp;quot;,&amp;quot;Lugo&amp;quot;,&amp;quot;Ourense&amp;quot;,&amp;quot;Pontevedra&amp;quot;);&lt;br /&gt;
# Devolve &amp;quot;A Coruña&amp;quot;&lt;br /&gt;
$provincia[0]&lt;br /&gt;
# Devolve &amp;quot;Lugo&amp;quot;&lt;br /&gt;
$provincia[1]&lt;br /&gt;
# Cambiar o valor gardado&lt;br /&gt;
$provincia[0]=&amp;quot;Oviedo&amp;quot;;&lt;br /&gt;
# Agora @provincia=(&amp;quot;Oviedo&amp;quot;,&amp;quot;Lugo&amp;quot;,&amp;quot;Ourense&amp;quot;,&amp;quot;Pontevedra&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:* Como vemos, para a asignación emprégase o carácter &amp;#039;&amp;#039;&amp;#039;@&amp;#039;&amp;#039;&amp;#039; e para acceder a un valor individual, tanto para ler como para escribir nel, emprégase o signo &amp;#039;&amp;#039;&amp;#039;$&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:* Os &amp;#039;&amp;#039;arrays&amp;#039;&amp;#039; tamén aceptan interpolación con outros &amp;#039;&amp;#039;arrays&amp;#039;&amp;#039;.&lt;br /&gt;
:* Existen algunhas funcións que axudan a poñer ou sacar elementos da lista:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Saber o índice do último elemento da lista:&lt;br /&gt;
$#provincia&lt;br /&gt;
# E mostrar por pantalla ese último elemento da lista:&lt;br /&gt;
print $provincia[$#provincia];&lt;br /&gt;
# Colocar novos elementos ao final da lista:&lt;br /&gt;
push(@provincia, &amp;#039;Cadiz&amp;#039;, &amp;#039;Sevilla&amp;#039;);&lt;br /&gt;
# Sacar o último elemento do &amp;#039;&amp;#039;array&amp;#039;&amp;#039; e asignarllo a unha variable:&lt;br /&gt;
$oultimoera=pop(@provincia);&lt;br /&gt;
# Remprazar o primeiro elemento do &amp;#039;&amp;#039;array&amp;#039;&amp;#039;:&lt;br /&gt;
unshift(@provincia, &amp;#039;Oviedo&amp;#039;);&lt;br /&gt;
# Sacar o último elemento do &amp;#039;&amp;#039;array&amp;#039;&amp;#039; e asignarllo a unha variable: &lt;br /&gt;
$oprimeiroera=shift(@provincia);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hashes ===&lt;br /&gt;
:* Trátase de matrices que se referencian polo par clave/valor.&lt;br /&gt;
:* Comezan có signo &amp;#039;&amp;#039;&amp;#039;%&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:* Os valores introdúcense mantendo unha relación a pares, o primeiro valor é a clave do seguinte.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Definir un hash:&lt;br /&gt;
%dia=(Lun,&amp;quot;Luns&amp;quot;,Mar,&amp;quot;Martes&amp;quot;,Mer,&amp;quot;Mércores&amp;quot;,Xov,&amp;quot;Xoves&amp;quot;,Ven,&amp;quot;Venres&amp;quot;,Sab,&amp;quot;Sábado&amp;quot;,Dom,&amp;quot;Domingo&amp;quot;);&lt;br /&gt;
# Outro modo de definir o mesmo hash:&lt;br /&gt;
%dia=(&lt;br /&gt;
Lun=&amp;gt; &amp;quot;Luns&amp;quot;,&lt;br /&gt;
Mar=&amp;gt; &amp;quot;Martes&amp;quot;,&lt;br /&gt;
Mer=&amp;gt; &amp;quot;Mércoles&amp;quot;,&lt;br /&gt;
Xov=&amp;gt; &amp;quot;Xoves&amp;quot;,&lt;br /&gt;
Ven=&amp;gt; &amp;quot;Venres&amp;quot;,&lt;br /&gt;
Sab=&amp;gt; &amp;quot;Sábado&amp;quot;,&lt;br /&gt;
Dom=&amp;gt; &amp;quot;Domingo&amp;quot;&lt;br /&gt;
);&lt;br /&gt;
# Acceder a un dos elementos:&lt;br /&gt;
print $dia{Lun};&lt;br /&gt;
# Modificar o contido dun dos elementos do hash:&lt;br /&gt;
$dia{Lun}=LUNS;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:* Os &amp;#039;&amp;#039;hashes&amp;#039;&amp;#039; tamén teñen unha serie de funcións asociadas, que facilitan a súa utilización:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Para borrar un par clave/valor utilizamos a función delete:&lt;br /&gt;
delete($dia{Lun});&lt;br /&gt;
# A función values mostra todos os valores da matriz asociada pero sen manter un orden determinado:&lt;br /&gt;
print values(%dia);&lt;br /&gt;
# A función keys mostra todas as claves do hash sen manter un orden determinado:&lt;br /&gt;
print keys(%dia);&lt;br /&gt;
# Para mostrar os elementos dun xeito ordenado empregaremos a función sort:&lt;br /&gt;
print sort(values(%dia));&lt;br /&gt;
print sort(keys(%dia));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Expresiones regulares en Perl ==&lt;br /&gt;
Las [[Exmpresions_Regulares_en_Linux|expresiones regulares]] en Perl son una parte importante del trabajo con los operadores &amp;#039;&amp;#039;m//&amp;#039;&amp;#039;, &amp;#039;&amp;#039;s///&amp;#039;&amp;#039;. &amp;#039;&amp;#039;qr//&amp;#039;&amp;#039; y &amp;#039;&amp;#039;split&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Perl es ampliamente conocido por su excelente procesamiento de textos, y las expresiones regulares son uno de los factores que le dan esta fama.&lt;br /&gt;
&lt;br /&gt;
A partir de ahora &amp;quot;expresión regular&amp;quot; será abreviado como &amp;quot;regexp&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Coincidencias de una palabra simple: &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Para buscar la coincidencia de un &amp;#039;&amp;#039;string&amp;#039;&amp;#039; en una frase:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
if (&amp;quot;Hola mundo&amp;quot; =~ /mundo/) {&lt;br /&gt;
        print &amp;quot;Coincidencia!!!\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
        print &amp;quot;No hay coincidencias!!!\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:: En este caso sí hay coincidencia.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;NO coincidencia de una palabra simple: &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: En este caso lo haríamos del siguiente modo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
if (&amp;quot;Hola mundo&amp;quot; !~ /mundo/) {&lt;br /&gt;
        print &amp;quot;Coincidencia!!!\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
        print &amp;quot;No hay coincidencias!!!\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:: En este caso NO hay coincidencia.&lt;br /&gt;
&lt;br /&gt;
== Aprender con exemplos ==&lt;br /&gt;
=== Pedir nombre, guardarlo en variable y luego imprimirlo. Ver también las diferencias entre utilizar las &amp;quot; &amp;quot; y las &amp;#039; &amp;#039; ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
#Ejemplo sencillo&lt;br /&gt;
#&lt;br /&gt;
print&amp;quot;¿Cómo te llamas? &amp;quot;;&lt;br /&gt;
chop( $nombre = &amp;lt;STDIN&amp;gt; );&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Tu nombre es $nombre\n&amp;quot;;&lt;br /&gt;
print &amp;#039;Tu nombre es $nombre\n&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
#END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Salida:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: ¿Cómo te llamas? Manuel&lt;br /&gt;
: Tu nombre es Manuel&lt;br /&gt;
: Tu nombre es $nombre\n&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Aclaraciones:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:* Función [http://perldoc.perl.org/functions/print.html print].&lt;br /&gt;
:* Función [http://perldoc.perl.org/functions/chop.html chop].&lt;br /&gt;
&lt;br /&gt;
=== Trabajo con variables de entorno y variables de usuario ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
#Ejemplo de variables&lt;br /&gt;
#&lt;br /&gt;
$saludo = &amp;quot;Bienvenido Sr. &amp;quot;;&lt;br /&gt;
$nombre = getlogin();&lt;br /&gt;
print $saludo . &amp;quot; &amp;quot; . $nombre . &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Función específica para obtener &lt;br /&gt;
# toda la información de un usuario: getpwnam &lt;br /&gt;
($name, $pass, $uid, $gid, $quota, $comment, $gcos, $dir, $shell, $expire) = getpwnam($nombre);&lt;br /&gt;
print &amp;quot;Su directorio home es $dir\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Las variables $ también son muy útiles&lt;br /&gt;
# Y también el carácter de escape \&lt;br /&gt;
print &amp;quot;Está usted ejecutando el script \&amp;quot;$0\&amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Argumentos:&lt;br /&gt;
$NumArg = @ARGV;&lt;br /&gt;
print &amp;quot;con $NumArg argumentos, que son: \n&amp;quot;;&lt;br /&gt;
$i = 0;&lt;br /&gt;
while ($i &amp;lt; $NumArg) {&lt;br /&gt;
print &amp;quot;\t- Argumento Núm. &amp;quot;, $i, &amp;quot; ---&amp;gt; &amp;quot;, $ARGV[$i], &amp;quot;\n&amp;quot;;&lt;br /&gt;
$i++;&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Para el PID de un proceso:&lt;br /&gt;
print &amp;quot;El PID de este proceso es &amp;quot; . getpgrp(0) . &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Ejecutar una función de shell bash desde el script perl:&lt;br /&gt;
$fecha=`/bin/date`;&lt;br /&gt;
print &amp;quot;Por último le indico la fecha actual: $fecha \n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Si la última sentencia se ejecutó con éxito devolverá un 0 &lt;br /&gt;
print &amp;quot;La función print se ejecutó: $?\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
#END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Aclaraciones:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:* [http://www.cicei.com/ocon/gsi/tutorial_perl/cap9.htm Variables predefinidas]&lt;br /&gt;
:* [http://www.techrepublic.com/article/obtain-user-group-and-process-information-in-perl/5974002 Usuarios, Grupos y Procesos]&lt;br /&gt;
&lt;br /&gt;
=== Trabajar con la función tr ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
#Ejemplo con tr&lt;br /&gt;
#&lt;br /&gt;
while (&amp;lt;STDIN&amp;gt;){&lt;br /&gt;
        $texto = $_;&lt;br /&gt;
        $texto =~ tr/a-z/A-Z/;&lt;br /&gt;
        print &amp;quot;$texto\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Aclaraciones:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:* Función [http://www.misc-perl-info.com/perl-tr.html tr]&lt;br /&gt;
== Enlaces interesantes ==&lt;br /&gt;
- [http://perl-tutorial.org/ Manuales de Perl]&lt;/div&gt;</summary>
		<author><name>Vieites</name></author>
	</entry>
</feed>