L'utilisation de use strict rend la déclaration des variables
obligatoires. Avec Perl, c'est la fonction unique my qui sert à
déclarer les variables et tableaux, en effet, Perl n'est pas un
langage typé et un variable peut contenir un entier, un caractère ou
un tableau de caractère, un flottant, un long, un double, ...elle
est toujours déclarer avec la même fonction.
Ainsi le code suivant ne fonctionnera pas alors qu'il est correct et
fonctionnera sans problème si on retire le use strict en ligne
3 :
#!/usr/bin/perl use strict; $entry = <STDIN>; print $entry;
Dans l'exemple ci-dessus, nous avons utilisé une variable en tant que valeur textuelle. Il est bien entendu que algébriquement parlant, mener une opération entre deux valeurs textuelles est relativement compromis. Perl, en fait ne donnera pas un type précis à une variable et nous utiliserons le contexte pour dire à Perl si nous souhaitons un type particulier.
#!/usr/bin/perl use strict; my $a = 1; my $b = "4"; my $result = $a + $b; print $result . "\n";
Donnera le resultat suivant :
[~] $ ./test.pl 5 [~] $
Une autre possibilité de Perl pour stocker des données en mémoire est l'utilisation des tableaux. Au lieu d'utiliser le $ le tableau utilise le signe distinctif @ .
Un tableau est une association de variables, ainsi le tableau
@tab est constitué des variables
$tab[0], $tab[1] ... $tab[n]
Pour récupérer les valeurs qui remplissent un tableau, il existe la
fonction foreach . Sachant que le tableau @ARGV contient tous les
arguments que l'on a passé au programme au moment de le lancer, voici
un petit programme qui va compter les options qui lui sont passées et va
les afficher :
#!/usr/local/bin/perl
use strict;
my $tmp;
my @tab = @ARGV;
my $id = "0";
foreach $tmp(@tab)
{
$id++;
print("$tmp\n");
}
print("$id options\n");
Nous donnera le résultat suivant :
~/perl $ ./ex.pl je tape un certain nombres d\'options je tape un certain nombres d'options 6 options ~/perl $
Il existe des variables déja définies par Perl.
Par exemple : $_ est remplie, si aucune autre variable n'est
précisée, lorsque l'on fait rentrer une valeur par un
filehandle.
Le tableau @_ est rempli par les options que
l'on passe à un sub . la
variable $! contient le dernier message d'erreur. Comme déjà
précisé plus haut, @ARGV reprend les options passés au
script depuis l'invite.
Toutes ces variables n'ont pas besoins d'être déclarées, même en
utilisant use strict , c'est Perl qui se charge de les déclarer
automatiquement.