سابروتینها (Subs)
تعریف sub، فراخوانی، آرگومانها در @_ و return.
سابروتین: تابع پرل
در پرل به تابع subroutine (یا sub) میگویند:
sub greet {
say "سلام!";
}
greet(); { فراخوانی }
آرگومانها — در @_
پرل آرگومانها را در آرایه جادویی @_ میگذارد:
sub greet {
my ($name) = @_; { گرفتن آرگومانها }
say "سلام $name!";
}
greet("Ali");
greet("Sara");
چند آرگومان
sub add {
my ($a, $b) = @_;
return $a + $b;
}
say add(3, 5); { 8 }
روش shift — رایجتر!
sub add {
my $a = shift; { اولین آرگومان }
my $b = shift; { دومین }
return $a + $b;
}
shift بدون آرگومان داخل sub یعنی shift از @_ — این سبک خیلی رایج پرل است!
return — برگرداندن مقدار
sub max_val {
my ($a, $b) = @_;
if ($a > $b) { return $a }
return $b;
}
say max_val(10, 20); { 20 }
sub قبل از استفاده
در پرل میتوانید sub را هر جا تعریف کنید (اول یا آخر برنامه) — پرل کل فایل را اول میخواند!
مثال: بدون تکرار
sub print_line {
say "=" x 30;
}
sub print_title {
my ($t) = @_;
print_line();
say " $t";
print_line();
}
print_title("گزارش نمرات");
print_title("لیست دانشآموزان");
خلاصه
- sub name { ... } تعریف، name() فراخوانی
- آرگومانها در @_
- my ($x, $y) = @_ یا shift
- return مقدار برگشتی
این مبحث بخشی از دوره آموزش کامل پرل است.