PUSH Call

CALL PUSH (argument1 <, argument2, …, argument15> ) ;

The PUSH subroutine pushes character arguments that contain valid SAS statements (usually SAS/IML statements or global statements) to the input command stream. You can specify up to 15 arguments. Any statements in the input command queue are executed when the module is paused (see the PAUSE statement), which happens when one of the following occurs:

  • An execution error occurs within a module.

  • An interrupt is issued.

  • A PAUSE statement executes.

The pushed string is read before any other lines of input. If you call the PUSH subroutine several times, the strings pushed each time are ahead of the less recently pushed strings. If you would rather place the lines after others in the input stream, use the QUEUE call.

The strings you push do not appear on the log.

Caution: Do not push too many statements at one time. Pushing too many statements causes problems that can result in exiting the SAS System.

For more information about the input command stream, see Chapter 19.

An example that uses the PUSH subroutine follows:

start;
   code='reset pagesize=25;';
   call push(code,'resume;');
   pause;
   /* show that pagesize was set to 25 during   */
   /* a PAUSE state of a module                 */
   show options;
finish;
run main;

Figure 24.277: Result of a PUSH Statement

Options: noautoname center noclip                                               
         deflib=WORK (system-specific-pathname)                                 
         nodetails noflow nofuzz fw=9                                           
         imlmlib=SASHELP.IMLMLIB  linesize=80 nolog                             
         name pagesize=25 noprint noprintall spaces=1                           
         userlib=WORK.IMLSTOR(not open)