Ou, si vous voulez être vraiment sale: {local $,=', ';print @array}.
musiKk
10
Il y a plus d'une façon de le faire ... mais c'est de cette façon que la personne qui maintient le code après que vous vous détestez. Oui, perldoc perlvar existe, mais je préfère jeter un coup d'œil sur "join", "@array" plutôt que d'appuyer sur perlvar toutes les deux lignes pour comprendre ce que font toutes les variables ésotériques.
Oesor
@Oesor: C'est pourquoi je l'ai appelé sale. Mais bon, en regardant les autres réponses, je ne suis pas vraiment le pire délinquant. :)
musiKk
@musiKK j'aime ça! C'est quelque chose que j'utiliserais si je voulais intriguer mes collègues. :)
Alex
3
Cela fonctionnait très bien pour imprimer le contenu du répertoire. print "current directory contains " . join(', ', <*>) . "\n";
Sur Ubuntu / Mint, installez le paquet libdata-dump-perl.
MUY Belgique
2
Meilleure réponse ici! Fonctionne également avec des tableaux multidimensionnels. Le plus flexible.
Léo Léopold Hertz 준영
18
Si vous codez pour le type de clarté qui serait compris par quelqu'un qui commence tout juste avec Perl, la construction traditionnelle dit ce que cela signifie, avec un degré élevé de clarté et de lisibilité:
$string = join ', ',@array;print"$string\n";
Cette construction est documentée dans perldoc -fjoin.
Cependant, j'ai toujours aimé la simplicité $,. La variable spéciale $"est pour l'interpolation et la variable spéciale $,est pour les listes. Combinez l'un ou l'autre avec une contrainte de portée dynamique ' local' pour éviter d'avoir des effets d'entraînement tout au long du script:
use feature q(say);use strict;use warnings;my@array= qw/12345/;{local $,=', ';
say @array;# List}
Les variables spéciales $,et $"sont documentées dans perlvar . Le localmot-clé, et comment il peut être utilisé pour limiter les effets de la modification de la valeur d'une variable de ponctuation globale, est probablement mieux décrit dans perlsub .
Data :: Dumper est un module standard et est installé avec Perl. Pour obtenir une liste de toutes les pragmatiques et modules standard, voir pelrdoc perlmodlib.
shawnhcorey
7
Pour l'inspection / le débogage, vérifiez le Data::Printermodule. Il est destiné à faire une chose et une seule chose:
afficher des variables et des objets Perl à l'écran, correctement formatés (à inspecter par un humain)
Exemple d'utilisation:
useData::Printer;
p @array;# no need to pass references
Le code ci-dessus peut afficher quelque chose comme ceci (avec des couleurs!):
Vous avez des virgules dans l'impression car elles sont dans chaque élément du tableau. Vous devriez vraiment déclarer use warnings;et voir ce qu'il dit.
Toto
2
# better than Dumper --you're ready for the WWW....use JSON::XS;print encode_json \@some_array
{local $,=', ';print @array}
.print "current directory contains " . join(', ', <*>) . "\n";
Vous pouvez utiliser
Data::Dump
:Produit:
la source
Si vous codez pour le type de clarté qui serait compris par quelqu'un qui commence tout juste avec Perl, la construction traditionnelle dit ce que cela signifie, avec un degré élevé de clarté et de lisibilité:
Cette construction est documentée dans
perldoc -f
join
.Cependant, j'ai toujours aimé la simplicité
$,
. La variable spéciale$"
est pour l'interpolation et la variable spéciale$,
est pour les listes. Combinez l'un ou l'autre avec une contrainte de portée dynamique 'local
' pour éviter d'avoir des effets d'entraînement tout au long du script:OU avec $ ,:
Les variables spéciales
$,
et$"
sont documentées dans perlvar . Lelocal
mot-clé, et comment il peut être utilisé pour limiter les effets de la modification de la valeur d'une variable de ponctuation globale, est probablement mieux décrit dans perlsub .Prendre plaisir!
la source
Vous pouvez également essayer Data :: Dumper . Exemple:
la source
pelrdoc perlmodlib
.Pour l'inspection / le débogage, vérifiez le
Data::Printer
module. Il est destiné à faire une chose et une seule chose:Exemple d'utilisation:
Le code ci-dessus peut afficher quelque chose comme ceci (avec des couleurs!):
la source
libdata-printer-perl
package.Vous pouvez simplement
print
cela.Vous aurez:
la source
use warnings;
et voir ce qu'il dit.la source
Utilisation
Data::Dumper
:Génère trois styles de sortie différents:
la source
Ce n'est peut-être pas ce que vous recherchez, mais voici quelque chose que j'ai fait pour une mission:
la source
La carte peut également être utilisée, mais parfois difficile à lire lorsque vous avez beaucoup de choses à faire.
la source
Je n'ai pas essayé de courir ci-dessous, cependant. Je pense que c'est une manière délicate.
la source