как разбить массив на другую - PullRequest
0 голосов
/ 13 декабря 2010
my  @array = [ 'TEXT[12]|SubText' , 'TEXT2|subText2' , 'TEXT3[34]' ] ;

Я искал этот массив в другой массив, как

('TEXT','12','SubText','TEXT2','SubText2','TEXT3','34')

Я действительно не понимаю, что мне использовать без каких-либо дополнительных модулей?

Ответы [ 2 ]

4 голосов
/ 13 декабря 2010

Вы разделяете элементы массива на [ или ] или |? Если да, вы можете сделать;

my @array = ('TEXT[12]|SubText' , 'TEXT2|subText2' , 'TEXT3[34]');
my @result;

foreach(@array) {
        push @result,split/[\[\]\|]+/;
}

Ideone Link

3 голосов
/ 13 декабря 2010

Это, вероятно, не делает то, что вы думаете, что делает.Он создает анонимный массив с элементами 'TEXT [12] | SubText', 'TEXT2 | subText2', 'TEXT3 [34]', а затем назначает его в качестве первого элемента @array!

Но еслиэто это то, что вы хотите сделать, тогда вам просто нужно добавить дополнительный шаг разыменования:

my  @array = [ 'TEXT[12]|SubText' , 'TEXT2|subText2' , 'TEXT3[34]' ] ;

for my $item (@array) {
    my @inner_elem_array = map { /(\w+)/g } @$item;
    #Do stuff with the new array here.
}

РЕДАКТИРОВАТЬ: Если это все еще не имеет смысла для вас, я 'рекомендую прочитать о ссылках и регулярных выражениях .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...