Ответ 1
$newstring = join('', @array[$i..$j])
У меня есть массив строк: @array
Я хочу объединить все строки, начиная с индекса массива $i
до $j
.
Как я могу это сделать?
$newstring = join('', @array[$i..$j])
my $foo = join '', @array[$i..$j];
Сначала мы создаем срез массива со значениями, которые мы хотим, затем присоединяем их к пустым символам.
Просто добавить массив 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".
Попробуйте это....
use warnings ;
use strict ;
use Data::Dumper ;
my $string ;
map { $string .= $_; } @arr[$i..$j] ;
print $string ;