Variables
Escalares
my $fichero = "sec29.fa";
print $fichero . "\n";
Arrays
my @bases = ("A", "C", "G", "T");
print $bases[0] . "\n";
print $bases[1] . "\n";
print $bases[2] . "\n";
print $bases[3] . "\n";
Arrays asociativos
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
print $recuento{"A"} . "\n";
print $recuento{"C"} . "\n";
print $recuento{"G"} . "\n";
print $recuento{"T"} . "\n";
Condicionales
If…
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
if ($recuento{"A"} > $recuento{"T"}) {
print "Hay más adeninas que timinas.\n";
}
If… else…
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
if ($recuento{"A"} > $recuento{"T"}) {
print "Hay más adeninas que timinas.\n";
} else {
print "No hay más adeninas que timinas.\n";
}
If… elsif… else…
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
if ($recuento{"A"} > $recuento{"T"}) {
print "Hay más adeninas que timinas.\n";
} elsif ($recuento{"A"} < $recuento{"T"}) {
print "Hay menos adeninas que timinas.\n";
} else {
print "Hay las mismas adeninas que timinas.\n";
}
Unless
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
unless ($recuento{"A"} > $recuento{"T"}) {
print "No hay más adeninas que timinas.\n";
}
Condicional de postfijo
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
print "Hay más adeninas que timinas.\n" if $recuento{"A"} > $recuento{"T"};
Operador ternario
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
my $masAqueT = $recuento{"A"} > $recuento{"T"} ? "Sí" : "No";
print "¿Hay más A que T?: $masAqueT\n";
Bucles
While…
my $contador = 0;
while ($contador < 10) {
print $contador . "\n";
$contador++; # incrementa el contador en 1
}
print "El bucle while ha terminado.\n";
Until…
my $contador = 10;
until ($contador > 0) {
print $contador . "\n";
$contador--; # decrementa el contador en 1
}
print "El bucle until ha terminado.\n";
Do… while…
my $contador = 0;
do {
print "$contador\n";
$contador++;
} while ($contador < 10)
print "El bucle do... while... ha terminado.\n";
For…
my %recuento = ("A" => 0, "C" => 0, "G" => 0, "U" => 0);
my $secuencia = "CCAAUAGGAGCUGCCAGGAAUAGUUCCCCUGCGAGGACCACGACGCUUCGCCGCGCGGCUCACGCCCAA";
for (my $posicion = 0; $posicion < length($secuencia); $posicion++) {
my $base = substr($secuencia, $posicion, 1);
print "$posicion: $base\n";
$recuento{$base}++;
}
Foreach…
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
foreach my $base (keys %recuento) {
print $recuento{$base} . "\n";
}
Last
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
foreach my $base (keys %recuento) {
print $base . ": " $recuento{$base} . "\n";
last if $base eq "G";
}
Next
my %recuento = ("A" => 215, "C" => 231, "G" => 209, "T" => 306);
foreach my $base (keys %recuento) {
next if $base eq "G";
print $base . ": " $recuento{$base} . "\n";
}
Bucle de postfijo
my @bases = ("A", "C", "G", "T");
print $_ foreach @bases;