The qb::genframes() function returns a reference to a hash array, keyed to individual frames. This array is called an "agenda." Qb::genframes() contains a parser that can handle a number of ways of specifying lists of frames.
Example
Single frame  | 
1  | 
Frame range  | 
1-100  | 
Range by step  | 
1-100x3   | 
Comma  | 
1,2,3  | 
Negative  | 
-100  | 
Complex  | 
-100-100   | 
Table 1: Frame specification
Additionally, there is a convenience function called rangesplit() that can return an array of frame numbers based on the specified list string. 
Submit the job. A job is essentially a reference to a hash. The hash contains a set of key-value pairs with various job parameters, as well as the pointer to the agenda. This job package gets sent to the Qube system via the qb::submit() function.
The function returns a hash reference containing information about the submitted job, including the job ID.