====== Variables et tableaux en Perl ======
==== Variables: ====
En perl, les variables n'ont pas de type comme en basic.
$i = "toto";
$i = 123;
$i = 4.5;
$variable = 123;
undef $variable;
if (defined $variable)
{
print "\$variable bien definie ma poule!\n";
}
else
{
print "\$variable non definie.\n";
}
==== Tableaux: ====
Pour un tableau:
@tab = ( "abc", 123, 45.6 );
@tab = qw( "abc" 123 45.6 );
@tab = ();
push "toto", @tab;
Nombre d'éléments:
print $#tab;
print scalar(@tab);
print( @tab );
print( $tab[0] );
foreach $var ( @tab )
{
print $var;
}
@a = {0, 1, 2, 3, 4};
print "Deleting \$a[4].\n";
delete $a[4];
if (exists($a[4]))
{
print "Element is initialized.";
}
else
{
print "Element is not initialized.";
}
push(@tab, "un");
push(@tab, "deux");
push(@tab, "trois");
print $tab[0];
un
# tri
@sorted = sort @tab;
@tab= ("un", "deux", "trois");
$variable = pop(@tab);
print $variable;
trois
@tab = ("un", "deux", "trois");
$variable = shift(@tab);
print $variable;
un
unshift @tab, "trois";
unshift @tab, "deux";
unshift @tab, "un";
print $tab[0];
un
Entree standard:
@lignes = ;
==== Les Hashs ====
[[http://www.cs.mcgill.ca/~abatko/computers/programming/perl/howto/hash/]]
%trad = ( 'january' => 'janvier',
'february' => 'fevrier',
'march' => 'mars' );
%trad = ();
$trad{ 'april' } = 'avril';
print "$trad{'january'}\n";
@liste_clef = keys(%trad);
@liste_valeurs = values(%trad);
($clef,$valeur) = each(%trad);
delete($trad{'february'});
print map "$_ => $trad{$_}\n", keys %trad;
if (exists($trad{'january'}))
{
print "ok pour janvier.";
}
else
{
print "perdu!";
}
while( ($clef, $valeur) = each(%trad))
{
print "$clef => $valeur\n";
}
$h1{fruit} = apple;
$h1{sandwich} = hamburger;
$h1{drink} = bubbly;
$h2{cake} = chocolate;
$h2{pie} = blueberry;
$h2{'ice cream'} = pecan;
# merge de hash ( ou copie?)
%h3 = (%h1, %h2);
print $h3{'ice cream'};