nixp.ru v3.0

24 января 2017,
вторник,
16:12:13 MSK

DevOps с компанией «Флант»
Digger написал 27 июля 2006 года в 16:53 (325 просмотров) Ведет себя как мужчина; открыл 39 тем в форуме, оставил 251 комментарий на сайте.

есть такая вот функция.. с ошибкой (цель найти ошибку)

sub a {

 my $array=shift;

 foreach my $a (@$array) {

#…

}

}

Вопрос что в ней не так?

И что делает цикл( в частности что за зверь @$array)

Feuerbach

Странная задача.. С чего ты взял, что там ошибка?

Функция принимает ссылку на массив и проходит по этому массиву.

Например:

#!/usr/bin/perl
use warnings;
use strict;
sub a {
    my $array=shift;
    foreach my $a (@$array) {
        print "$a\n";
    }
}
a([1, "abc", 2]);

@$array разыменовывает ссылку в массив, см. perldoc perlreftut и perldoc perlref.

myst

Да-да. Надо знать, что должна делать ф-ция. Тогда можно будет говорить об [не]ошибке…

Digger

Пасибо почитал перлдок, вроде разобрался 8) Вопрос тогда надо уточнить..

Digger

Такой вопрос: может ли данная функция привести программу к runtime error, если может, то как?

Feuerbach
Digger
Такой вопрос: может ли данная функция привести программу к runtime error, если может, то как?

Разумеется, может. Начиная с того, что $array может быть неверной ссылкой (или вообще не ссылкой) и заканчивая делением на 0 ;-)

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.