LINUX.ORG.RU

История изменений

Исправление gh0stwizard, (текущая версия) :

Потому что массив в перле не считается объектом в философском плане, а считается кучей значений через запятую. Если хочешь отделить, юзай референсы — это и есть объекты в питонячьем, например, понимании.

Все верно, однако есть вариант идти через прототип функции:

#!/usr/bin/perl

sub mymap(&\@;@) {
  map &{$_[0]}, @{$_[1]};
}

@a = (1..3);
@b = (4..6);

print $_, "\n" for mymap { $_ * $_ } @a, @b;

http://ideone.com/9ZQH6z

Минус в том, что прототип работает только в рамках своего модуля. Извне пример выше надо делать так: mymap(sub { $_ * 3 }, \@list);

Исходная версия gh0stwizard, :

Потому что массив в перле не считается объектом в философском плане, а считается кучей значений через запятую. Если хочешь отделить, юзай референсы — это и есть объекты в питонячьем, например, понимании.

Все верно, однако есть вариант идти через прототип функции:

#!/usr/bin/perl

sub mymap(&\@;@) {
  map &{$_[0]}, @{$_[1]};
}

@a = (1..3);
@b = (4..6);

print $_, "\n" for mymap { $_ * $_ } @a, @b;

http://ideone.com/9ZQH6z