Как я могу использовать Perl для объединения элементов массива между двумя индексами? - PullRequest
12 голосов
/ 13 марта 2010

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

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

Ответы [ 4 ]

20 голосов
/ 13 марта 2010
$newstring = join('', @array[$i..$j])
8 голосов
/ 13 марта 2010
my $foo = join '', @array[$i..$j];

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

2 голосов
/ 13 марта 2010

Достаточно просто заключить в кавычки массив 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;

, есливы бы предпочли "cdef".

0 голосов
/ 13 марта 2010

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

use warnings ;
use strict ;
use Data::Dumper ;
my $string ;
map { $string .=  $_; } @arr[$i..$j] ;
print $string ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...