undef
Literales numéricas, constantes
Cadenas simples: '...', q(...)
Cadenas con interpolación: "...", qq(...)
Cadenas resultado de ejecución: `...`, qx(...)
Otras maneras de referirse a cadenas: qw(...), qr(...)
Here docs
Gunnar Wolf - Nice grey life - page 153
Showing posts 1521 – 1530
Aritméticos: +, -, *, /, %, **, ++, --
Comparación: <, <=, ==, >=, >, lt, le, eq, ge, gt, <=>, cmp
Asignación y correspondencia: =, =>, +=, -=, *=, /=, etc.
Condicionales
if expr {
(...)
} elsif expr {
(...)
} else {
(...)
}
(...) if expr
unless
expr and (...)
expr or (...)
expr ? (...) : (...)
Ciclos
while (expr) {
(...)
}
until (expr) {
(...)
}
do {
(...)
}while/until
for (expr1 ; expr2 ; expr3) {
(...)
}
foreach $var (lista) {
(...)
}
Control de flujo
last
next
die
redo
continue
Pseudociclos
map {} ()
grep {} ()
sort {} ()
Es verdadero todo lo que no sea falso
Es falso el valor indefinido (undef)
Es falso el número 0
Es falsa una cadena vacía ('')
Es falsa la cadena '0'
Escalares: $escalar
Arreglos: @arreglo
Hashes: %hash
Breve mención de lo que hay más allá (*glob, \$var, ${$var}, espacios de nombres, variables/funciones anónimas, arreglos multidimensionales, estructuras de datos, closures, etc.)
Un lenguaje natural comprensible por la computadora
Un lenguaje natural ofrece gran riqueza de expresión,sintáctica y semánticamente - ¡Perl permite hasta escribir poesía!
Orígenes y objetivos del lenguaje
En 1987(8?): Lenguaje pegamento
Herdero de C, awk, sed, ksh, csh...
No nos obliga a seguir un paradigma específico, pero permite implemntar a casi cualquiera
Altamente extensible
Filosofía y frases comunes en el lenguaje
TIMTOWTDI - Hay más de una manera dehacerlo.
Hubris, impatiences, laziness
Perl makes easy things easy, and difficult things possible
¿Dónde encontrar documentación?
perldoc
O'Reilly
http://use.perl.org/
http://www.perl.org/
http://www.perl.com/
Revista SysAdmin: The Perl Journal
CPAN
Objetos
Bloques especiales que modifican el flujo
BEGIN
END
Método DESTROY
Interacción con CGI
Interacción con bases de datos
Programación orientada a redes con sockets
Uso del pragma strict vars: Evitar variables no declaradas, sin ámbito o sin calificación de espacio de nombres completa. No permite el uso de variables declaradas con local - únicamente con use vars, our, my, o nombre completo ($main::var) refs: Evitar referencias simbólicas - Por ejemplo: $var = 'valor'; print $$var; # Si no usamos strict, imprime $valor subs: No permite el uso de barewords (palabras sueltas) - exige que las llamadas a funciones se expliciten, ya sea anteponiendo el signo & o especificando una lista de parámetros entre paréntesis (aunque esté vacía). Reporte de warnings (por switch/variable, por pragma)...
<li>Un pragma define el comportamiento del compilador frente a determinadas circunstancias</li>
<li>Los pragmas se activan con <code>use pragma</code>, pero a diferencia de los módulos, pueden ser desactivados con <code>no pragma</code>.
Esta activación/desactivación es léxica - es efectiva para el bloque o el paquete (dependiendo del caso) en el que fue declarada, no para el flujo lineal de la ejecución.</li>
<li>Algunos de los pragmas más utilizados son <code>constant</code>, <code>diagnostics</code>, <code>integer</code>, <code>lib</code>, <code>vars</code>, <code>warnings</code></li>
</ul>
Mayor información:
perldoc perlmodlib
Páginas de manual específicas de cada pragma
Prinicipios básicos de la reutilización de código Cualquier problema se puede partir en problemas pequeños una y otra vez. Conviene reunir los pedazos de código (funciones) que contribuyan a la solución de un problema específico, para poderlos aplicar fácilmente en otras ocasiones Compartir código es bueno, y es mejor compartir recetas sencillas y específicas que productos completos y potencialmente más difíciles de aplicar Bibliotecas Las bibliotecas son simplemente pedazos de código que son incluídos en el programa en tiempo de ejecución, cuidando de no incluirlas más de una vez. Una biblioteca es un archivo normal de Perl, situado en algún...
subscribe via RSS