En af de mest irriterende detaljer i PL/I er, at hvis man glemmer at erklære en variabel, så laver PL/I selv en erklæring af variablen. Nogen gange opdager du det hurtigt, fordi variablen anvendes som en numerisk variabel, men erklæres som en tegn-variabel eller omvendt. Andre gange opdager du det ikke, fordi du benytter variablen i nogenlunde overensstemmelse med dens type.
Jeg har altid hadet denne implicitte erklæring, især fordi den kun rapporteres som en informativ meddelelse, ikke engang som en warning. Heldigvis har brugerne af PL/I endelig fået råbt IBM op (eller også har IBM selv indset det), så nu kan du få PL/I til at melde fejl på uerklærede variable, som det er standard i alle andre fornuftige programmeringssprog.
I Enterprise PL/I for z/OS (også kaldet PL/I version 3) er der indført en compile option kaldet RULES, som du kan sætte på forskellig måde, så compileren melder fejl eller er ligeglad med forskellige situationer. Heldigvis kan den implicitte erklæring af variable styres med RULES. Du skal angive RULES(NOLAXDCL), hvis du vil have PL/I til at melde fejl på uerklærede variable. Herefter vil en kompilering af et PL/I program med mindst een uerklæret variabel giver returkode 8 fra compileren. Husk, at du kan sætte denne compiler option med *PROCESS RULES(NOLAXDCL); direkte i programsourcen.