PRPL implements some of the features which CRPL did not have, save by workarounds.
Accessor Notation (AcNot) streamlines the process of changing unit properties.
Where CRPL needed…
<-UID CONST_UNITATTRIBUTE <-Value SetUnitAttribute
…most such changes can be written in PRPL with…
<-Value ->UID.Attribute
There will eventually be a page for this here.
CRPL:
<-List <-Index GetListElement #Often, it becomes difficult to keep the ordering straight.
PRPL:
<-List[<-Index]
This will eventually be documented on the CreateList page.
CRPL had no built-in capacity to handle map-global variables, although a slow and difficult implementation could be achieved through a “watcher” Core or lists.
PRPL, on the other hand, makes it almost as easy to use these as to use standard variables. (It's a matter of an asterix asterisk.)
<-*Var #Read ->*Var #Write --*Var #Delete -?*Var #Check existence <-VarName ->!* #Ref-read (and similarly for the other ref- operations) ClearGlobals #Same as ClearLocals. Need I say more?