A script - это просто имя (обычно короткой) программы, обычно содержащейся в одном файле. Это не совсем научный / технический термин, и поэтому он довольно расплывчатый - люди могут ссылаться на «сценарий» при обсуждении быстрой программы из 3 строк или программы с 10000 строками кода.
Некоторые люди называют любую программу на Perl «скриптом» - см. Историческую причину ниже. Некоторые люди, когда они говорят «сценарий Perl» в отличие от Perl «программа», имеют в виду относительно простую, относительно короткую программу, часто структурированную без использования каких-либо подпрограмм / классов / других методов организации кода. Опять же, нет стандартного определения.
Кроме того, причина того, что Perl-программы часто называют «сценариями», заключается в том, что Perl изначально использовался для написания сценариев, выполняющих работу в оболочке Unix , как использовались языки сценариев оболочки. Термин « язык сценариев » означает язык, используемый для управления приложением, в данном случае оболочкой Unix.
Конечно, с тех пор Perl превратился в полноценный язык программирования, но слово / термин остались, иногда используемые по инерции, иногда уничижительно.
A подпрограмма (также известная как процедура, функция, подпрограмма, метод или подпрограмма) - это часть кода в более крупной программе, которая выполняет определенную задачу и является относительно независимо от оставшегося кода. Часто подразумевается, что он содержит код, который выполняет задачу, которую необходимо выполнить несколько раз в вашей программе или даже несколькими программами.
Подпрограмма НЕ является концепцией, специфичной для Perl, хотя ее называют «подпрограммой» на очень немногих языках (большинство используют термин функция, метод или процедура).
В качестве особого примечания, " метод " - как в Perl, так и в других языках - это специальный тип подпрограммы, который связан с объектно-ориентированным классом или объектом этого учебный класс. Тот факт, что это просто особый случай подпрограммы, конечно же, подчеркивается тем фактом, что - несмотря на глубокие пожелания автора "Modern Perl" chromatic - методы в Perl 5 объявляются с ключевым словом "sub" То же, что и обычные подпрограммы.
Как отмечалось выше, некоторые люди, ссылаясь на программу Perl как «скрипт», подразумевают, что она не содержит подпрограмм (например, что-либо достаточно сложное, чтобы подпрограмма больше не является «скриптом») "но" программа "). Но это не является общепринятым или формальным определением - как уже говорилось, не является определением того, что представляет собой сценарий , каждый использует термин любым способом, каким пожелает.