31.1 - Introduction
31.2 - Les fonctions du langage
Ce chapitre donne toutes les librairies livrées avec le langage aussi bien en PERL 4 qu'en PERL 5. Quelques considérations d'ordre général sont données en guise d'introduction
Faire une librairie en PERL est une chose assez simple, il suffit pour cela d'écrire l'ensemble des procédures dans un fichier, par convention d'extension .pl. Ce fichier sera exactement du même type qu'un fichier programme, mis à part qu'il finira par la ligne suivante :
1;
Le langage PERL est très puissant par le jeu de procédures qu'il contient. Le langage PERL transforme votre PC ou votre Macintosh en une machine possédant sed, awk, le shell script et C.
Dans la liste suivante, les parenthèses sont utilisées pour définir les éventuels arguments, elles ne sont pas nécessaires mais il est vivement conseillé de les utiliser pour ne pas se risquer dans les pièges de priorité du langage.
Quand rien n'est spécifié, les fonctions sont supportées par les versions 4 et 5 du langage. Lorsque, la fonction n'est supportée que par la version 5, cela est signalé par le mot (PERL 5).
Les arguments indiqués entre crochet, signifient qu'ils sont optionnels.
recherche la chaîne PATTERN; voir m/PATTERN/
$_="chaine de caractères" ; if ( /^c/) { print "la chaine commence par un c" ; }
recherche la première chaîne PATTERN; cette commande est utile plutôt pour tester la présence d'une chaîne de caractères dans un fichier. Cette commande sera suprimée dans les versions futures de Perl, il ne faut donc pas l'utiliser
donne la valeur absolue d'un nombre.
cette subroutine est calquée sur la procédure accept d'Unix.
envoie un signal SIGALARM au processus au bout d'un temps donné en seconde par le paramètre SECONDS
Retour : true en cas de succès, false sinon.
retourne l'arctangente de X Y dans le cercle -PI, PI
bind un socket comme l'appel système Unix du même nom
Retour : true en cas de succès, false sinon.
signale que le fichier sera lu en binaire (comme ftp). Dans ce mode aucune transformation du fichier n'est faite en cours de lecture.
l'objet REF est connu comme objet de PACKAGE si celui-ci est donné, ou du PACKAGE courant.
Retour : la référence
sans argument, retourne le contexte de la subroutine courante, avec une expression retourne le contexte et le niveau de l'expression en paramètre.
Exemple : sub exemple {
($var1,$var2,$var3,$var4) = caller ($var4) ;
} ;
&exemple ;
print "$var1 , $var2 , $var3, $var4" ;
Produit le résultat suivant: main , c:\pmail\essai.pl , 4, main'exemple
chdir change le répertoire courant pour EXPR. Si EXPR est omis, chdir va dans le répertoire d'accueil (home).
Retour : true si le changement a pu avoir lieu, false sinon
change les droits d'accès d'une liste de fichiers et les met à la valeur acces qui doit être numérique.
Retour : Le nombre de fichiers qui ont pu être changés de mode.
Exemple : chmod ( 777, ex1, ex2 );
est une version plus sécurisée de la fonction chop. Retire tous les caractères suivants le caractère $\ (qui est le séparateur de champs). Sans argument, chomp opère sur $_. Avec en argument une liste, l'opération est effectuée sur chaque élément de la liste.
Retour : le nombre de caractères supprimés.
élimine le dernier caractère de la liste. Ceci est très utilisé pour retirer la marque de nouvelle ligne d'une chaîne. Sana argument opère sur la variable $_
Retour : le caractère retiré
$chaine="exemple\n" ; chop ( $chaine ); # $chaine perd son caractère \n
donne à la liste de fichiers LIST les uid et gid voulus.
Retour: le nombre de fichiers dont l'uid et le gid ont été changés.
Retourne le caractère ASCII représenté par le nombre. (chr(65)="B")
Même commande que l'appel système du même nom.
ferme un fichier défini par son descripteur. (cf open). En cas de fermeture d'un PIPE, la fonction attend que le process soit terminé
Retour : TRUE si la fermeture s'est passé normalement.
ferme un répertoire ouvert par opendir.
connecte le SOCKET à la librairie NAME
calcule le cosinus d'une expression EXPR donné en radian
Chiffre une chaîne de caractères avec la clé. Pour mémoire, la clé sur les systèmes UNIX est obtenue par la séquence
$pwd = (getpwuid($<))[1]; $salt = substr($pwd, 0, 2);
retourne un booléen indiquant si la valeur EXPR est une expression définie dans le programme
Supprime la valeur du tableau où elle est définie.
quitte le programme en affichant la chaîne LIST sur le canal d'erreur.
retourne la valeur de la dernière commande de la séquence de commandes indiquée par BLOCK. Dans une fin de boucle par exemple, exécute une fois de plus la dernière instruction de la boucle avant de sortir.
exécute la subroutine (do est remplacé par &)
Retour : retourne le résultat de la dernière commande de la subroutine.
exécute le fichier EXPR comme un fichier perl
cause un core dump qui permet d'analyser le comportement du fichier en tant que processus.
à partir d'un tableau associatif (c'est à dire indexé par des chaînes de caractères) each renvoie un tableau à deux éléments constitué par la clé et la valeur de l'élément suivant. Ceci permet de parcourir tous les éléments d'un tableau associatif sans donner explicitement l'ensemble de ces index.
Si le tableau ne comporte plus d'élément, la valeur False est retournée.
Le tableau ne doit pas être modifié pendant le parcours.
Exemple : Pour imprimer toutes les valeurs d'environnement, la séquence suivante est particulièrement bien adaptée :
while (($cle,$valeur) = each %ENV) { print "$cle=$valeur\n"; }
teste si la fin du fichier défini par son descripteur est atteinte.
Retour : TRUE (1) si la fin du fichier est atteinte.
permet d'exécuter l'expression EXPR en perl. La valeur retournée est la valeur résultat de la dernière commande traitée par EXPR.
exécute un programme.
retourne la valeur TRUE si l'expression existe dans un tableau.
Exemple : print "existe \n" if exists $array{$key};
quitte le programme en cours en envoyant le code de sortie EXPR. Si EXPR est omis, la valeur 0 est celle par défaut.
calcule l'exponentielle de l'expression EXPR
exécute l'appel système UNIX fcntl.
donne le descripteur de fichier d'un fichier défini par son descripteur. (voir select())
voir les man pages de flock pour locker un fichier.
exécute une commande fork et retourne l'identification du process père et 0 pour le process fils.
fonction interne utilisée pour les formats, elle est utilisable en PERL 5. Voir la partie format.
retourne le caractère suivant lu sur le fichier dont le nom de descripteur est FILEHANDLE. Dans le cas, où aucun argument n'est donné, la lecture est faite sur l'entrée standard.
renvoie le nom de login de l'utilisateur courant.
donne l'adresse de la socket connectée avec la socket donnée en argument.
donne le numéro de groupe du processus identifié par l'identifiant PID. Si PID est égal à 0, PID est le processus courant.
retourne le PID du process père.
donne la priorité du process (voir l'appel système du même nom)
Ces procédures ont la même signification que les fonctions UNIX du même nom.
Exemple :
($name,$passwd,$uid,$gid, $quota,$comment,$gcos,$dir,$shell) = getpw* ($name,$passwd,$gid,$members) = getgr* ($name,$aliases,$addrtype,$length,@addrs) = gethost* ($name,$aliases,$addrtype,$net) = getnet* ($name,$aliases,$proto) = getproto* ($name,$aliases,$port,$proto) = getserv*
retourne l'adresse sous forme empaquettée de SOCKET
Exemple :
$sockadr = 'S n a4 x8'; $masockadr = getsockname(S); ($family, $port, $myaddr) =unpack($sockaddr,$mysockaddr);
retoune l'option de la SOCKET demandée
retourne la valeur de EXPR avec les extensions de nom de fichier comme l'OS le fait.
Exemple :
$valeur = glob ('test.*') ; print "$valeur"; # imprime test.pl si ce fichier est présent sur le disque
convertit dans un tableau de 9 éléments une heure donnée par EXPR.
($sec,$min,$heure,$jour,$mois,$annee,$wday,$yday,$isdst) = gmtime(time);
Si EXPR est omis, donne l'heure du système.
à n'utiliser sous aucun prétexte car elle n'est pas implémentée sur tous les interpréteurs PERL.
évalue si l'expression EXPR est présente dans chaque élément de la liste LIST et retourne un tableau avec les valeurs de recherche à vrai ou faux. Si LIST est résumé à un seul élément, la valeur de retour est le nombre d'occurrences de EXPR. EXPR peut contenir toutes les expressions régulières connues en PERL.
convertit la valeur hexadécimale EXPR en une valeur décimale.
renvoie la position de la première occurrence de SUBSTR dans STR après POSITION. Si POSITION est omis, commence au début.
Ceci n'est pas réellement une fonction mais une méthode permettant d'importer un nom depuis un module. La fonction use() utilise cette méthode.
donne la valeur entière de l'expression EXPR
est identique à l'appel système Unix du même nom.
transforme la liste ou le tableau LIST en une chaîne de caractères séparés par les caractères EXPR. C'est l'inverse de la fonction split.
Exemple : $ville = join (':', @ville ) ;
renvoie un tableau constitué de toutes les clés du tableau associatif.
Exemple :
@keys = keys %ENV; @values = values %ENV; while ($#keys >= 0) { print pop(@keys), '=', pop(@values), "\n"; }
envoie le signal numero à une liste de Process LIST. Si le numéro donné est négatif, kill envoie un process groupe.
Retour : Le nombre de proccess sur lesquels un signal a été envoyé.
permet une rupture dans les boucles et les instructions répétitives pour aller à l'étiquette LABEL.
retourne EXPR en caractères minuscules
retourne EXPR dans la capitalisation d'origine sauf le premier caractère qui est forcé en minuscule.
donne le nombre de caractères de l'expression EXPR .
un lien LINK sur le fichier FILE.
Retour: 1 en cas de succès, 0 sinon.
identique à l'appel système du même nom
déclare une liste de variables dans le block courant, dans la subroutine etc.
donne l'heure système dans un tableau à neuf éléments comme suit :
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
donne le logarithme en base e de EXPR
identique à la fonction stat mais sur un lien.
Cette commande est sans doute la plus usitée en PERL. Elle permet de tester la présence d'une chaîne de caractères dans une chaîne. Mais elle est très déroutante car elle peut être utilisée de nombreuses façons.
Le caractère m est optionnel, il peut être omis si le caractère qui le suit est /, sinon il est indispensable.
les symboles / peuvent être remplacés par tout autre caractère (ce qui est utile si le caractère / est présent dans le PATTERN )
Exemple : m;/etc/passwd; permet de rechercher la chaîne /etc/passwd
le symbole g indique qu'il faut réitérer la recherche plusieurs fois
le symbole i permet de ne pas distinguer les majuscules des minuscules
le symbole o permet de ne pas interpréter la chaîne PATTERN, c'est à dire à ne pas développer les expressions régulières comprises dans PATTERN.
Enfin, la commande peut être utilisée de 3 façons :
- seule, sa valeur de retour est placée dans $_
- avec =~ sa valeur est placée en tant que booléen dans la variable de retour
- avec !~ sa valeur est placée comme négation du booléen dans la variable de retour
Exemples :
- $base= ($file=~m|.*/([^/]+)$|); est la commande basename d'UNIX qui renvoie le nom d'un fichier quand il est collé au bout de son chemin d'accès .
- if ($reponse=~ /OUI/i) teste $reponse est OUI, Oui, OUi, ou oui.
évalue BLOCK ou EXPR pour tous les éléments de LIST et retourne une liste composée des résultats de toutes les évaluations
Exemple :
@chars = map(chr, @nums); # convertit la liste des nombre de @nums dans les caractères correspondants.
Crée le répertoire REP, avec les permissions (Unix) MODE
Retour : 1 en cas de succès 0 sinon.
voir les appels systèmes V du même nom.
déclare les variables locales aux bloc courant. A la différence de la fonction local les variables déclarées sont totalement masquées à l'extérieur du bloc ce qui est utile pour les déclarations de subroutines.
sort de la boucle ou de la fonction répétitive en cours pour aller sur l'instruction suivant le block.
l'opposé de la fonction use.
transforme la valeur octale EXPR en une valeur décimale.
ouvre le fichier EXPR, et lui associe le descripteur FILEHANDLE. Si EXPR est omis, le nom du fichier est FILEHANDLE. Si le nom du fichier commence par :
> : le fichier est ouvert en écriture et vidé le cas échéant
>> : le fichier est ouvert en écriture pour que les données qui seront écrites le soient à la fin du fichier.
< : le fichier est ouvert en lecture.
>+< : le fichier est ouvert en lecture et écriture.
Si la valeur EXPR vaut :
>- : ouvre la sortie standard.
- : ouvre l'entrée standard
| : le fichier est un pipe
Des commandes peuvent être enchaînées derrière le symbole |, par exemple "|sort" triera la sortie du fichier ouvert.
Retour : valeur non nulle en cas de succès.
Ouvre un répertoire nommé EXPR avec un descripteur de répertoire DIRHANDLE. Cette ouverture permettra d'exécuter les fonctions readdir(), telldir(), seekdir(), rewinddir() et closedir().
Retour : true en cas de succès
donne la valeur numérique décimale du caractère ASCII EXPR. Si EXPR est une chaîne de caractères, ord donne la valeur ASCII du premier caractère de la chaîne
transforme un tableau ou une liste de valeurs en une structure binaire
Retour : la chaîne de caractères contenant la structure binaire
TEMPLATE est une séquence de caractères qui donne l'ordre et le type des valeurs comme suit :
- AAn chaîne ascii complétée par des blancs
- aAn chaîne ascii complétée par des 0.
- cA caractères signés.
- CAn caractères non signés
- sA entier short signé
- SAn entier short non signé
- iA entier signé
- IAn entier non signé
- lA entier long signé
- LAn entier long non signé
- nA entier short dans l'ordre RPC
- NA entier long dans l'ordre RPC
- fA réel simple précision
- dA réel double précision
- pA pointeur sur une chaîne de caractères
- vA entier short dans l'ordre little endian
- VA entier long dans l'ordre little endian
- xA caractère null
- XBack un caractère au dessus.
- @Null remplit dans la position absolue
- uA chaîne uuencodée
- bA chaîne de bits en ordre ascendant
- BA chaîne de bits en ordre descendant
- hA chaîne en hexadécimal ordre ascendant
- HAchaîne en hexadécimal ordre descendant
Chaque lettre peut être suivie par un compteur de répétition.
Exemples:
$toto = pack("cccc",65,66,67,68); donne "ABCD"
$toto = pack("c4",65,66,67,68); même chose
$toto = pack("ccxxcc",65,66,67,68); donne "AB\0\0CD"
$toto = pack("s2",1,2); donne "\1\0\2\0"
ouvre un pipe comme l'appel système du même nom.
donne la dernière valeur d'un tableau.
retourne la position donnée par la dernière commande m//g.
affiche une chaîne de caractères ou une liste. Retourne une valeur non nulle en cas de succès. Si FILEHANDLE est spécifié, l'écriture se fait dans le fichier de descripteur FILEHANDLE. Dans le cas contraire l'écriture se fait sur la sortie standard.
Exemple1:
$exemple="chaine de caractère\n libre \n " ; #Cette syntaxe permet d'afficher la syntaxe entre <<MARQUE #(tous les symboles doivent être attachés) et la balise MARQUE qui doit # être mise en première colonne print <<MARQUE; impression de $exemple et du reste MARQUE
Ceci affichera le texte après substitution de la chaîne exemple.
Exemple2:
#combinaisons #Cette syntaxe permet d'afficher la séquence en utilisant une seule fois # la commande print print <<MARQUE1 , <<MARQUE2 ; bonjour bonsoir MARQUE1 Comment ça va ? Très bien ! MARQUE2
Ceci affichera
bonjour bonsoir Comment ça va ? Très bien !
permet d'afficher la chaîne de caractères comme avec print mais en utilisant les arguments de la commande sprintf pour le formatage des données (voir sprintf).
ajoute LIST à la fin du tableau ARRAY.
q/STRING/, qq/STRING/ et qx/STRING/ permettent de coter une portion de chaîne de caractères sans coter tous ces caractères. q correspond à une simple cote et qq à une double. Le caractère / peut être remplacé par n'importe lequel des caractères non contenus dans STRING.
Exemple :
$toto = q!Qu'il est laid "le bidet"! ;
retourne la valeur de EXPR avec tous les caractères interprétés comme caractères de contrôle d'expression régulière précédés d'un antislash.
Exemple :
$valeur = "(3,4)toto.titi" ; $valeur = quotemeta ($valeur) ; print "$valeur\n" # imprime \(3\,4\)toto\.titi
renvoie un nombre aléatoire compris entre 0 et EXPR ou entre 0 et 1 si EXPR est omis.
lit au plus LENGTH octets rangés dans la variable SCALAR depuis le fichier identifié par le descripteur FILEHANDLE. Le paramètre OFFSET sert à spécifier que les données lues, seront rangées avec le décalage OFFSET dans la chaîne de caractères.
Retour : le nombre d'octets lus.
retourne le fichier suivant dans le répertoire ouvert avec le descripteur de répertoire DIRHANDLE
donne la valeur du lien symbolique EXPR.
reçoit sur le socket SOCKET, LEN octets qui sont stockés dans la variable SCALAR. FLAGS a le même usage que dans l'appel système du même nom.
exécute une boucle en se branchant à l'étiquette LABEL sans tester la condition de sortie de boucle.
retourne la valeur TRUE si EXPR est une référence du type REF. Si EXPR est du type SCALAR, ARRAY, HASH, CODE GLOB c'est cette valeur qui est retournée. Dans le cas où EXPR n'est d'aucun de ces types FALSE est retourné.
renomme le fichier OLDNAME en NEWNAME.
requiert la librairie EXPR.
réinitialise les variables commençant par la valeur EXPR.
retourne la valeur LIST d'une procédure. Si return est omis, la procédure retournera la valeur de la dernière commande de la subroutine.
dans un tableau ou une liste LIST, retourne la liste dans l'ordre inverse.
positionne la valeur du répertoire courant pour la procédure readdir à la valeur DIRHANDLE.
renvoie la position de la dernière occurrence de SUBSTR dans STR après POSITION. Si POSITION est omis, commence à la fin de la chaîne.
supprime le répertoire FILENAME si celui si est vide.
Retour : 1 en cas de succès.
recherche la chaîne PATTERN pour la remplacer par la chaîne REPLACEMENT. Le paramètre g indique que la substitution doit être faite sur toutes les occurrences. Le paramètre i indique que les caractères majuscules ou minuscules sont pris en compte. Le paramètre e indique que la chaîne REPLACEMENT est une expression à évaluer et non pas une chaîne de caractères. Les caractères / peuvent être remplacés par un caractère quelconque. Les caractère =~ et != permettent d'affecter la chaîne donnée à gauche.
Retour : le nombre de substitutions effectuées.Exemples :
- s/\bblanc\b/noir/g; # ne change pas blanche
- $path =~ s|/usr/bin|/usr/local/bin|;
- s/Login: $nom/Login: $valeur/;
force EPXR à être interprété en tant que scalaire et retourne la valeur interprétée.
positionne le pointeur de fichier dont le descripteur est FILEHANDLE à la position POSITION.
Retour : 1 en cas de succès.
positionne le répertoire courant sur DIRHANDLE, au vu de la procédure readdir. POS doit être une valeur retournée par telldir.
donne le descripteur de fichier sélectionné. Ceci permet d'écrire ou de lire sur un fichier sans utiliser explicitement le descripteur.
identique à l'appel système du même nom.
identique à l'appel système du même nom.
identique à l'appel système du même nom.
envoie un message sur un socket. Prend le même FLAG que l'appel système du même nom
positionne le PID comme l'appel système du même nom.
donne la priorité à un process, un groupe de process ou un utilisateur.
positionne les options du socket courant.
décale les valeurs d'un tableau du dernier vers le premier.
Retour : la première valeur du tableau
Exemple : pour enlever le premier champ de la ligne "100:Maire:Gilles" on peut faire la chose suivante :
@champs=split (':',"100:Maire:Gilles") ; shift (@champs) ; $ligne =join (':',@champs ) ;
voir les appels système V du même nom au sujet de la gestion de la mémoire partagée.
coupe une connexion comme l'appel système du même nom.
donne le sinus en radian de EXPR
provoque une attente de EXPR secondes
crée un socket comme l'appel système du même nom.
voir l'appel système du même nom
trie une liste est retourne la liste triée. Si le paramètre SUBROUTINE est présent, il spécifie le nom d'une procédure qui retourne un entier inférieur, égal ou supérieur à 0 selon l'ordonnancement des éléments de la liste. On retrouve souvent ici les procédures > ou <=.
Exemples:
- @articles = sort @files;
- @articles = sort {$a cmp $b} @files;
- @articles = sort {$a <=> $b} @files;
- sub byage { $age{$a} <=> $age{$b}; }
- @sortedclass = sort byage @class;
supprime LENGTH éléments du tableau ARRAY qui sont situés à l'offset OFFSET et les remplace par les éléments contenus dans LIST. Si LENGTH et omis, supprime tous les éléments à partir de OFFSET
Retour : le nombre d'éléments supprimés.
éclate une chaîne de caractères EXPR dans un tableau qui est retourné. Le caractère PATTERN (par défaut le caractère blanc) sert de délimiteur de champs. PATTERN peut être plus long qu'un seul caractère. Le paramètre LIMIT donne le nombre maximum d'éléments du tableau à remplir, par défaut il n'y a pas de limite. C'est l'inverse de la fonction join.
Exemple 1 :
($login, $passwd, $uid, $gid, $gcos, $home, $shell) = split(/:/);
Exemple 2 :
($login, $passwd, @reste) = split(/:/); # les champs suivants sont rangés dans le tableau @reste
retourne une chaîne de caractères formatée avec les convention C de printf. Le caractère * n'est pas supporté.
donne la racine carrée de EXPR
positionne la valeur de seuil pour la fonction random
retoune un élément à 13 valeurs donnant les statistiques d'un fichier comme suit : ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, $atime,$mtime,$ctime,$blksize,$blocks) = stat($filename);
étudie SCALAR et renvoie les chaînes de caractères avant de faire une opération de dubstitution par exemple. Ceci permet de gagner du temps. (En cours de rédaction)
extrait la sous chaîne commençant à l'adresse OFFSET et de longueur LEN dans l'expression EXPR. Si OFFSET est de valeur négative, le déplacement est pris à partir de la fin de la chaîne. Si LEN est omis retourne la totalité de la chaîne à partir de l'adresse OFFSET.
crée un nouveau lien symbolique NEWFILE sur le fichier OLDFILE.
Retour : 1 en cas de succès.
provoque l'appel système donné par le premier élément de la liste LIST.
lit LENGTH octets de données depuis le fichier identifié par son descripteur FILEHANDLE. Le résultat est mis dans la variable SCALAR. Cette opération est faite par l'appel système read.
Retour : le nombre d'octets lus.
fork un process appelé par la commande exec.
écrit LENGTH octets de données depuis la variable SCALAR sur le fichier défini par son descripteur FILEHANDLE, avec l'appel système write.
Le déplacement OFFSET permet de placer les données lues avec un déplacement.
Retour : le nombre d'octets effectivement écrits.
retourne la position courante du descripteur de fichier FILEHANDLE.
retourne la position du descripteur de répertoire DIRHANDLE utilisé par la procédure readdir.
lie une fonction à un paquetage qui permettra l'utilisation de VARIABLE. Typiquement, ceci est utilisé avec le paquetage DBM. Un paquetage concernant un tableau associatif doit avoir les méthodes suivantes : TIEHASH objectname, LIST ; DESTROY this ; FETCH this, key ; STORE this, key, value ; DELETE this, key ; EXISTS this, key ; FIRSTKEY this ; NEXTKEY this, lastkey. Un paquetage concernant un tableau ordinaire comporte les méthodes suivantes: TIEARRAY objectname, LIST ; DESTROY this ; FETCH this, key ; STORE this, key, value . Un paquetage concernant les valeurs scalaires doit avoir les méthodes suivantes : TIESCALAR objectname, LIST ; DESTROY this ; FETCH this ; STORE this, value.
donne le nombre de secondes écoulées depuis le 1er Janvier 1970 . Le résultat est fourni sous la forme d'un tableau à quatre éléments donnant l'heure système et l'heure utilisateur, ainsi que les temps écoulés pour le process.
Les temps sont ($user,$system,$cuser,$csystem) = times;
retoune un tableau de quatre éléments donnant le temps utilisateur et le temps CPU en secondes pour le processus en cours et les processus fils.
traduit toutes les occurrences des caractères présents dans SEARCHLIST en caractères de remplacement donnés par la liste REPLACEMENTLIST.
Le caractère c signifie que SEARCHLIST est complémenté, le caractère d que les caractères trouvés doivent être détruits. Le caractère s spécifie que les caractères répétitifs doivent être résumés à un seul d'entre eux.
Retour : le nombre de caractères remplacés ou détruits.
Exemple :
- $c = tr/*/*/; # nombre d'étoiles dans $_
- $c = tr/0-9//; # nombre de digits dans $_
- tr/a-zA-Z//s; # Giiiilllles devient Giles
- ($HOST = $host) =~ tr/a-z/A-Z/; #capitalise
tronque le fichier ouvert avec le descripteur FILEHANDLE en un fichier de LENGTH octets.
retoune les caractères de EXPR en majuscule.
retourne les caractères de EXPR avec la première lettre forcée en majuscule.
met la valeur umask pour le process et retourne l'ancienne valeur de umask. Si EXPR est omis, retourne la valeur courante de umask
annule la définition de l'expression EXPR.
supprime la liste de fichiers LIST et retourne le nombre de fichiers détruits.
fait l'inverse de la procédure PACK, à savoir qu'à partir d'une structure unpack fabrique un tableau de valeurs. Le paramètre TEMPLATE a les mêmes définitions que dans pack.
à l'opposé de shift, fabrique un tableau ARRAY à partir d'une liste LIST.
annule la liaison entre VARIABLE et le package lié par tie.
change les dates d'accès et de modification sur chacun des fichiers de la liste. Les deux premiers éléments de la liste doivent être numériques et concernent la date d'accès et de modification.
Retour : le nombre de fichiers dont la date a pu être changée.
est équivalent à BEGIN { require MODULE; import MODULE LIST; }
retourne un tableau contenant toutes les valeurs d'un tableau associatif. Les valeurs sont rendues dans un ordre récupérable avec les fonctions key() et each ()
traite une chaîne de caractères EXPR comme un vecteur d'entiers non signés et retourne la valeur du bit spécifié par BITS. Les vecteurs créés avec vec() peuvent être manipulés avec les opérateurs |, & et ^. OFFSET est le déplacement à partir duquel on traite l'octet.
Retour : numéro du process achevé ou -1 en cas d'échec.
attend que le process fils soit terminé.
attend qu'un process identifié par PID se termine .
Retour : numéro du process achevé ou -1 en cas d'échec.
retourne true si le contexte de la procédure qui s'exécute attend un tableau en entrée et faux si elle attend un scalaire.
produit un message d'erreur sur la console
écrit une donnée sur un fichier dont le descripteur est FILEHANDLE.
idem tr