Enlever les espaces en début et fin de ligne
Code:
1 2 3 4 5 6 7
| sub trim
{
my ($texte) = $_[0];
$texte =~ s/^\s+//;
$texte =~ s/\s+$//;
return $texte;
} |
Afficher avec deux décimales (monétaire)
Code:
1 2 3 4
| sub toDec
{
return sprintf("%.2f", $_[0]);
} |
Transformer un formulaire html dans son équivalent sous forme d'url
Ne s'applique pas à tous les cas, à adapter bien sûr...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| =item convert_form_url
La fonction convert_form_url() convertit un formulaire
(méthode POST) en une url (méthode GET).
Entrées obligatoires :
Chaîne avec le formulaire html
Sortie :
URL équivalente
=cut
sub convert_form_url
{
my $formulaire = $_[0];
$formulaire =~ s/\n//g;
$formulaire =~ s/<form action="([^"]+)"[^>]*>/$1?/;
$formulaire =~ s/<input type="hidden" name="([^"]+)" value="([^"]+)">/&$1=$2/g;
$formulaire =~ s/<input type="submit"[^>]*>//;
$formulaire =~ s/<\/form>//;
$formulaire =~ s/\?&/?/;
$formulaire =~ s/\s//g;
return $formulaire;
} |
Retourner un numéro de carte bancaire partiellement masqué
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| =item masque_cb
La fonction masque_cb() retourne un numéro de carte bancaire
partiel ne permettant pas de reconstituer le numéro complet
de la carte.
Entrées obligatoires :
Numéro de carte bancaire
Entrées optionnelles :
Motif de remplacement (non mise en oeuvre dans cette version)
Sortie :
Numéro de carte bancaire partiel
=cut
sub masque_cb
{
my $numero = $_[0];
substr($numero,0,6,'------');
substr($numero,-1) = '-';
return $numero;
} |
Menu déroulant html avec des chiffres
Pour une liste des départements, d'années de naissance, etc...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
=item menu_numerique
La fonction menu_numerique retourne un menu déroulant numérique.
Entrées obligatoires :
Nombre de départ
Nombre d'arrivée
Entrées optionnelles :
Format d'affichage
Sortie :
Menu html
=cut
sub menu_numerique {
my $deb = $_[0];
my $fin = $_[1];
my $format = $_[2];
my $menu ="";
for (my $i=$deb; $i <= $fin; $i++) {
$menu .= "\t<option>";
$menu .= ($format)?sprintf($format, $i):$i;
$menu .= "</option>\n";
}
return $menu;
} |
Raboter un texte trop long et ajouter 3 petits points
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| =item rabot
La fonction rabot() rabote une chaine de caractère à une longueur donnée si la longueur initiale est supérieure.
Entrées obligatoires :
Chaîne de caractères
Longueur
Sortie :
Chaîne de caractères résultante
=cut
sub rabot
{
my $texte = $_[0];
my $taille = $_[1];
$texte = substr($texte, 0, ($taille-3))."..." if(length($texte) > $taille);
return $texte;
} |
Tester la validité d'un ISBN
Pour ceux qui ne savent pas ce qu'est un ISBN : http://isbn.org :D
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
=item test_isbn10
La fonction test_isbn10() contrôle la clef d'un ISBN-10.
Entrées obligatoires :
ISBN-10
Sortie :
Booléen
=cut
sub test_isbn10
{
my $isbn = $_[0];
$isbn =~ s/-//g;
my $clef = substr($isbn,-1);
chop($isbn);
$clef = 10 if ($clef eq "X" || $clef eq "x");
my $total = 0;
my $c = 10;
foreach my $chiffre (split //, $isbn) {
$total += $chiffre*$c;
$c--;
}
my $cle = 11-($total%11);
if ($cle == $clef) {
return 1;
} else {
return 0;
}
}
=item test_isbn13
La fonction test_isbn13() contrôle la clef d'un ISBN-13.
Entrées obligatoires :
ISBN-13
Sortie :
Booléen
=cut
sub test_isbn13
{
my $ean = $_[0];
$ean =~ s/-//g;
my $clef = substr($ean,-1);
chop($ean);
my $total = 0;
my $c = 1;
foreach my $chiffre (split //, $ean) {
$total += ($c%2)?$chiffre:($chiffre*3);
$c++;
}
my $cle = $total%10;
$cle =~ tr/0123456789/0987654321/;
if ($cle == $clef) {
return 1;
} else {
return 0;
}
} |
Un test basique de validité d'un mél
N'est pas valable pour des méls du type @[ADR.ES.SE.IP] :?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
=item test_mel
La fonction test_mel() vérifie si le mél est bien conforme.
Entrées obligatoires :
Mél
Sortie :
Booléen
=cut
sub test_mel
{
my $mel = $_[0];
if ($mel =~ /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/) {
return 1;
} else {
return 0;
}
} |