Macro Quoting |
In each of the following statements, the macro processor treats the masked semicolons as text:
%let p=%str(proc print; run;); %let p=proc %str(print;) %str(run;); %let p=proc print%str(;) run%str(;);
The value of P is the same in each case:
proc print; run;
The results of the three %LET statements are the same because when you mask text with a macro quoting function, the macro processor quotes only the items that the function recognizes. Other text enclosed in the function remains unchanged. Therefore, the third %LET statement is the minimalist approach to macro quoting. However, masking large blocks of text with a macro quoting function is harmless and actually results in code that is much easier to read (such as the first %LET statement).
Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.