Syntaxe :: Mot-clé :: Rassembler

Syntaxe :: Mot-clé :: Rassembler la classe Perl
Télécharger maintenant

Syntaxe :: Mot-clé :: Rassembler Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • Perl Artistic License
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Arthur Axel Schmidt
  • Site Internet de l'éditeur:
  • http://search.cpan.org/~frew/

Syntaxe :: Mot-clé :: Rassembler Mots clés


Syntaxe :: Mot-clé :: Rassembler La description

Syntaxe :: Mot-clé :: Rassembler la classe Perl Perl 6 fournit une nouvelle structure de contrôle - rassemblant - qui permet de construire des listes de manière procédurale, sans avoir besoin d'une variable temporaire. Dans le bloc / la fermeture contrôlée par un rassemblement de tout appel à prendre des pousses de la liste des arguments d'appel à un tableau implicitement créé. Prendre renvoie le nombre d'éléments qu'il a fallu. Syntaxe :: Mot-clé :: Rassembler est un module Perl qui implémente cette structure de contrôle.at à la fin de l'exécution du bloc, le collecte renvoie la liste des valeurs stockées dans la matrice (dans un contexte de liste) ou une référence à la matrice (dans Un contexte scalaire) .Pour exemple, au lieu d'écrire: imprimer do {My @wanted; tandis que (ma ligne $ =) {push @wanted, $ ligne si $ ligne = ~ / \ d /; push @wanted, - $ ligne si quelqu'un_other_condition ($ ligne); } Poussez @wanted, 'eof'; Rejoignez Q {,}, @wanted; }; à la place, nous pouvons écrire: imprimer rejoindre q {,}, rassembler {tandis que (my $ line =) {prenez $ ligne si $ ligne = ~ / \ d /; prendre - $ ligne si quelqu'un_other_condition ($ ligne); } Prenez 'EOF'; } et au lieu de: My $ texte = do {My $ String; tandis que () {suivant si / ^ # | ^ \ s * $ /; Dernier IF / ^ __ __ \ N $ /; $ string. = $ _; } $ string; }; nous pourrions écrire: mon $ texte = rejoindre q {}, rassembler {alors que () {suivant si / ^ # | ^ \ s * $ /; Dernier IF / ^ __ __ \ N $ /; prendre $ _; }}; Il existe également une troisième fonction - recueillie - qui renvoie une référence à la matrice implicite en cours de collecte. Ceci est utile pour la manipulation des valeurs par défaut: mon @odds = rassembler {pour @data {prendre $ _ si $ _% 2; prenez à_num ($ _) si / $ /; } prendre (1,3,5,7,9) sauf si cueillie; } Notez que - Comme l'exemple ci-dessus implique - la fonction recueillie renvoie une référence spéciale de tableau Perl 5 qui agit comme une référence de réseau Perl 6 dans des contextes booléens, numériques et de chaîne.Il est également pratique pour la création de la matrice implicite par un processus plus complexe que par simple poussée séquentielle. Par exemple, si nous devions préparer un nombre d'éléments non numériques: mon @odds = Rassembler {pour @DATA {Prenez $ _ si $ _% 2; prendre à_num ($ _) si / $ /; } Unshift recueilli, + Grep (/ / I, @Data); } Recueillir / prendre conceptuellement est la forme généralisée à partir de laquelle la carte et le GREP dérive. C'est-à-dire que nous pourrions mettre en uvre ces deux fonctions comme: Sous mappe (@) {My $ Codèref = Shift; mon @List = @ {shift @_}; Retour Rassembler {Prenez $ $ codèref -> ($ _) pour (@list)}; } Sub Grep (@) {My $ Codèref = Shift; mon @List = @ {shift @_}; revenir rassemble {prendre $ _ si $ codèref -> ($ _) pour @List}; } Un rassemblement est également un moyen très pratique de faire court-circuiter la construction d'une liste. Par exemple, supposons que nous souhaions générer une liste unique de lignes de lignes à partir de deux fichiers triés, mais seulement jusqu'à la première ligne qu'ils ont en commun. Nous pourrions rassembler les lignes comme ceci: mon @Merged_diff = rassembler {My $ a = <$ fh_a>; mon $ b = <$ fh_b>; tandis que (1) {si (défini $ a dend $ b) {if ($ a eq $ b) {dernier} # dupliquer signifie fin de la liste elsif ($ a lt $ b) {prenez $ A; $ a = <$ fh_a>; } else {prendre $ b; $ b = <$ fh_b>; }} elsifsi (défini $ a) {prendre $ a; $ a = <$ fh_a>; } elsif (défini $ b) {prendre $ B; $ b = <$ fh_b>; } else {last}}} synopsis Utilisez la syntaxe :: Mot-clé :: Rassembler; mon @List = Rassemblez {# Essayez d'extraire des nombres impairs et des noms impairs ... pour (@data) {if (/ (un | trois | cinq | sept | neuf) $ /) {prenez QQ {'$ _' }} elsif (/ ^ \ d + $ / $ _% 2) {prenez $ _}} # mais utilisez le jeu par défaut s'il n'y a pas de ... Prenez @default à moins que ce soit en charge; } Exigences: · Perl


Syntaxe :: Mot-clé :: Rassembler Logiciels associés