# Типичная Perl-функция sub f { my ($x,$y) = @_; local ($visible) = 111; my $z = shift; print $_[1]; return 1 if ($x>100); 0; } # или просто f(1,2,3); &f(1,2,3); * По умолчанию все переменные в perl - глобальны * my ($x) - объявление локальной переменной * local ($x) - объявление переменной, доступной для всех вызванных ниже функций * функции могут быть вложенными # Можно определить контекст, в котором вызвана фукнция if (wantarray()) { # array } elsif (defined wantarray()) { # scalar } else { # unknown } mysub(); # unknown $a = mysub(); # scalar @a = mysub(); # array # Можно определить стек вызова: ($package, $filename, $line, $sub, $has_args, $wantarray) = caller(1); * Есть также встроенные __LINE__, __FILE__, __PACKAGE__ # Функция с именованными параметрами: sub f { my %argv = ( DEFVAL1 => 0, DEFVAL2 => 'str', @_ ); } f(DEFVAL1=>1, DEFVAL2=>'string');
Perl Справочник v0.05 © 2007-2025 Igor Salnikov aka SunDoctor