2010-01-25 3 views
-2

Comment puis-je stocker le contenu entier d'un tableau dans une variable scalaire. par exemple:Comment puis-je stocker le contenu entier d'un tableau Perl dans une variable scalaire?

my $code = do { local $/; <FILE HANDLE>; }; 

Cela fonctionne très bien pour les handles de fichiers, mais je besoin de cela pour un tableau.

+6

Qu'essayez-vous de faire? Montez un niveau d'abstraction, pourquoi essayez-vous de stocker un tableau dans un scalaire? Quel est le but de cette tentative? En répondant à ces questions, nous pourrons peut-être vous donner une aide utile. – daotoad

+4

question la plus importante: que faites-vous exactement avec la variable scalaire par la suite? – ysth

Répondre

13

Utilisez join.

my $str = join '', @array; 
+1

Cette méthode fonctionne également si vous voulez un moyen rapide de séparer le contenu de votre chaîne avec des sauts de ligne pour la sortie, mais notez les guillemets. 'my $ str = rejoindre" \ n ", @array;' – Structure

1

@arr = ("1","2","3") ; 
my $arr = "@arr" ; 
print "$arr"; 
0

Vous pouvez réellement utiliser une variable scalaire comme descripteur de fichier:

my $bigbuffer; 
my $f; 
open $f, ">", \$bigbuffer; # opens $f for writing into the variable $bigbuffer 
# do whatever prints fwrites etc you want here 
+1

Vous semblez avoir complètement mal lu la question. –

5

Vous pouvez également prendre une référence au tableau:

my @array = 'a'..'z'; 

my $scalar = \@array; 

foo($scalar); 

sub foo { 
    my $array_ref = shift; 

    for my $f (@$array_ref) { 

     do_something($f); 

    } 
} 

Quelle approche vous prenez vraiment dépend de ce que vous essayez d'accomplir.

Questions connexes