سابروتین‌ها (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("لیست دانش‌آموزان");

خلاصه

این مبحث بخشی از دوره آموزش کامل پرل است.

ابزارهای مرتبط