Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > Динамический вывод на экран содержания массива


Автор: Ismoilzoda 13.8.2009, 09:50
Приветствую друзья!

Стоит задача о динамическом выводе информации хоронящихся в массиве, привожу пример:

есть

 my @array = ();

$array[0] = "AAA";
$array[1] = "BBB";
$array[2] = "CCC";


   $message = @array; 

    print "$message";

т.е при каждом print , на экран печатался один из элементов массива, что то типа динамики. 
Не судите строго пожалуйста, я сам только начинаю программировать. 
Заранее благодарен.

Автор: gcc 13.8.2009, 10:08
легче всего так:
Код

print "@array \n";


или
Код

print "@array \n\n";

Автор: Ismoilzoda 13.8.2009, 10:15
Цитата(gcc @ 13.8.2009,  10:08)
легче всего так:
Код

print "@array \n";


или
Код

print "@array \n\n";

Но так выводится на экран все три элемента 

./test.pl
AAA BBB CCC

а нужно что бы при каждом выполнении скрипта, выводился один элемент, и так далее по очереди или хаотична. 

Автор: shamber 13.8.2009, 10:27

Код

my $i = 2; #(или что-то динамическое)

print $array[$i];

Автор: ginnie 13.8.2009, 15:44
предложу 
Код

print $array[rand(@array)], $/;

Автор: amg 13.8.2009, 16:36
Цитата(Ismoilzoda @  13.8.2009,  09:50 Найти цитируемый пост)
т.е при каждом print , на экран печатался один из элементов массива, что то типа динамики.
Может, сгодится что-то вроде
Код
my @array = qw(AAA BBB CCC);
print next_element(@array);
print next_element(@array);
print next_element(@array);
print next_element(@array);

INIT {
  my $i = 0;
  sub next_element {
    return undef if $i > $#_;
    $_[$i++];
  }
}


Автор: KSURi 13.8.2009, 17:19
A зачем INIT {} ?

Добавлено через 2 минуты и 42 секунды
Я, кстати, так и не понял, что требуется(

Автор: amg 13.8.2009, 19:16
Цитата(KSURi @  13.8.2009,  17:19 Найти цитируемый пост)
A зачем INIT {} ?
Без INIT, если блок с закрытой переменной и подпрограммой расположен после вызова подпрограммы, будет предупреждение на использование неинициализированной переменной в сравнении. 

Автор: KSURi 13.8.2009, 22:49
А, я просто не сразу понял, что это вы так изобразили объявление
Код

my @array = qw(AAA BBB CCC);
my $i = 0;

...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)