IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Des codes sources perlConsultez toutes les FAQ

Nombre d'auteurs : 13, nombre de questions : 59, dernière mise à jour : 27 mai 2011 

 
OuvrirSommaireDivers

Pour faire un sleep de moins d'une seconde, il est recommandé d'utiliser le module Time::HiResTime::HiRes qui est disponible dans le core.

 
Sélectionnez
#!/usr/bin/perl
use strict;
use warnings;

use Time::HiRes qw ( sleep );
print "Bonjour, je dors\n";
sleep 0.5; # pause d'une demie seconde
print "Au revoir\n";

Mais vous pouvez être encore beaucoup plus précis. A vous de jouer avec ce module très puissant.

Créé le 2009-06-15  par djibril

Sous Linux ou Mac OS, il n'existe aucun utilitaire permettant de désinstaller un module Perl. Donc, voici un script qui peut vous permet de le faire proprement.

 
Sélectionnez
#!/usr/bin/perl
use strict;
use warnings;

use ExtUtils::Packlist;
use ExtUtils::Installed;

$ARGV[0] or die "Usage: $0 Module::Name\n";

my $mod = $ARGV[0];

my $inst = ExtUtils::Installed->new();

foreach my $item (sort($inst->files($mod))) {
print "suppression de $item\n";
unlink $item;
}

my $packfile = $inst->packlist($mod)->packlist_file();
print "suppression de $packfile\n";
unlink $packfile;

Sous Windows, vous pouvez désinstaller un module en utilisant ppm si vous utilisez activePerl. Néanmoins, ce script peut être aussi utilisable sous Windows.

 
Sélectionnez
ppm uninstall MonModule

NB: Si vous avez installé un module avec fink (sous Mac OS) ou apt-get, aptitude (Debian), yum (Red Hat), etc, utilisez ces mêmes utilitaires pour désinstaller vos modules. Il se peut que le script ci-dessus ne trouve pas le script car le répertoire d'installation lui est inconnu.

Créé le 2009-06-15  par djibril

Le module Business::ISBNBusiness::ISBN permet de tester la validité d'un numéro ISBN. Il permet également de faire des conversions isbn10 en isbn13 et vice versa. Il est également possible d'afficher le numéro isbn sous différentes formes et de trouver le code publié du numéro ISBN, le pays etc... Vous pouvez même créer un code barre contenant le numéro ISBN. Pour en savoir plus, il vous suffit de lire la documentation du module.

Voici un petit exemple (vous devez installer le module Business::ISBN et GD::Barcode)

ISBN camel book
Sélectionnez
#!/usr/bin/perl
use strict;
use warnings;
use Business::ISBN;

my $isbn_camelbook = '2841771407';
my $isbn           = Business::ISBN->new($isbn_camelbook);

# Test validite
if ( $isbn->is_valid ) {
  print "ISBN : $isbn_camelbook valide\n";
}
else {
  die("ISBN : $isbn_camelbook invalide\n");
}

# convert
print "ISBN10 : ", $isbn->as_isbn10->as_string, "\n";
print "ISBN13 : ", $isbn->as_isbn13->as_string, "\n";

print "ISBN STRING : ", $isbn->as_string, "\n";

#print the ISBN with hyphens at specified positions.
#this not does affect the default positions
print "Autre ecriture : ", $isbn->as_string( [] ), "\n";

#print the group code or publisher code
print "Groupe code : ", $isbn->group_code,     "\n";
print "Groupe : ",      $isbn->group,          "\n";
print "Code publie : ", $isbn->publisher_code, "\n";

# création d'un code barre de type EAN13 au format png
open( PNG, '>', 'codebarre_isbn.png' );
binmode PNG;
print PNG $isbn->png_barcode;
close(PNG);
Résultat
Sélectionnez
ISBN : 2841771407 valide
ISBN10 : 2-84177-140-7
ISBN13 : 978-2-84177-140-0
ISBN STRING : 2-84177-140-7
Autre ecriture : 2841771407
Groupe code : 2
Groupe : French speaking area
Code publie : 84177

Voici l'image du code barre générée ISBN camel book

Créé le 2009-10-28  par djibril

Le numéro SIRET est un identifiant d'établissement. Cet identifiant numérique de 14 chiffres est articulé en deux parties : la première est le numéro SIREN de l'entreprise (ou unité légale ou personne juridique) à laquelle appartient l'unité SIRET ; la seconde, habituellement appelée NIC (Numéro Interne de Classement), se compose d'un numéro d'ordre à quatre chiffres attribué à l'établissement et d'un chiffre de contrôle, qui permet de vérifier la validité de l'ensemble du numéro SIRET.

Il existe un module Business::FR::SIRETBusiness::FR::SIRET permettant de vérifier que le numéro siret est proprement formaté, il ne vérifie absolument pas que la compagnie est existante. Pour cette dernière vérification, il existe des sites web vous permettant de faire la faire.

voici un code d'exemple :

 
Sélectionnez
#!/usr/bin/perl
use strict;
use warnings;
use Business::FR::SIRET;
my $numero_siret = '54209790203949';
my $c            = Business::FR::SIRET->new($numero_siret);
print "SIRET ", $c->siret() . " est valide\n" if $c->is_valid();
Résultat
Sélectionnez
SIRET 54209790203949 est valide
Créé le 2009-10-28  par djibril

Pour tester la validité d'une adresse électronique, inutile de s'acharner à trouver la bonne expression régulière. Il existe des modules perl le faisant pour nous proprement.

Voici un exemple de codes utilisant des modules différentsEmail::Valid Email::Valid et Mail::CheckUserMail::CheckUser

 
Sélectionnez
#!/usr/bin/perl
use strict;
use warnings;

use Email::Valid;

my $email = 'toto@my_google.fr';
if ( Email::Valid->address($email) ) {
  print "Email::Valid => $email valide\n";
}
else {
  print "Email::Valid => $email no, valide\n";
}
Résultat
Sélectionnez
Email::Valid => toto@my_google.fr no, valide
 
Sélectionnez
#!/usr/bin/perl
use strict;
use warnings;
use Mail::CheckUser qw(check_email);

$Mail::CheckUser::Timeout = 5;
if ( check_email($email) ) {
  print "Mail::CheckUser => E-mail address <$email> is OK\n";
}
else {
  print "Mail::CheckUser => E-mail address <$email> isn't valid:\n";
}
Résultat
Sélectionnez
Mail::CheckUser => E-mail address <toto@my_google.fr> isn't valid:

Voilà !!

Créé le 2009-10-28  par djibril
 
Sélectionnez
#!/usr/bin/perl
use strict;
use warnings;

=for rabot
La fonction rabot() rabote une chaîne de caractère à une longueur donnée si la longueur initiale est supérieure.
Entrées obligatoires : Chaîne de caractères et Longueur
Entrée optionnelle   : Booléen (ne coupe pas les mots si vrai)
Sortie               : Chaîne de caractères résultante
=cut

print rabot( 'Ceci est un premier exemple de phrase.', 20 ) . "\n";
print rabot( 'Ceci est un second exemple de phrase.', 20, 1 ) . "\n";

sub rabot {
  my ( $texte, $taille, $coupe ) = @_;
  unless ($coupe) { $coupe = 0; }

  if ( length($texte) > $taille ) {

    # Variante HTML : $suspension = '&hellep;';
    my $suspension = '...';
    my $ajustement = length($suspension);
    $texte = substr( $texte, 0, $taille - $ajustement );
    $texte =~ s/([^ ,;:\.!\?\(\)])[ ,;:\.!\?\(\)]+[^ ]*$/$1/ if ($coupe);
    if ($ajustement) { $texte = $texte . $suspension; }
  }

  return $texte;
}
 
Sélectionnez
Ceci est un premi...
Ceci est un...
Mis à jour le 2011-02-21  par vil-farfadet
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2011 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.