Я унаследовал некоторый код perl, который, конечно, не использует ни строгие, ни предупреждения, и я продолжаю использовать неинициализированные переменные и тому подобное.Секция кодового раздела используется строгое/строгое?
Я хотел бы кронштейн секции коды, которые я модифицирующую так:
use warnings;
use strict;
... my code changes and additions ...
no strict;
no warnings;
И это, кажется, работает, но у меня проблемы дешифрования, что the perldoc on use означает, когда он говорит, что они директоры компилятора, которые импортируют в текущую «область блока». Означает ли это, что любая область может иметь use strict
непарно с no strict
? Является ли no strict
в хвосте глобальной области существенно портит значение use strict
ранее в той же области?
Я подтвержу, что это хорошая идея * временно * работать с существующим кодом. Еще лучше было бы добавить ваши дополнения в функции в отдельный файл библиотеки. В конце концов вы захотите привести все под строгий характер. – Schwern
Кто-то, кто не «использует строгую», конечно, также не позволяет легко инкапсулировать код ... Я должен добавить к их eleventytwo глобальным хэш-таблицам, вы видите ... – stevesliva
Да, это расстраивает, но это не мешает вы используете библиотечные подпрограммы. Вы можете ссылаться на их глобальные переменные с помощью '% main :: blah' (при условии, что он находится в основном пакете). Еще лучше, передайте свои глобальные переменные, которые вам нужно изменить в свои подпрограммы по ссылке: 'some_new_sub (\% blah)'. Это предотвратит их глобальный беспорядок от заражения новым кодом. Сначала это будет беспорядочно, но это даст вам лучшее представление о том, какой код нуждается в данных. Благодаря этому шаблон метода извлечения станет вашим самым сильным инструментом. – Schwern