Notions de Perl
VARIABLES ET TABLEAUX SPECIAUX
Ce sont les variables sous la forme $c, c étant un caractère non alphabétique. • $_ La dernière ligne lue (au sein d’une boucle + while 😉 • $! La dernière erreur, utilisé dans les détections d’erreurs • $& La dernière chaine trouvé par une recherche d’expression régulière (avec =~) open(F,’fichier’) || die « erreur $! » • $1, $2, …le contenu de la parenthèse numéro dans la dernière expression régulière • $0 Le nom du programme • @_ contient les paramètres passés à une procédure. • @ARGV contient les paramètres passés au programme
PASSAGE DE PARAMETRES En Unix (ou Windows)
on peut appeler un programme Perl en lui donnant des paramètres, comme on le fait pour les commandes Unix
Les paramètres sont stockés dans un tableau spécial : @ARGV Le premier paramètre est donc $ARGV[0], le second $ARGV[1], etc.
Exemple de passage de parametres:
if ($#ARGV != 0) { print « Program <Fasta sequence file> \n »; exit; }
open(F, $ARGV[0]) || die (« file not found\n »);
PROCEDURES
Déclaration d’une procédure: sub monprint { print $_[0], « \n » } Appel d’une procédure: monprint ($seq); • Fonctions
Une fonction est une procédure qui retourne une valeur (résultat d’un calcul, vrai ou faux, etc..)
sub pluriel { $s = $_[0]. »s »; return ($s); } • « My »
Contrairement à notre attente, le programme suivant imprime « portes, portes » (et non pas « porte, portes »).
$a = « porte »; $b = pluriel ($a); print « $a, $b \n »;
sub pluriel { $a = $_[0]. »s »; return ($a); }
La raison est que les variables employées dans les procédures sont des variables GLOBALES (ici $a). C’est à dire que si elles sont modifiées dans la procédure, elle le sont aussi dans la programme principal.
Pour ne pas modifier les variables par inadvertance, il faut les déclarer dans la procédure comme LOCALES, avec l’instruction « My »:
sub pluriel { my $a; $a = $_[0]. »s »; return ($a); }
Employée dans le programme ci-dessus, cette procédure affichera le résultat escompté (« porte, portes »).