Как указано в на странице руководства , команда global
имеет значение только внутри тел процедур:
Эта команда не действует, если она не выполняется в контексте процедуры.тело.
Так что весь вопрос неясен.Если вы имели в виду, что в первом файле у вас есть proc, устанавливающий глобальную переменную, а другой proc (во втором файле) читает его, тогда вопрос имеет смысл, и ответ - да, код из второго файла увидит внесенные изменения.по коду из первого файла при условии, что процедура «установки» запускается до «получения».Чтобы сделать это более понятным, глобальная переменная является глобальной по отношению к интерпретатору, к которому работает код этой переменной.Следовательно, независимо от того, каким способом вы будете извлекать код в интерпретатор (package require
против source
против eval
и т. Д.), Весь этот код будет видеть один и тот же набор глобалов.
Но в любомВ этом случае вам, вероятно, следует воздерживаться от использования глобальных переменных и использования переменных пространства имен: они также являются глобальными, но вы значительно уменьшите риск введения некоторого другого кода, который впоследствии будет случайно связан с той глобальной переменной, к которой он не должен прикасаться.Конечно, как обычно, это зависит от того, насколько сложным будет ваше приложение.