/ / Як я можу зберігати весь вміст масиву Perl в скалярну змінну? - перл

Як я можу зберігати весь вміст масиву Perl в скалярну змінну? - перл

Як я можу зберігати весь вміст масиву до скалярної змінної. наприклад:

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

Це добре працює для файлів ручки, але мені це потрібно для масиву.

Відповіді:

13 за відповідь № 1

Використовуйте join.

my $str = join "", @array;

5 для відповіді № 2

Ви також можете взяти посилання на масив:

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

my $scalar = @array;

foo( $scalar );

sub foo {
my $array_ref = shift;

for my $f ( @$array_ref ) {

do_something( $f );

}
}

Який підхід ви насправді залежить від того, що ви намагаєтесь виконати.


1 для відповіді № 3

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

0 для відповіді № 4

Ви дійсно можете використовувати скалярну змінну як файловий інструмент:

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