Мне требовалось переписать мой же проект, написанный на Perl, с использованием use strict. Было лень объявлять все переменные вручную, т.к. их было чертовски много, посему я решил сей процесс автоматизировать. Это конечно не совсем правильно, однако я всё равно весь результат потом тщательно проанализировал.
Итак, предлагаю вашему вниманию мой метод автоматизации:

1. Подключаем strict:

use strict;

2. Запускаем наш скрипт и фильтруем вывод ошибок на наличие «Global symbol» записывая в отдельный файл (например, var.txt);

3. Вычленяем название переменных, убираем всё лишнее, приписываем my и убираем дубли:

% cat var.txt | awk '{print $3}' | sed s/\"//g | sed s/^/"my "/ | sed s/$/\;/ | sort | uniq

4. Получившийся вариант вставляем в код скрипта, анализируем ‘perl -c’ и мозгами.

Настоятельная рекомендация: пишите скрипты на Perl сразу с использованием strict (и warnings) дабы избегать подобных граблей :)