31 lines
789 B
Perl
31 lines
789 B
Perl
# create array
|
|
my @a = (1, 2, 3, 4, 5);
|
|
|
|
# create callback function
|
|
sub mycallback {
|
|
return 2 * shift;
|
|
}
|
|
|
|
# use array indexing
|
|
for (my $i = 0; $i < scalar @a; $i++) {
|
|
print "mycallback($a[$i]) = ", mycallback($a[$i]), "\n";
|
|
}
|
|
|
|
# using foreach
|
|
foreach my $x (@a) {
|
|
print "mycallback($x) = ", mycallback($x), "\n";
|
|
}
|
|
|
|
# using map (useful for transforming an array)
|
|
my @b = map mycallback($_), @a; # @b is now (2, 4, 6, 8, 10)
|
|
|
|
# and the same using an anonymous function
|
|
my @c = map { $_ * 2 } @a; # @c is now (2, 4, 6, 8, 10)
|
|
|
|
# use a callback stored in a variable
|
|
my $func = \&mycallback;
|
|
my @d = map $func->($_), @a; # @d is now (2, 4, 6, 8, 10)
|
|
|
|
# filter an array
|
|
my @e = grep { $_ % 2 == 0 } @a; # @e is now (2, 4)
|