link, unlink, rename, mkdir, rmdir
les "slices" : une tranche
@tableau = (22, 43, 445);
@tab2 = @tableau[1,2];
# @tab2 contient maintenant (43, 445);
@tab3 = qw( bob bill joe steve)[2,3];
# @tab3 contient ('joe', 'steve');
grep et map sont issus tout droit du monde de la programmation fonctionnelle (la famille de langage qui comprend lisp, sheme, ml, etc.). ils supposent un "mode de pensée" qui diffère du mode "procédural" et sont donc plus rarement vu.
sort, par contre, est très utilisé, sous plusieurs variantes :
# Merci à la documentation de Perl : http://www.perldoc.com/perl5.8.0/pod/func/sort.html
# tri "asciibetique"
@articles = sort @files;
# idem, mais avec comparaison explicite en mode "chaine"
@articles = sort {$a cmp $b} @files;
# tri insensible à la case
@articles = sort {uc($a) cmp uc($b)} @files;
# tri asciibetique, mais inverse
@articles = sort {$b cmp $a} @files;
# tri numérique
@articles = sort {$a <=> $b} @files;
# tri numérique descendant
@articles = sort {$b <=> $a} @files;
# tri le tableau associatif %age bar sa valeur plutot que par la clé
# en utilisant une fonction "en-ligne" : remarquez l'absence de virgule...
@eldest = sort { $age{$b} <=> $age{$a} } keys %age;
# tri avec une fonction défini explicitement
sub parage {
$age{$a} <=> $age{$b}; # on suppose que les valeurs sont numériques.
}
@classetrie = sort parage @classe;
Il y a plusieurs autres exemples : voir la documentation pour en avoir plus
Exemple pour each:
while (($key,$value) = each %ENV) {
print "$key=$value\n";
}
Note pour keys, values et each : l'ordre dans lequel les entrées sont retournées est imprévisible : ce n'est PAS l'ordre dans lequel les entrées ont été mises dans le tableau associtatifs. Ça peut l'être, mais il est probable que non.
chdir : change le répertoire "courant" du processus Perl.
die : meurt bruyamment, pour les cas d'erreur : affiche ses paramètres sur l'erreur standard.
exit : sort "gentiment" du programme. Va retourner la valeur passé en paramètres au processus qui a appelé le programme : utile dans les scripts shell.
"Dort" le nombre de secondes passé en paramètres.
Evalue et exécute le code perl passé en paramètres.
$code = '$a = "bob"; print $a;'; eval $code; # execute le contenu de $code
Permet l'exécution de programmes externes.
exec : remplace le script en cours par le programme appelé. Votre script s'arrête à cet endroit et passe la main à l'autre programme.
system : appele un programme externe et retourne la valeur retournée par le programme.
print "tout est ok\n" if (!system("cp", $source, $dest)); # cp retourne 0 si tout va bien
qx// et/ou `` (aussi appelé l'opérateur "backticks"):
Exécute le contenu passé et retourne la sortie du programme.
print `who`; # affiche la sortie du programme who;
kill, fork, wait
kill(SIGNAL, PID): Envoie un signal au processus donné.
fork : lance un processus fils
wait : sert à attendre la "mort" d'un processus fils qu'on aurait lancé au préalable.
chomp: Coupe les sauts de lignes à la fin de la chaine. Si on passe un tableau, coupe les sauts de ligne à la fin de chaque éléments du tableau.
chop : coupe le dernier caractère, peu importe ce que c'est.
Encrypte la chaine en utilisant les fonctions unix traditionnelle de crypt. Encryption à sens unique, relativement faible : voir d'autres mode d'encryption plus poussé pour du "travail sérieux", ie MD5, DES, Blowfish, etc.
substr CHAINE,DEPART[,LONGUEUR [,REMPLACEMENT]]
Extrait une chaine de caractère d'une autre chaine, a partir de DEPART, de LONGUEUR nombre de caractères, en la remplacant par REMPLACEMENNT.
Retourne la longueur de la chaine passé en paramètre.
Trouver la documentation de ces fonctions, trouver d'autres fonctions