Автор Тема: Динамическое создание массивов  (Прочитано 5250 раз)

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

Оффлайн Yourock

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическое создание массивов
« : 25 Октября 2008, 10:20:24 »
Люди добрые, подскажите, чем сможете.
Стоит задача динамического создания массива типа


#!/usr/bin/perl -w
use strict;

for (
1..10)
{
   
my @array$_# my @array1; my @arrayn; my @array10;
}

... чтобы получилось, как в комменте, то есть чтобы дальше можно было работать, например, с @array3 или @array5.
А как это всё сделать - не знаю :(
« Последнее редактирование: 25 Октября 2008, 10:42:34 от Yourock »

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Динамическое создание массивов
« Ответ #1 : 25 Октября 2008, 12:25:13 »
опишите задачу.

Оффлайн demond

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическое создание массивов
« Ответ #2 : 27 Октября 2008, 12:29:48 »
так пойдет? :-)

for (1..10)
{
   $array[$_]="num".$_;
}
$i=0;
foreach (@array) { @{$_} = ($i.1,$i.2,$i.3,$i.4,$i.5,$i.6); $i++}


foreach (@num1){print $_." ";}
print "\\n";
foreach (@num2){print $_." ";}
print "\\n";
foreach (@num3){print $_." ";}

Оффлайн Yourock

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическое создание массивов
« Ответ #3 : 27 Октября 2008, 15:40:07 »
Подход отличный! Спасибо.
Но включенный use strict; не пропускает - выползают ошибки типа Global symbol "$i" requires explicit package name at E:\\www\\cgi-bin\\test.pl line 9.

Оффлайн demond

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическое создание массивов
« Ответ #4 : 28 Октября 2008, 11:16:11 »
Может я чего-то не понимаю, но strict требует объявлять все переменные перед их использованием, т.е. до исполнения кода компилятор создает все переменные (выделяет под них память). Вам же необходимо создавать переменные в процессе исполнения кода, что противоречит требованиям прагмы strict. Если найдете решение, обязательно напишите.
Могу еще посоветовать форум forum.vingrad.ru. Там в разделе perl много хороших программистов, я думаю они Вам помогут, если это возможно, или объяснят, почему это не возможно! :-)

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
Динамическое создание массивов
« Ответ #5 : 10 Декабря 2008, 01:27:18 »
А как насчёт внимательного прочтения сообщения об ошибке?
Замените $i=0; на my $i=0;  в 9 строке!
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

 

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