Автор Тема: Создание 2d массива  (Прочитано 2283 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Billi

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

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Создание 2d массива
« Ответ #1 : 12 Июля 2004, 18:39:31 »
не очень понял вопроса... Почему не использовать обычный массив?
например так:

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

Правда не забываем что регеплексы медленные...
And no religion too...

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Создание 2d массива
« Ответ #2 : 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++
}

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28