Зависит от того, как было объявлено $ hold.
Если он был объявлен лексически (с помощью «my $ hold ...»), то вы не можете получить к нему непосредственный доступ - он доступен только в рамках файла named_script.pl.
Если он динамически ограничен (локальный $ hold или наш $ hold), то вы сможете получить его, добавив к нему префикс пакета, в котором он был объявлен (поэтому, если он находится в "package Foo;", вы можете получить по адресу это как $ Foo :: hold ").
Тем не менее ...
Как правило, вы не хотите возиться с передачей переменных между скриптами. Сохранение состояния в глобальных переменных может привести к некоторым неприятным сеансам отладки.
В качестве первого шага вы можете инкапсулировать доступ к $ hold внутри подпрограммы, так что в named_script.pl у вас есть что-то вроде:
sub is_on_hold { return $hold };
, который будет возвращать $ hold при вызове (здесь я предполагаю, что $ hold - это своего рода индикатор логического состояния. Если он не называет вашу подпрограмму соответствующим образом, раскрывающим намерение: -)
Если вы опишете, как вы пытаетесь использовать $ hold, более подробно, люди могут дать вам более конкретный совет относительно лучшего способа выполнения вашей задачи.