Страницы

Поиск по вопросам

четверг, 23 января 2020 г.

обработка массива пользовательской функцией в perl

#perl #функции #sub


Как в функцию передать массив и что то с ним сделать в perl?
    


Ответы

Ответ 1



Можно передавать указатель на массив: #!perl.exe -w use strict; use utf8; our @array = qw(Мама мыла Вишну); sub printArray{ my ($ref) = @_; for my $element (@$ref) { print "$element\n"; } } printArray(\@array); См. perldoc perlref

Ответ 2



Пока гуглил или пытался воспроизвести проблему с бесконечным циклом(и конкретной загрузкой ЦП), или отказом вообще работать. нашел решение проблемы. Ниже пример как в пользовательскую функцию передать массив. И в данном случае его вывести. #!perl.exe -w #строка выше у вас может быть другой. use strict; my @array = ("Мама", "мыла", "Вишну"); sub readArray{ my($val) = @_; for(my $i=0; $i < @$val ;$i++){ print @$val[$i]."\n"; } } readArray( \@array); Суть в этом "$@" это называется применить к ссылке операцию разименовывания. А при вызове нужно передать ссылку на массив. информацию нашел тут: http://valera.asf.ru/perl/book/9/9.4.html

Ответ 3



@a = [1,2,3,4,5,6,7] sub a { $in = shift; foreach ( @{$in} ) { print $_; } }

Комментариев нет:

Отправить комментарий