%let foo=global;
%put &foo;
%macro myfunction;
%put &foo;
%local foo;
%let foo=local;
%put &foo;
%mend;
%myfunction;
%put &foo;
%put _all_;
%put _local_;
%let dsname=sashelp.class;
%let auther=zhangyaohui;
title "&dsname";
title2 '&auther';
proc print data=&dsname;
run;
%let var1=leon;
data _null_;
put "&var1.a and &var1.dss";
run;
/*多层宏变量解析用法*/
%let zhang=curry;
%let zhang1=&&zhang;
%put &zhang &zhang1;
options mprint;
options mprintnest;
%macro printclass();
proc print data=sashelp.class;
run;
%mend;
%printclass;
%macro test;
%let a=8;
%if 0<=&a and &a<5 %then %put inside;
%else %put outside;
%mend;
%test;
%macro printds;
title "content of dataset &dsname";
proc print data=&dsname;
run;
%mend;
/*调用1*/
%let dsname=sashelp.class;
%printds;
%macro printds(dsname,title);
title "content of dataset &title";
proc print data=&dsname;
run;
%mend;
%printds(sashelp.class,student);
%printds(sashelp.prdsale,product sales);