Special variables in PL/I are termed "Pseudo-variables". They are used only on the LHS of an assignment statement. They include: REAL to assign the real part of a COMPLEX variable; IMAG to assign the imaginary part of a COMPLEX variable; SUBSTR is used to assign part of a string (used on the LHS of an assignment); STRING when used on the left-hand of an assignment; UNSPEC used to assign a bit pattern to a variable; ENTRYADDR is used to assign an address to an ENTRY variable that is to be invoked; ONCHAR resets the current value of the CHAR built-in function (when a data conversion error occurs, and it is desired to re-attempt the conversion); ONSOURCE assigns a new value to the ONSOURCE built-in function (may be used when a data conversion error occurs, and a re-try of the conversion is to be attempted with modified data); ONGSOURCE assigns a new value to the ONGSOURCE built-in function (may be used when a data conversion error occurs, and may be used when a re-try of the conversion is to be attempted with modified data).