Вызов подпрограммы
Мы знаем, что принадлежность к тому или иному типу определяется префиксом имени:
- $х – скалярная переменная,
- @х – массив,
- %х – ассоциативный массив.
Префиксом функции является символ "&". К любой подпрограмме можно обратиться, указав ее имя с префиксом &:
Sname args; Sname(args); Sname;
Здесь args обозначает список аргументов подпрограммы. Если список аргументов отсутствует, вместо него используется специальный массив @_.
Если после имени подпрограммы следуют скобки, префикс & можно опустить:
name (args); name();
Если до обращения к ней подпрограмма была объявлена или импортирована, то скобки также можно опустить:
sub name {…}; name args; name;
Если подпрограмма вызывается через ссылку на нее, префикс является обязательным:
$subref = sub (…}; Ssubref(args); ssubref;
Подпрограмма может быть использована в выражении как функция, возвращающая значение. По умолчанию значением подпрограммы является последнее вычисленное в ней выражение. Его можно изменить, указав явно в качестве аргумента функцию return () в любой точке подпрограммы. Возвращаемое значение может быть скалярной величиной или массивом.