JOIN |
Jointure |
|---|---|
Perl |
Syntaxe
| join expr, list |
Paramètres
| Nom | Description |
|---|---|
| expr | Ce paramètre permet d'indiquer la chaîne de caractères à fixer entre les éléments. |
| list | Ce paramètre permet d'indiquer le tableau à fusionner en une chaîne de caractères. |
Retour
| Valeur | Description |
|---|---|
| chaîne de caractères | Ces valeurs permettent d'indiquer la fusion de la liste spécifié. |
Description
Cette fonction permet de transformer la liste du tableau en chaîne de caractères.
Remarques
- Fonction inverse de split dans la logique de traitement des chaînes : La fonction join est fréquemment décrite comme l'opposée de split. Alors que split découpe une chaîne en plusieurs éléments, join rassemble plusieurs éléments (issus d'une liste) en une seule chaîne, en y insérant un séparateur défini par l'utilisateur. Ce comportement en fait une fonction centrale pour la reconstruction de chaînes après traitement.
- Le séparateur est positionné entre les éléments de la liste : Le premier paramètre expr représente le séparateur à insérer entre chaque élément du tableau. Il peut s'agir de caractères simples (comme une virgule, un espace, ou un tiret), mais aussi de chaînes plus complexes (comme "; " ou " | "), offrant une grande flexibilité dans la présentation du résultat final.
- Ne modifie pas la liste d'origine : join ne transforme pas la liste d'origine : elle renvoie une nouvelle chaîne sans affecter les éléments du tableau source. Cette caractéristique garantit que les données originales restent intactes, ce qui permet de les réutiliser ou de les afficher autrement sans risque de perte d'information.
- Utilisable dans des contextes d'affichage ou d'export : join est souvent utilisé pour générer des chaînes facilement exportables, comme une ligne CSV, une ligne de journaux de bord, ou une phrase cohérente. Par exemple, dans print join(", ", @noms);, on peut afficher la liste des noms avec des virgules, ce qui facilite la lecture et le formatage des données.
- Le tableau peut contenir tout type de valeur convertissable en chaîne : Les éléments de la liste passée à join peuvent être des chaînes, des nombres, ou toute valeur convertible automatiquement en texte. Cela permet de concaténer très simplement des tableaux mixtes sans conversions manuelles, sauf si des références ou objets spécifiques nécessitent un traitement personnalisé.
- Attention aux chaînes vides et éléments non définis : Si la liste contient des éléments indéfinis (undef), join les convertira en chaînes vides, ce qui peut produire des résultats inattendus ou erronés. Il est donc conseillé de filtrer ou de vérifier les valeurs du tableau avant de les fusionner, surtout dans un contexte d'export de données.
- Peut être utilisé pour formater dynamiquement du code ou des requêtes : Dans les scripts plus complexes, join peut servir à assembler des fragments de code, des paramètres d'URL ou des clauses SQL. Par exemple, on peut générer dynamiquement une clause IN comme join(", ", @ids) pour produire une liste de valeurs à insérer dans une requête.
- Requiert explicitement un tableau en tant que second paramètre : Contrairement à certaines fonctions acceptant aussi des listes explicites, join exige que le deuxième argument soit réellement une liste ou un tableau. Cela signifie qu'on ne peut pas passer une chaîne unique sans provoquer un comportement inattendu. Il faut donc veiller à toujours lui fournir une liste bien formée.
Exemple
Voici un exemple d'une utilisation typique de cette fonction :
- #!/usr/bin/perl
-
- my @array = ('valeur1', 'valeur2', 'valeur3');
- my %hash = ('clé1' => 'valeur1', 'clé2' => 'valeur2', 'clé3' => 'valeur3');
- my $ref_array = ['valeur1', 'valeur2', 'valeur3'];
- my $ref_hash = {'clé1' => 'valeur1', 'clé2' => 'valeur2', 'clé3' => 'valeur3'};
-
- print "join(';','A','B','C','D') = " . join(";","A","B","C","D") . "\n";
- print "join(':',array) = " . join(":",@array) . "\n";
- print "join(',',hash) = " . join(",",%hash) . "\n";
- print "join(',',ref_array) = " . join(",",@{$ref_array}) . "\n";
- print "join(',',ref_hash) = " . join(",",%{$ref_hash}) . "\n";
on obtiendra le résultat suivant :
join(';','A','B','C','D') = A;B;C;Djoin(':',array) = valeur1:valeur2:valeur3
join(',',hash) = clé2,valeur2,clé1,valeur1,clé3,valeur3
join(',',ref_array) = valeur1,valeur2,valeur3
join(',',ref_hash) = clé2,valeur2,clé1,valeur1,clé3,valeur3
Références
La Bible Micro Application HTML & Développement Web, Stefan Munz, Wolfgang Nefzger, 2003, ISBN: 2-7429-2898-7, page 1114
Perl/CGI-Programmation avancée Grand Livre, Edition Micro Application, Rolf D. Stoll, 2001, ISBN: 2742919082, page 113
Dernière mise à jour : Dimanche, le 18 octobre 2015