Спасибо всем за участие в этом ответе. Я добавляю этот ответ, чтобы вычленить части бесценного вклада каждого, который я использовал, чтобы придумать решение, которое работало для меня в моем конкретном приложении.
Приложение написано на ActiveState Perl с использованием POE и Tk и упаковано для распространения с помощью стр. Оно использует несколько внешних файлов; некоторые для ввода в программу (ложные данные из DNS), а некоторые для действий, предпринимаемых пользователем (создание и удаление записей псевдонимов DNS).
Пакет PAR (pp) включает внешние файлы, используя аргумент -a. Эти файлы распаковываются в каталог \ inc по пути «temp», созданному пакетом и доступному сценарию через
$ENV{PAR_TEMP}
Первым шагом в решении было добавить эту информацию в POE "$ heap". Строка ниже находится во встроенном состоянии "_start";
$heap->{t_path} = "$ENV{PAR_TEMP}\\inc\\";
Поскольку я работаю в среде Win32, я использовал экранированные обратные слэши, чтобы добавить каталог \ inc во временный путь.
При вызове внешнего файла для ввода в приложение я использовал переменную (@zone) для возврата данных;
@zone = `$heap->{t_path}dnscmd aus-dc1 /enumrecords company.pvt @`;
Для вызовов для выполнения внешних действий файлы вызываются без сохранения вывода;
`$heap->{t_path}cpau -dec -file $heap->{t_path}del_event.job -nowarn -wait`;
Еще раз спасибо всем за участие и спасибо stackoverflow за предоставление этой великолепной среды.