Codes sources Perl

Les codes sources Perl téléchargeables. N'hésitez pas en rajouter.
Ajouter un nouvel élément

    Comment convertir un fichier Excel en fichier csv ou txt ?

    Licence : Gratuit - 31/05/2011 - Téléchargé 3 x
    Le code ci-dessous permet de convertir un fichier excel 2007 (ou antérieur) en fichier txt, csv ou autre fichier plat.

    Le choix du séparateur est laissé à l'utilisateur.
    Si l'on on précise un répertoire, le fichier convertit sera créé dans ce dernier, sinon, il sera créé dans le même répertoire que le fichier excel.
    On peut choisir de convertir toutes les feuilles ou non du fichier excel en mettant -feuilles à 1 => tout sera convertit, ou à 0 et dans ce cas, à chaque feuille une confirmation sera demandée.

    Attention : Nous avons utilisé ici la méthode print {$fh} $oWkC->Value, $Separateur;

    Mais cette méthode peut nous générer des erreurs inattendues :
    explication documentation o ... Voir la suite

    Comment mettre la première lettre de tous les mots d'une chaine en majuscule ou minuscule ?

    Licence : Gratuit - 31/05/2011 - Téléchargé 2 x
    L'utilisation des expressions régulière est plus appropriée.

    Comment calculer le nombre de jours et/ou semaines entre deux dates ?

    Licence : Gratuit - 01/07/2011 - Téléchargé 2 x
    Vous souhaitez connaitre le nombre de jours (ou le nombre de semaines) entre deux dates, utilisez le module Date::Calc.

    Comment fusionner plusieurs fichier "csv" en un fichier Excel avec onglets ?

    Licence : Autre - 29/11/2011 - Téléchargé 2 x
    J'ai cherché sur internet pour faire cela mais sans succès. J'ai adapté ce que j'ai trouvé ici et là pour faire ce petit script (Je suis niveau débutant)

    Comment faire un sleep de moins d'une seconde ?

    Licence : Gratuit - 31/05/2011 - Téléchargé 1 x
    Pour faire un sleep de moins d'une seconde, il est recommandé d'utiliser le module Time::HiRes qui est disponible dans le core.
    Mais vous pouvez être encore beaucoup plus précis. A vous de jouer avec ce module très puissant.

    Comment fusionner plusieurs classeurs Excel d'un répertoire en un unique fichier ?

    Licence : Gratuit - 31/05/2011 - Téléchargé 1 x
    Ce code vous permettra de fusionner plusieurs classeur Excel (xls, xlsx) en un unique fichier Excel (xls). Il copie toutes les feuilles des différents classeurs dans un seul fichier. Le seul inconvénient est qu'il ne garde pas les noms des feuilles mais en génère automatiquement (feuille1, 2, 3, ...) et les formats des cellules ne sont pas conservés.

    Vous aurez besoin d'installer les modules

    Spreadsheet::ParseExcel
    Spreadsheet::XLSX
    Spreadsheet::WriteExcel

    Les modules Getopt::Long et Pod::Usage sont dans le core de Perl.



    Pour savoir comment lancer le programme, faites

    perl nom_programme.pl -help

    ou

    perl nom_programme.pl -man

    Comment récupérer une page Web ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Voici un script permettant de récupérer le contenu d'une page Web et l'afficher sur la sortie standard STDOUT. Il y a la possibilité de spécifier un proxy HTTP. Ainsi qu'un login pour les connexions HTTP (autorisation de base).

    Comment désinstaller un module ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    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.

    Comment raboter un texte trop long et ajouter 3 petits points ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Comment raboter un texte trop long et ajouter 3 petits points ?

    Comment tester la validité d'une adresse électronique ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    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érents Email::Valid et Mail::CheckUser.

    Comment récupérer (proprement) les séquences d'un fichier fasta ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Le but est de récupérer les identifiants et leur séquence une à une de façon simple et rapide grâce au module Bio::SeqIO. Fichier d'entrées :
    test.txt

    >A1
    GATACCAGCATCGTACGTCGTACGTACGTAGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
    >A2
    TACCACCCGATCTCGCATCGTCATGTGCGGGATCATTATGCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
    >B1
    GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGATAGATCTGACT
    >B2
    GATACCAGCCACTTCTGACGATCGATCGATATTATAAAAGGATCATTATGCCACATTCTGATCgTGGACCTGCATTATAGATCTGCCCTT
    >C1
    GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
    >C2
    GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT

    Résultat

    >A1
    GATACCAGCATCGTACGTCGTACGTACGTAGGGA ... Voir la suite

    Est-il possible de récupérer des sous-séquences d'un alignement ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Le module Bio::AlignIO permet de récupérer et d'analyser les séquences une à une en gardant les positions des gaps. On peut donc aussi récupérer un bloc de sous-séquences en gardant leur alignement, mais également obtenir la séquence consensuelle de cet alignement.

    file.fsa

    >A1/1-60
    GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
    .
    >A2/1-57
    ..TACCAGCGGGATCATTATGC.ACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
    .
    >B1/1-55
    GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTG....ATAGATCTGACT.
    .
    >C1/1-60
    GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
    .
    >C2/1-60
    GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
    .
    >B2/1-61
    GAT ... Voir la suite

    Comment trouver le nombre d'occurrence d'un motif dans une chaine ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Il y a 4 "e" dans $phrase

    =()= est ce qu'on appelle en Perl un goatse, pas toujours connu du grand public.

    En fait, c'est l'usage de l'opérateur d'affectation à une liste vide qui permet d'évaluer l'expression régulière dans un contexte de liste et dont le résultat est affecté à $count. Or la valeur de retour d'une affectation de liste évaluée dans un contexte de scalaire retourne le nombre d'élément contenu dans la rvalue de cet opérateur d'affectation, donc le nombre d'élément capturé par l'expression régulière.

    Comment transposer un fichier tabulé ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Si vous souhaitez transposer un fichier tabulé, c'est à dire que les lignes de votre fichier deviennent des colonnes, voici une procédure qui peut vous aider.

    Comment connaitre le nom et l'ip d'une machine en perl ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Pas de secret, le CPAN contient ce qu'il faut. Utilisez les modules Sys::Hostname et Socket déjà présent dans le CORE de perl.

    Comment récupérer une date aléatoire entre deux dates données ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Comme DateTime est le module préconisé, mais qu'il n'est pas disponible dans le Core, alors que POSIX l'est, il me semble que c'est une bonne alternative pour des utilisations "limitées".

    Le code ci-dessous est compatible avec des machines acceptant des entiers sur 32 bits. Il utilise mktime et localtime.

    Attention toutefois sur les machines 32 bits, les dates limites utilisables sont de 1904 à 2038. Pour utiliser des dates en dehors de cette plage, il faut s'en remettre aux modules spécialisés comme DateTime.

    Comment connaitre le time depuis une date ( L'inverse de localtime et gmtime) ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Il peut être utile de connaître le time d'une date, c'est l'inverse de time, localtime et gmtime. Cela se fait par exemple en php pour les connaisseurs via la fonction mktime. Comme d'habitude, il existe un module en Time::Local en perl déjà présent dans le CORE, donc pas besoin d'installation.

    Ce module posséde deux méthodes timelocal et timegm qui renvoient le time. Il faut leur donner 6 informations sous forme de tableau ($sec,$min,$hour,$mday,$mon,$year).

    Attention : $year sera bien l'année classique (avec + 1900), ex : 2007 et $mois sera compris entre 0 et 11 et non entre 1 et 12.

    Nous trouver le time des dates 01/01/2000 et 05/12/2008



    Vous pourrez maintenant jongler avec les tim ... Voir la suite

    Connaitre une date vieille ou futur

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Exemple de script permettant de connaitre :

    la date d'aujourd'hui
    la date dans 6 jours
    la date 48 jours avant aujourd'hui
    la date 2 ans et 6 mois avant aujourd'hui
    la date de demain

    Comment obtenir la date au format DB2, obtenir la microseconde ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Voici une procédure pour générer un timestamp au format DB2 c'est à dire au format : AAAA-MM-JJ HH:mm:ss.xxxxxx où les x représentent les microsecondes.

    Comment comparer plusieurs tableaux entre eux ?

    Licence : Gratuit - 31/05/2011 - Téléchargé x
    Il arrive que l'on ait besoin de comparer 2 listes perl entre elles afin d'obtenir les données communes aux deux listes, les données présentes dans une liste mais pas dans l'autre ... Pas besoin de reinventer la roue, il existe un module sur le CPAN qui le fait très bien, c'est List::Compare. Voici un exemple de code :

31 éléments

Responsable bénévole de la rubrique Perl : djibril -