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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Scripts ou codes gratuits et disponibles pour tous en Perl [Sources]


Sujet :

Langage Perl

  1. #81
    Membre du Club

    Profil pro
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 51
    Points
    51
    Par défaut Test simple de validité d'un numéro SIRET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    =item test_siret
    La fonction test_siret() contrôle la clef d'un n° de SIRET.
    Entrées obligatoires :
    	N° SIRET
    Sortie :
    	Booléen
    =cut
    sub test_siret
    {
    	my $siret = $_[0];
    	return 0 unless ($siret =~ /^\d{14}$/);
     
    	my $total = 0;
    	my $c = 14;
    	foreach my $chiffre (split //, $siret) {
    		$total += ($c%2)?$chiffre:(($chiffre*2 > 9)?($chiffre*2-9):($chiffre*2));
    		$c--;
    	}
    	if ($total =~ /0$/) {
    		return 1;
    	} else {
    		return 0;
    	}
    }
      0  0

  2. #82
    Membre du Club

    Profil pro
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 51
    Points
    51
    Par défaut Test simpliste de validité d'un numéro de téléphone
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    =item test_tel
    La fonction test_tel() vérifie si le numéro de téléphone
    ou de télécopie est bien conforme.
    Entrées obligatoires :
    	N° de téléphone
    Sortie :
    	Booléen
    =cut
    sub test_tel
    {
    	my $tel = $_[0];
    	if ($tel =~ /^[\d\-\.\+\(\)\[\] ]+$/) {
    		return 1;
    	} else {
    		return 0;
    	}
    }
      0  0

  3. #83
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Merci pour toutes ces propositions. Je vais essayer de faire le tri de tes propositions car je pense qu'il y a des modules qui permettent déjà de faire certaines choses de façon propre et efficace. Néanmoins, ton listing permettra d'en parler.

    Voici une nouvelle question pour nos sources perl disponible :

    Comment récupérer proprement les arguments de la ligne de commande ?
      0  0

  4. #84
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Citation Envoyé par vil-farfadet Voir le message
    Ne s'applique pas à tous les cas, à adapter bien sûr...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    }
    Si l'on peut en discuter ici, alors je dirais qu'à peu de frais (d'investissement intellectuel), on peut avantageusement tirer parti du module HTML::Form qui fourni les méthodes "click" et "make_request" retournant des requêtes à fournir à LWP::UserAgent.
    C'est très souple, et efficace.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say
      0  0

  5. #85
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Si l'on peut en discuter ici, alors je dirais qu'à peu de frais (d'investissement intellectuel), on peut avantageusement tirer parti du module HTML::Form qui fourni les méthodes "click" et "make_request" retournant des requêtes à fournir à LWP::UserAgent.
    C'est très souple, et efficace.
    On peut tout à fait discuter ici, pas de soucis. D'ailleurs ton avis m'intéresse sur les propositions de vil-farfadet.
    Voici mes premières conclusions :

    calcul_pourcentage => c'est assez vague, et assez simple à mettre place pour figurer dans les sources
    Enlever les espaces en début et fin de ligne => c'est la base du langage perl et faisable via une simple regex. Donc c'est assez simple à mettre place pour figurer dans les sources
    Afficher avec deux décimales (monétaire) => Autant parler de formatage de valeur directement
    et faire un lien vers la doc printf et sprintf
    convert_form_url => Comme le dit philou, il y a des modules gérant cela facilement tel HTML::Form
    Retourner un numéro de carte bancaire partiellement masqué => ça revient à faire une regex,
    donc ce sont les bases du langage perl.
    menu_numerique => il y a des options dans le module CGI pour faire ça plus simplement
    Raboter un texte trop long et ajouter 3 petits points => pourquoi pas, même si ça revient à faire une simple regex

    ISBN => pourquoi pas, mais il y a déjà un module qui teste vraiment (Test::ISBN) à vérifier
    test_mel => module existant déjà et je comptais déjà en parler
    siret => pourquoi pas, ça peut être bien, j'ai vu un module à tester Business::FR::SIRET, à tester
    test_tel => il y a un module qui le fait déjà correctement

    Voilà, qu'en pensez vous ?
      0  0

  6. #86
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je ne suis pas sur de comprendre cette phrase "Donc c'est assez simple à mettre place pour figurer dans les sources".
    Si cela veut dire "c'est suffisamment simple pour ne pas nécessité l'ajout dans les sources", je suis d'accord.

    En règle générale, en tant que développeur, on prends assez vite l'habitude de se créer des "petits" outils à soi, fait de bout de ficelles et souvent bien adapté à notre cas particulier, mais qui ne fonctionnent malheureusement pas aussi bien pour tout le monde lorsqu'on tente de les généraliser. Alors, on découvre qu'il existe déjà des modules éprouvés, robustes, et souvent bien construits, qu'il suffit d'utiliser.

    Il m'est arrivé de nombreuses fois de ré-écrire des sources simplement pour utiliser des modules au lieu des mes petits bouts de ficelle.

    Aujourd'hui, en perl, quand on a besoin d'une fonctionnalité, le premier réflexe devrait être d'aller voir le CPAN.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say
      0  0

  7. #87
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Je ne suis pas sur de comprendre cette phrase "Donc c'est assez simple à mettre place pour figurer dans les sources".
    Si cela veut dire "c'est suffisamment simple pour ne pas nécessité l'ajout dans les sources", je suis d'accord.
    tu as bien compris, c'est suffisamment simple pour ne pas nécessité l'ajout dans les sources

    Citation Envoyé par Philou67430 Voir le message
    En règle générale, en tant que développeur, on prends assez vite l'habitude de se créer des "petits" outils à soi, fait de bout de ficelles et souvent bien adapté à notre cas particulier, mais qui ne fonctionnent malheureusement pas aussi bien pour tout le monde lorsqu'on tente de les généraliser. Alors, on découvre qu'il existe déjà des modules éprouvés, robustes, et souvent bien construits, qu'il suffit d'utiliser.

    Il m'est arrivé de nombreuses fois de ré-écrire des sources simplement pour utiliser des modules au lieu des mes petits bouts de ficelle.

    Aujourd'hui, en perl, quand on a besoin d'une fonctionnalité, le premier réflexe devrait être d'aller voir le CPAN.
      0  0

  8. #88
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Nouvelle question : Comment valider un numéro ISBN ?
    Nouvelle question : Comment vérifier qu'un numéro SIRET est bien formaté ?
    Nouvelle question : Comment raboter un texte trop long et ajouter 3 petits points ?

    Nouvelle question : Comment tester la validité d'une adresse électronique ?
      0  0

  9. #89
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Pour info, il existe un caractère "trois petits points" qui s'appelle l'ellipsis (c'est un seul caractère, et non 3 points).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say
      0  0

  10. #90
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Pour info, il existe un caractère "trois petits points" qui s'appelle l'ellipsis (c'est un seul caractère, et non 3 points).
    Je ne le trouve pas sur mon clavier .
      0  0

  11. #91
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Le caractère existe, mais pas la touche
    C'est le caractère unicode 2026
    UTF8 : 0xE2 0x80 0xA6
    HTML entity : &hellip;

    Il s'agit de l'ellipsis horizontale, car il existe aussi une ellipsis verticale, dont je ne connais pas l'usage.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say
      0  0

  12. #92
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Le caractère existe, mais pas la touche
    C'est le caractère unicode 2026
    UTF8 : 0xE2 0x80 0xA6
    HTML entity : &hellip;

    Il s'agit de l'ellipsis horizontale, car il existe aussi une ellipsis verticale, dont je ne connais pas l'usage.
    , je vais le rajouter au code alors.
      0  0

  13. #93
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Personne n'a d'autres codes à partager ?
      0  0

  14. #94
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Points : 402
    Points
    402
    Par défaut
    Connexion via SSH sur périphériques CISCO (fonctionne aussi avec la plupart des autres périphériques via de légères adaptations).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    #! /usr/bin/perl
    use Net::SSH::Expect;
     
            my $ssh = Net::SSH::Expect->new (
                host => "192.168.90.100", 
                password=> 'cisco', 
                user => 'admin', 
                raw_pty => 1
            );
     
            my $enable_passwd = "cisco";
     
            my $login_output = $ssh->login();
     
            $ssh->send("enable");
            $ssh->waitfor('Password:\s*\z', 1) or die "prompt 'password' not found after 1 second";
            $ssh->send($enable_passwd);
     
            my $ls = $ssh->exec("show vlan");
            print($ls);
     
     
            #Première façon de récupérer une sortie longue:
            $ssh->send("show running-config");
            my $line;
            while ( defined ($line = $ssh->read_line()) ) {
                print $line . "\n";  
            }
     
            #Deuxième façon (mais on récupère aussi les prompt avec cette méthode):
            my @output = $ssh->exec("show running-config");
            print @output;
     
            $ssh->close();
    Pour les problèmes de longueur de sortie sur le terminal (passage du --more-- sur les cisco), il suffit d'exécuter la commande suivante avant votre commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ssh->exec("terminal length 0");
    et celle ci après votre commande afin de revenir dans l'état par défaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ssh->exec("terminal length 24");
    Bien sûr, les commandes "show vlan" et/ou "show running-config" sont la a titre indicatif, à remplacer par vos propres commandes...


    Je me permet de poster ce code car ayant eu le problème moi même, j'ai vu que c'était un problème récurrent sur le net dont on ne trouve pas de vrai solution car pour le SSH sur les périphériques Cisco beaucoup utilisent les modules Net::SSH:erl , Perl::SSH2, voir même Net::Appliance::session, et aboutissent à des problèmes sur les périphériques cisco du genre :

    - Connexion SSH impossible
    - Passage Enable impossible
    - impossible de lancer plusieurs commandes dans la même session...

    Donc après avoir tout essayé, je suis tombé sur ce module qui m'a permis d'obtenir une solution fonctionnelle en s'affranchissant des problèmes liés aux autres modules.
    C'est en aidant les autres qu'on en apprend beaucoup soi-même
      0  0

  15. #95
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Après quelques corrections orthographiques et de formulations, votre code a été rajouté dans les sources de la rubrique Perl.

    Merci !!
      0  0

  16. #96
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Des idées Philou67430 pour les sources ?
      0  0

  17. #97
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Eh eh ... non

    J'ai bien des modules pour s'interfacer avec vBulletin (interface web à base de WWW::Mechanize, accès membre et logiciel modération), mais ils ne sont pas encore très murs ni très complets.

    Sinon, faut que je regarde dans mes sources...
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say
      0  0

  18. #98
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    ça roule
      0  0

  19. #99
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut array_diff
    Un petit bout de code pour les fonctions simuli de PHP (diff, union, instersect) sur les tableaux (listes). Dsl, je fais tout en anglais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #!/usr/bin/perl -w
    use strict;
    use warnings;
    use Data::Dumper;
     
    sub array_diff {
    	# arrays @a and @b to be compared
            # listes a et b à comparer
    	my (@a, @b) = @_;
     
    	my @isect;
    	my @union;
    	my @diff;
    	my $e;
    	my %count;
    	my %hash_of_arrays;
     
    	# check entries
            # vérifier le type des listes en entrées qui doivent être de type "ARRAY"
    	if ( (ref (\@a) ne "ARRAY") || (ref (\@b) ne "ARRAY") ) {
    		print "entries shall be ARRAY";
    		exit 0;
    	}
     
    	# store all keys into an hash $count
            # stocker les clés dans un hash
    	foreach $e (@a, @b) { $count{$e}++ }
     
    	# browse the hash $count
            # balayer le hash
    	foreach $e (keys %count) {
    		# union is simple
    		push(@union, $e);
     
    		# intersection
    		if ($count{$e} == 2) {
    			push @isect, $e;
    		# difference
    		} else {
    			push @diff, $e;
    		}
    	}
     
    	# store resulting arrays into an hash of arrays
            # stocker les résultats dans un hash
    	$hash_of_arrays{diff} = \@diff;
    	$hash_of_arrays{union} = \@union;
    	$hash_of_arrays{isect} = \@isect;
     
    	return %hash_of_arrays ;
    }
     
    # Testing the function
    my @arr1 = ( "foo", "bar", "truc", "bidule", 1 , 2, 3);
    my @arr2 = ( "foo", "car", "truc", "bidule", 1 , 2, 4);
    my %result;
     
    # global hash result
    %result = &array_diff(@arr1, @arr2);
    print Dumper(\%result);
     
    # diff only
    my $diff = $result{diff};
    print Dumper($diff);
     
    # Diff Output:	'3', 'car',  'bar', '4'
    # Union Output :	'truc', '3', 'car',   '2',  'bar',   '1',  '4',  'foo', 'bidule'
    # Intersection Ouput :	'truc', '2',  '1',  'foo', 'bidule'
      0  0

  20. #100
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut in_array
    Toujours au chapitre des petites fonctions de type PHP, celle-ci vérifie si une chaine est incluse dans une liste. Rien de transcendant c'est certain. Mais utile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #!/usr/bin/perl -w
    # chemin vers interpreteur perl à adapter selon votre config
    # un simple "which perl" devrait pouvoir vous renseigner
     
    use strict;
    use warnings;
    use constant true => 1; # bah oui sinon je suis perdu :-)
    use constant TRUE => 1;
    use constant false => 0;
    use constant FALSE => 0;
     
    sub in_array {
    # appel : &in_array(@array, $needle);
    	my ($arr, $needle) = @_;
    	if (grep {$needle eq $_} @$arr) {
    		return true;
    	} else {
    		return false;
    	}
    }
      0  0

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/11/2009, 10h17
  2. Réponses: 5
    Dernier message: 15/09/2009, 12h00
  3. Réponses: 12
    Dernier message: 29/07/2009, 16h26
  4. Réponses: 0
    Dernier message: 23/07/2009, 15h21
  5. Réponses: 0
    Dernier message: 23/07/2009, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo