2. Dades I Operadors
● tipus bàsics: $scalar @array %hash
● cadenes de caràcters
● operadors numèrics i de cadenes
● control del flux: condicionals, bucles i errors
● entrada/sortida: STDIN STDOUT
3. * Before we start...
$ perldoc
#!/usr/bin/perl
#!/usr/bin/env perl
use strict;
6. Strings
Datos de texto o binarios, sin significado para el
programa, delimitados tipicamente por comillas
sencillas o dobles:
7. Strings
my $world = 'Mundo';
my $escaped = 'Dan O'Bannon';
my $backslash = '';
8. Comillas dobles
my $newline = "n";
my $tab = "t";
my $input = "hellonworld!";
my $data = "08029t25";
my $data = "08029,"Eixample Esquerra"";
my $data = qq{08029,"Eixample Esquerra"};
19. Notación
Las variables son precedidas de un sigil que
indica el tipo de valor de la variable:
$ Escalar
@ Arreglo
% Hash
e.g.
my($nombre, @nombre, %nombre);
20. Para acceder el elemento de un arreglo o hash,
se utiliza el sigil escalar:
$nombre{$id} = 'Ann';
$nombre[$pos] = 'Ben';
21. Es posible acceder múltiples valores al mismo
tiempo utilizando el sigil de arreglo:
@nombre{@keys} = @values;
@suspendidos = @nombre[@selected];
@authors =("Asimov","Bear","King");
@authors = qw(Asimov Bear King);
26. Operadores y su precedencia
( y su asociatividad ( y su arity ( y su fixity ) ) )
27. $ perldoc perlop
left terms and list operators (leftward)
left −>
nonassoc ++ −−
right **
right !~ and unary + and − left =~ !~ left */%x left +−.
left << >> nonassoc named unary operators nonassoc <><=>=ltgtlege
nonassoc ==!=<=>eqnecmp~~ left & left |^ left && left || // nonassoc .. ...
right ?: right =+= −= *= etc. left ,=> nonassoc list operators (rightward)
right
left
left
not and or xor
42. * Booleano
my $a = 0;
print "a is truen" if $a;
$a = 1;
print "a is truen" if $a;
$a = "a";
print "a is truen" if $a;
my $numeric_x = 0 + $x; # forces numeric context
my $stringy_x = '' . $x; # forces string context
my $boolean_x = !!$x; # forces boolean context