Two rather different approaches spring to mind:
- Save the output from the long-running job to a temporary file, and read from that when you need the results
- Launch the long-running job as a sub-process of your Perl program, and use one of the many IPC (inter-process-communication) methods
Alternative (a) is a lot easier to implement provided that you can run the 1hr+ job before the rest of the code.
Data::Dumper or
Storable are two useful modules if you want a "perlish" format to the results data. Alternative (b) may allow you to interact with the long-running job, but it is non-trivial to avoid all of the potential pit-falls of concurrent programming. You may want to investigate the
IPC::Open2 module for this alternative.