SELFHTML/Quickbar
CGI/Perl
Éléments de langage Perl
![]() |
Travailler avec des nombres et le temps |
![]() |
|
![]() |
Il existe dans Perl des fonctions
Perl corresondantes pour les plus importantes des plus hautes fonctions mathématiques./p>
#!/usr/bin/perl $valeurabs = abs(-45683); print "La valeur absolue de -45683 est: ", $valeurabs, "\n"; $racine = sqrt(23876); print "La racine carrée de 23876 est: ", $racine, "\n"; $entier = int(sqrt(3298476)); print "Le nombre entier correspondant à la racine carrée de 3298476 est: ", $entier, "\n"; $Puissance = exp(39); print "L'élévation à la puissance 39 de la constante e est: ", $Puissance, "\n"; $Log = log(23); print "Le logarithme naturel de 23 en base e est: ", $Log, "\n"; $Sinus = sin(1.2387); $Cosinus = cos(10.237); $arctangente = atan2(1.389,2.438); print "Le sinus de 1.2387 est: ", $Sinus, "\n"; print "Le cosinus de 10.237 est: ", $Cosinus, "\n"; print "L'arctangente de 1.389/2.438 est: ", $arctangente, "\n"; @valeurshexa = (10,20,30,40,50,60,70,80,90,A0,B0,C0,D0,E0,F0); for(@valeurshexa) { $valeursdecimales = hex($_); print $_, " est décimal: ", $valeursdecimales, "\n"; } |
Avec la fonction abs vous pouvez forcer un nombre à être positif
dans tous les cas. Transmettez à la fonction le nombre qui doit être traité.
La fonction renvoie la valeur traitée.
Avec sqrt vous pouvez calculer la racine carrée d'un nombre.
Transmettez à la fonction le nombre dont vous voulez extraire la racine carrée.
La fonction renvoie le résultat.
Avec int vous obtenez d'un nombre avec décimales la partie entière,
donc pour 3.1415 par exemple le nombre 3. Transmettez à la fonction le nombre
dont vous voulez éliminer les chiffres après la virgule. La fonction retourne
le résultat. Dans l'exemple ci-dessus sur cette fonction vous voyez par ailleurs
comment, en Perl, on peut transmettre une fonction à une autre fonction. La
fonction calcule dans cet exemple la valeur retournée par la fonction pour la
racine carrée.
La fonction exp retourne la constante e élevée à la
puissance désirée. Mentionnez la puissance désirée comme paramètre. La
fonction retourne la résultat.
La fonction log recherche le logarithme naturel d'un nombre en
base e. Transmettez le nombre désiré comme paramètre. La fonction
retourne le résultat.
Quant aux fonctions géométriques, Perl dispose de sin pour sinus, cos
pour cosinus et atan2 pour le calcul en radians. Transmettez à ces
fonctions le nombre désiré. L'arc tangente attend deux valeurs: de et à. Les
fonctions retournent le résultat.
Outre ces fonctions, les calculs avec des opérateurs
de calcul sont bien sûr possibles.
Pour convertir les valeurs hexadécimales en valeurs décimales, vous pouvez employer la fonction hex. Transmettez à la fonction une valeur hexadécimale (chiffres de 0 à 9 et lettres de A à F). La fonction retourne la valeur décimale.
![]() ![]() |
Perl propose des fonctions pour rechercher la date et l'heure.
#!/usr/bin/perl $valeuractuelle = time(); $heureactuelle = localtime($valeuractuelle); &nomsfrancais; @temps = split(/ +/,$heureactuelle); @heure = split(/:/,$temps[3]); print "Bonjour!\n"; print "Aujourd'hui c'est ",$temps[0],", le ",$temps[2]," ",$temps[1]," ",$temps[4],"\n"; print "Il est maintenant ",$heure[0],":",$heure[1]," heures\n"; sub nomsfrancais { $heureactuelle =~ s/Mon/lundi/; $heureactuelle =~ s/Tue/mardi/; $heureactuelle =~ s/Wed/mercredi/; $heureactuelle =~ s/Thu/jeudi/; $heureactuelle =~ s/Fri/vendredi/; $heureactuelle =~ s/Sat/samedi/; $heureactuelle =~ s/Sun/dimanche/; $heureactuelle =~ s/Jan/janvier/; $heureactuelle =~ s/Feb/fevrier/; $heureactuelle =~ s/Mar/mars/; $heureactuelle =~ s/Apr/avril/; $heureactuelle =~ s/May/mai/; $heureactuelle =~ s/Jun/juin/; $heureactuelle =~ s/Jul/juillet/; $heureactuelle =~ s/Aug/août/; $heureactuelle =~ s/Sep/septembre/; $heureactuelle =~ s/Oct/octobre/; $heureactuelle =~ s/Nov/novembre/; $heureactuelle =~ s/Dec/decembre/; } |
L'exemple ci-dessus trouve la date et l'heure et renvoie le résultat correctement formaté et en français.
Avec l'appel de la fonction
Perl time l'heure actuelle est trouvée. La fonction retourne,
comme il est habituel sous Unix et C, le nombre de secondes passées
depuis le 1/1/1970. C'est un chiffre assez élevé qui sans être explicite est
très exact. Dans l'exemple ci dessus, ce nombre a été sauvegardé dans
la
variable scalaire simple $valeuractuelle. Elle est la base pour l'appel de la
fonction localtime. Cette fonction attend comme paramètre un
nombre qu'elle interprète comme nombre de secondes
écoulées depuis le 1/1/1970. La fonction en crée une chaîne de caractères
qui contient la date et l'heure au format international par exemple Fri Jun 13 20:29:11 1997.
Cette chaîne de caractères est retournée par la fonction. Dans l'exemple
ci-dessus, cette valeur retournée est sauvegardée dans $heureactuelle.
Dans l'exemple, l'étape suivante est d'appeler un sous-programme
nommé nomsfrancais, qui
remplace
dans la chaîne de caractères de $heureactuelle toutes les
abréviations internationales imaginables pour le jour et le mois par le nom
habituel en français.
Les éléments de date et d'heure dans $heureactuelle sont
séparés les uns des autres par des espaces. Cette particularité rend dans
l'exemple l'instruction @temps = split(/ /,$heureactuelle); adéquate.
Ensuite les différents éléments comme le jour, le mois, l'année etc. sont
adressables individuellement comme éléments de cette liste.
Un élément de cette liste adressable par $temps[3], représente l'heure.
L'heure est constituée de l'heure, des minutes et des secondes séparées par
un double point. Même cette chaîne de caractères est décomposée dans
l'exemple dans ses éléments constituants à savoir avec l'instruction @heure =
split(/:/,$temps[3]);.
Ensuite tous les éléments sont adressables individuellement et peuvent être sortis
selon vos souhaits avec la fonction print - comme dans l'exemple.
![]() | |
après:![]() |
![]() |
avant:![]() |
![]() |
SELFHTML/Quickbar
CGI/Perl
Éléments de langage Perl
Serge François, 13405@free.fr