The LENGTH function resolves with each variable interrogation (at execution time -- and on each DATA step iteration).
So, even within a single DATA step pass, you could alter the SAS CHARACTER variable contents (shorten or lengthen) and the LENGTH will report a result, based on the current contents (without considering any blank-padding) -- it does not reflect the SAS system dataset declared (or implied) variable length -- which is actually the maximum length possible, when considering truncation.
Scott Barry
SBBWorks, Inc.
Recommended Google advanced search argument, this topic/post:
length function character variable site:sas.com
Also, suggested SAS Base System DOC reading:
http://support.sas.com/documentation/cdl/en/basess/58133/HTML/default/a001304318.htm