дКЪ ОПХЛЕМЕМХЪ ОНДОПНЦПЮЛЛШ ЕЕ МЕНАУНДХЛН НОПЕДЕКХРЭ КХАН Б РЕЙСЫЕЛ ЛНДСКЕ (ТЮИКЕ), КХАН БН БМЕЬМЕЛ ЛНДСКЕ (ТЮИКЕ). оНДОПНЦПЮЛЛШ НОПЕДЕКЪЧРЯЪ Х ДЕЙКЮПХПСЧРЯЪ ЯКЕДСЧЫХЛ НАПЮГНЛ:
дКЪ НОПЕДЕКЕМХЪ ДХМЮЛХВЕЯЙНИ ЮМНМХЛМНИ ОНДОПНЦПЮЛЛШ ЛНФМН СЙЮГЮРЭ:
дКЪ ХЛОНПРХПНБЮМХЪ ОНДОПНЦПЮЛЛ ХГ ДПСЦХУ ЛНДСКЕИ ХЯОНКЭГСИРЕ:
бШГНБ ОНДОПНЦПЮЛЛШ:
ХЛЪ(ЯОХЯНЙ ОЮПЮЛЕРПНБ); # ЯХЛБНК '&' ЛНФМН МЕ СЙЮГШБЮРЭ. ХЛЪ ЯОХЯНЙ; # еЯКХ ОНДОПНЦПЮЛЛЮ СФЕ ДЕЙКЮПХПНБЮМЮ. &ХЛЪ; # оЮПЮЛЕРПШ Б @_
бЯЕ ОЮПЮЛЕРПШ ОЕПЕДЮЧРЯЪ ОНДОПНЦПЮЛЛЕ ЙЮЙ ЛЮЯЯХБ @_. яННРБЕРЯРБЕММН $_[0] - ОЕПБШИ ОЮПЮЛЕРП, $_[1] - БРНПНИ Х Р.Д. лЮЯЯХБ @_ - КНЙЮКЭМШИ, МН НМ ЯНДЕПФХР ЮДПЕЯЮ ОЮПЮЛЕРПНБ, ОНЩРНЛС ЛНФМН ХГЛЕМЪРЭ ГМЮВЕМХЕ ОЮПЮЛЕРПНБ. бНГБПЮЫЮЕЛНЕ ГМЮВЕМХЕ ОНДОПНЦПЮЛЛШ - ПЕГСКЭРЮР ОНЯКЕДМЕЦН НОЕПЮРНПЮ. щРН ЛНФЕР АШРЭ ЙЮЙ ЯЙЮКЪП РЮЙ Х ЛЮЯЯХБ. лНФМН ОПХМСДХРЕКЭМН БНГБПЮЫЮРЭ ПЕГСКЭРЮР ХЯОНКЭГСЪ ТСМЙЖХЧ return().
оНДОПНЦПЮЛЛС ЛНФМН БШГБЮРЭ, ХЯОНКЭГСЪ ОПЕТХЙЯ '&' ОЕПЕД ХЛЕМЕЛ ОНДОПНЦПЮЛЛШ. еЯКХ ОНДОПНЦПЮЛЛЮ ОПЕДБЮПХРЕКЭМН ОПНДЕЙКЮПХПНБЮМЮ, РН ОПЕТХЙЯ Х ЯЙНАЙХ ЛНФМН НОСЯРХРЭ.
дКЪ ОПХЛЕМЕМХЪ ОЕПЕЛЕММШУ
ДНЯРСОМШУ РНКЭЙН БМСРПХ АКНЙЮ ХКХ
ОНДОПНЦПЮЛЛШ МЕНАУНДХЛН
НОПЕДЕКХРЭ ХУ Я ОНЛНЫЭЧ ТСМЙЖХХ
my(ЯОХЯНЙ).
еЯКХ ОЕПЕЛЕММЮЪ НДМЮ, РН ЯЙНАЙХ
ЛНФМН НОСЯРХРЭ.
my() ДЕЙКЮПХПСЕР private ОЕПЕЛЕММШЕ Б ОПЕДЕКЮУ РЕЙСЫЕИ ОНДОПНЦПЮЛЛШ, АКНЙЮ, ТСМЙЖХХ eval() ХКХ do/require/use ТЮИКНБ. Private ОЕПЕЛЕММШЕ ЮМЮКНЦХВМШ auto ОЕПЕЛЕММШЛ Б я.
оПХЛЕП:
# оПНЦПЮЛЛЮ БШВХЯКЕМХЪ ТЮЙРНПХЮКЮ. print fact(3); # БШВХЯКХРЭ ТЮЙРНПХЮК 3*2*1 sub fact # нОПЕДЕКЪЕЛ ОНДОПНЦПЮЛЛС. { my $m; # private ОЕПЕЛЕММЮЪ МН МЕ local ! $m = $_[0]; return 1 if $m <= 1; return($m * fact($m 1)); }
лНФМН СЙЮГШБЮРЭ МЮВЮКЭМШЕ ГМЮВЕМХЪ private ОЕПЕЛЕММШУ ЙЮЙ:
рЮЙ ДКЪ БШЬЕОПХБЕДЕММНЦН ОПХЛЕПЮ КСВЬЕ АШКН МЮОХЯЮРЭ:
б НАЫЕЛ КСВЬЕ ХЯОНКЭГНБЮРЭ private ОЕПЕЛЕММШЕ, Р. Й. ЩРН МЮДЕФМЕИ Х АШЯРПЕЕ. private ОЕПЕЛЕММШЕ НАЕЯОЕВХБЮЧР КЕЙЯХВЕЯЙСЧ НАКЮЯРЭ ОПХЛЕМЕМХЪ (БХДХЛНЯРХ), Ю local - ДХМЮЛХВЕЯЙСЧ. нАШВМН ЩРН ОЕПЕЛЕММШЕ ТНПЛЮРНБ, ГМЮВЕМХЕ ЙНРНПШУ ДНКФМН АШРЭ БХДХЛН ХГ БШГШБЮЕЛШУ ОНДОПНЦПЮЛЛ. оПХЛЕМЕМХЕ ТСМЙЖХХ local() МЕЖЕКЕЯННАПЮГМН Б ЖХЙКЮУ, РЮЙ ЙЮЙ НМЮ БШГШБЮЕРЯЪ ЙЮФДШИ ПЮГ Х РЮЙХЛ НАПЮГНЛ ГЮЛЕРМН СБЕКХВХБЮЕР БПЕЛЪ БШОНКМЕМХЪ ЖХЙКЮ.
дКЪ ЙПЮРЙНЦН НОХЯЮМХЪ РХОЮ ОЕПЕДЮБЮЕЛШУ ОНДОПНЦПЮЛЛЕ ОЮПЮЛЕРПНБ ЛНФМН ОПХЛЕМЪРЭ ОПНРНРХОШ. б Perl ЯСЫЕЯРБСЧР ЯКЕДСЧЫХЕ ОПНРНРХОШ:
дЕЙКЮПЮЖХЪ | оПХЛЕП БШГНБЮ |
---|---|
sub mylink($$) | mylink $old, $new |
sub myvec($$$) | myvec $var, $offset, 1 |
sub myindex($$;$) | myindex &getstring, "substr" |
sub myreverse(@) | myreverse $a, $b, $c |
sub myjoin($@) | myjoin ":",$a,$b,$c |
sub mypop(\@) | mypop @array |
sub mysplice(\@$$@) | mysplice @array, @array, 0, @pushme |
sub mykeys(\%) | mykeys %{$hashref} |
sub myopen(*;$) | myopen HANDLE, $name |
sub mypipe(**) | mypipe READHANDLE, WRITEHANDLE |
sub mygrep(&@) | mygrep { /foo/ } $a, $b, $c |
sub myrand($) | myrand 42 |
sub mytime() | mytime |
гДЕЯЭ:
хМНЦДЮ МСФМН Б ЙЮВЕЯРБЕ ОЮПЮЛЕРПЮ ОЕПЕДЮРЭ ОНДОПНЦПЮЛЛЕ МЕ ГМЮВЕМХЕ ЩКЕЛЕМРЮ ЛЮЯЯХБЮ, Ю ЯЯШКЙС МЮ МЕЦН, ВРНАШ ОНДОПНЦПЮЛЛЮ ЛНЦКЮ ХГЛЕМХРЭ ГМЮВЕМХЕ ЩКЕЛЕМРЮ. дКЪ ЩРНЦН Б Perl Й ХЛЕМХ ОЕПЕЛЕММНИ ДНАЮБКЪЕРЯЪ ЯХЛБНК '*' оНДНАМНЕ БШПЮФЕМХЕ МЮГШБЮЧР 'type glob' РЮЙ ФЕ ЙЮЙ Б Unix ЯХЛБНКНЛ '*' НАНГМЮВЮЧР "БЯЕ БНГЛНФМШЕ ГМЮВЕМХЪ". оНЩРНЛС '*' ДКЪ ЛЮЯЯХБЮ НГМЮВЮЕР "БЯЕ ЩКЕЛЕМРШ ЛЮЯЯХБЮ". дКЪ ЯЙЮКЪПНБ СОНРПЕАКЪРЭ '*' МЕ ХЛЕЕР ЯЛШЯКЮ, Р.Й. НМХ Х РЮЙ ОЕПЕДЮЧРЯЪ ЯЯШКЙНИ Х БШ ЛНФЕРЕ ХГЛЕМЪРЭ ГМЮВЕМХЕ ОЮПЮЛЕРПЮ, ХГЛЕМЪЪ, МЮОПХЛЕП, ОЕПЕЛЕММСЧ $_[0].
оЕПЕНОПЕДЕКЕМХЕ БЯРПНЕММШУ ТСМЙЖХИ.
аНКЭЬХМЯРБН БЯРПНЕММШУ ТСМЙЖХИ
Perl ЛНФМН ОЕПЕНОПЕДЕКХРЭ ЯБНХЛХ
ЯНАЯРБЕММШЛХ. нАШВМН ЩРН ДЕКЮЧР ДКЪ
СДНАЯРБЮ ЯНБЛЕЯРХЛНЯРХ Perl ДКЪ
ПЮГМШУ ОКЮРТНПЛ ЯХЯРЕЛ.
дКЪ ЩРНЦН МСФМН ОЕПЕВХЯКХРЭ ХЛЕМЮ
ЩРХУ ТСМЙЖХИ Б БХДЕ:
Х ДЮКЕЕ Б ЛНДСКЕ НОПЕДЕКХРЭ ЯЮЛХ ТСМЙЖХХ.
еЯКХ БШ ОНОШРЮЕРЕЯЭ БШГБЮРЭ МЕЯСЫЕЯРБСЧЫСЧ ТСМЙЖХЧ, РН Perl МЕЛЕДКЕММН БШДЮЯР ЯННАЫЕМХЕ НА НЬХАЙЕ. мН ЕЯКХ БШ НОПЕДЕКХРЕ ОНДОПНЦПЮЛЛС Я ХЛЕМЕЛ 'AUTOLOAD', РН НМЮ АСДЕР БШГБЮМЮ Я РЕЛХ ФЕ ОЮПЮЛЕРПЮЛХ, Ю ОЕПЕЛЕММЮЪ $AUTOLOAD АСДЕР ЯНДЕПФЮРЭ ХЛЪ МЕЯСЫЕЯРБСЧЫЕИ ОНДОПНЦПЮЛЛШ. дЮММШИ ЛЕУЮМХГЛ НВЕМЭ СДНАЕМ ДКЪ ЯПЕДЯРБ НРКЮДЙХ.
[мЮГЮД] [яНДЕПФЮМХЕ] [бОЕПЕД]