Вы правы в том, что объявления переменных не нужны для различения целочисленных / float / ... типов, как в C.
Я думаю, что объявления переменных perl не являются инструкциями выделения памяти, а скорее инструкциями пространства именкогда $ name допустимо.Память будет выделена / освобождена по мере необходимости переводчиком.Создание действительно длинной строки в $ name приведет к тому, что для нее будет выделено больше памяти.
Объявление переменной с помощью «my $ var» делает ее локальной для текущей области.Без объявления «my» это глобальная переменная.Обычно подпрограммы должны объявлять любые переменные, которые они используют, с помощью «my», чтобы избежать загрязнения глобального пространства имен.Для получения дополнительной информации прочтите документацию perlsub .
Если объявленная переменная может влиять на производительность, так как это может привести к уничтожению / повторному созданию переменной, как обсуждено здесь .