Forum Webscript.Ru

Программирование => Perl => Тема начата: Billi от 12 Июля 2004, 16:18:17

Название: Создание 2d массива
Отправлено: Billi от 12 Июля 2004, 16:18:17
Уменя есть таблица в тестовом файле я разбиваю, в 2d массив для сортировки и т.д.
...
@a3=split(/t2>t3t12>t13\'
$index=0;
foreach(@a3)
{
 @{$a3[$index]}=split(/>/,$a3[$index]);
 $index++;
}
...
Все рабоет, но насколько это грамотно написано, нельзяли сделать лучше (бустрее, оптимальнее)  ?
Название: Создание 2d массива
Отправлено: commander от 12 Июля 2004, 18:39:31
не очень понял вопроса... Почему не использовать обычный массив?
например так:

my $text="DSvdfs<>AV";
$text=~s/$text=~s/>/*/g;
my @arr=split(/\\*/, $text);
print join(",", @arr);

Правда не забываем что регеплексы медленные...
Название: Создание 2d массива
Отправлено: Phoinix от 12 Июля 2004, 19:30:40
commander

Тогда уж проще:
my $text="DSvdfs<>AV";
my @arr=split(/[<>]/, $text);

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

my $text =\'t1>t2>t3t12>t13\';
my (@array, $i);
foreach(split(/@{$array[$i]}=split(/>/,$_);
$i++
}