/ / Ako môžem uložiť celý obsah poľa Perl do skalárnej premennej? - perl

Ako môžem uložiť celý obsah perlového poľa na skalárnu premennú? - perl

Ako môžem uložiť celý obsah poľa do skalárnej premennej. napr:

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

Funguje to dobre pre popisovače súborov, ale potrebujem to pre pole.

odpovede:

13 pre odpoveď č. 1

použitie join.

my $str = join "", @array;

5 pre odpoveď № 2

Môžete tiež vziať odkaz na pole:

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

my $scalar = @array;

foo( $scalar );

sub foo {
my $array_ref = shift;

for my $f ( @$array_ref ) {

do_something( $f );

}
}

Ktorý prístup zvolíte, záleží na tom, čo sa snažíte dosiahnuť.


1 pre odpoveď č. 3

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

0 pre odpoveď č. 4

Ako filehandle môžete skutočne použiť skalárnu premennú:

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