6
votes

Perl6: tableau; Débarrassez-vous de la fente vide (n'importe quel)

Pour un tableau contenant uniquement des éléments STR, je peux utiliser GREP (STR) afin d'éliminer la machine à sous vide à la suite d'un: Supprimer;

Par exemple: P>

my @prov_cd = <AB BC MB NB NL NS ON PE QC SK>;

@prov_cd[2]:delete;                              # Manitoba deleted

@prov_cd;                                        # [AB BC (Any) NB NL NS ON PE QC SK]

my @prov_cd_cleanup = @prov_cd.grep(Str);        # get rid of (Any) empty slot: [AB BC NB NL NS ON PE QC SK]

@prov_cd = @prov_cd_cleanup;                     # [AB BC NB NL NS ON PE QC SK]


0 commentaires

3 Réponses :


5
votes

Cela fera:

@ provo_cd.grep (*. défini) (AB BC NB NL NS ON PE QC SK)

Alternativement, vous pouvez regarder épissure .


0 commentaires

5
votes

Premièrement, notez que si vous supprimez les entrées via épissure au lieu de : Supprimer < / Code>, les éléments seront déplacés et aucun «trous» sera généré.

Maintenant, si vous voulez vraiment filtrer juste tout , vous pouvez le faire via < Pré> xxx

Cependant, je soupçonne que vous recherchez xxx


0 commentaires

2
votes

echo les sentiments ci-dessus et fournir un exemple, vous pouvez plutôt utiliser épissure code>, qui renvoie également la valeur "épisée" si nécessaire. XXX PRE>

Notez que épissure code> renvoie toujours un tableau, même si vous avez supprimé seulement 1 élément. P>

say $removed.^name;  # OUTPUT: Array


0 commentaires