У меня есть строка, считанная из текстового файла, которая будет эквивалентна моей декларации в следующем формате:
$string = '["Item1_Field1","Item1_Field2","Item1_Field3"],["Item2_Field1","Item2_Field2","Item2_Field3"],["Item3_Field1","Item3_Field2","Item3_Field3"],["Item4_Field1","Item4_Field2","Item4_Field3"]';
(Фактическая строка содержит около 600 элементов и около 50 полей). ЧтоЯ пытаюсь сделать, это получить двумерный (вложенный) массив элементов и полей, так что я могу ссылаться на них, используя что-то вроде:
print $ItemsAndFields[1][2]
, что приведет к (с учетом нуля-основанные массивы):
Item2_Field3
Мне приходит в голову, что строка имеет формат, очень похожий на то, как вы объявляете массив в Perl, поэтому я надеюсь, что есть что-то похожее на следующееПозвольте мне назначить элементы массиву напрямую:
@ItemsAndFields = magicfunction( $string );
, но я не могу найти ничего подходящего, что позволило бы мне использовать строку таким образом.
Единственный способ, которым я могучтобы сделать это иначе, нужно использовать функцию split дважды для создания этого массива массива.Следующее непроверено, просто работа в моей голове:
$string =~ s/\[//g;
my @items = split(/\],*/, $string);
my @ItemsAndFields = split(/\,/, $string);
Я пытался посмотреть на функцию eval (), использование {} ссылок, а также поиск по этому сайту, но это труднознаю, что мне нужно искать.
Любая помощь приветствуется, я новичок в Perl.