Программирование > Perl
Динамическое создание массивов
Yourock:
Люди добрые, подскажите, чем сможете.
Стоит задача динамического создания массива типа
#!/usr/bin/perl -w
use strict;
for (1..10)
{
my @array$_; # my @array1; my @arrayn; my @array10;
}
... чтобы получилось, как в комменте, то есть чтобы дальше можно было работать, например, с @array3 или @array5.
А как это всё сделать - не знаю :(
arto:
опишите задачу.
demond:
так пойдет? :-)
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:
Подход отличный! Спасибо.
Но включенный use strict; не пропускает - выползают ошибки типа
--- Код: ---Global symbol "$i" requires explicit package name at E:\\www\\cgi-bin\\test.pl line 9.
--- Конец кода ---
demond:
Может я чего-то не понимаю, но strict требует объявлять все переменные перед их использованием, т.е. до исполнения кода компилятор создает все переменные (выделяет под них память). Вам же необходимо создавать переменные в процессе исполнения кода, что противоречит требованиям прагмы strict. Если найдете решение, обязательно напишите.
Могу еще посоветовать форум forum.vingrad.ru. Там в разделе perl много хороших программистов, я думаю они Вам помогут, если это возможно, или объяснят, почему это не возможно! :-)
Навигация
Перейти к полной версии