Date: Tue, 23 Dec 2003 13:37:08 -0800
Reply-To: cassell.david@EPAMAIL.EPA.GOV
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "David L. Cassell" <cassell.david@EPAMAIL.EPA.GOV>
Subject: Re: called macros
Content-type: text/plain; charset=US-ASCII
Roland <roland@RASHLEIGH-BERRY.FSNET.CO.UK> replied to Richard:
> > If you have a hardcore UNIX guru available, you could probably log
the file
> > io requests. Only a little research would be needed to determine
the
> > 'fingerprint' that corresponds to 'read macro from library'.
> I see what you mean regarding a %log macro. This is a nice idea.though
I
> want the macros to also be called in ordinary code and so don't want
it
> doing extra. I wish I were a Unix guru. I've wanted to be one for a
few
> years now but I could never grow the ponytail.
:-) :-)
First off, you don't have to have a ponytail. You can go for the 'old
guru'
look, which only requires a big scruffy beard (appropriate at this time
of year!)
and suspenders (which I think you would call 'braces').
Second, I don't know whether SAS would read the macro even if you didn't
*use*
it. If not, then you could just check the file attributes for each of
the macro
files. In Perl, the -A function yields the time (in days) since the
last access,
so you would be able to check whether the files had been touched since
before the
programs were run. Of course, if SAS touches every single macro file
referenced
in a program, then this won't work. And neither will Richard's
suggestion, since
the I/O would be there. I have not run any tests to determine how SAS
does the
I/O in this case, but you could check things out. If you encapsulate
your SAS
program in a Perl script, you can [1] snag the current time, [2] run all
the SAS
proggies, [3] then see if any of your macro files have been accessed
since the time
in [1].
HTH,
David
--
David Cassell, CSC
Cassell.David@epa.gov
Senior computing specialist
mathematical statistician
|