Как я могу использовать Perl для конкатенации элементов массива между двумя индексами?

У меня есть массив строк: @array

Я хочу объединить все строки, начиная с индекса массива $i до $j. Как я могу это сделать?

Ответ 1

$newstring = join('', @array[$i..$j])

Ответ 2

my $foo = join '', @array[$i..$j];

Сначала мы создаем срез массива со значениями, которые мы хотим, затем присоединяем их к пустым символам.

Ответ 3

Просто добавить массив perl в кавычки достаточно, чтобы объединить его, если вы довольны пробелами в качестве символа конкатенации:

@array = qw(a b c d e f g);
$concatenated = "@array[2 .. 5]";
print $concatenated;
## prints "c d e f"

или, конечно,

$" = '-';
@array = qw(a b c d e f g);
$concatenated = "@array[2 .. 5]";
print $concatenated;

если вы предпочитаете "c-d-e-f".

Ответ 4

Попробуйте это....

use warnings ;
use strict ;
use Data::Dumper ;
my $string ;
map { $string .=  $_; } @arr[$i..$j] ;
print $string ;