[Highly desirable] Make a semicolon optional at the end of the line, if there is a balance of brackets on the line and the statement looks syntactically correct ("soft semicolon", the solution used in famous IBM PL/1 debugging compiler).
I feel a bit ashamed to admit that I had programmed in PL/I for several years.
The reason why PL/I was so relaxed w.r.t. syntax is simple: You put your box full of punched cards to the operators' desk and you
get the compiler's result the next day.
If the job had failed just because of a missing semicolon, you'd loose one full day.
Nowadays there is absolutely no need for such stuff.
BTW, the really fatal errors in a PL/I program resulted in a compiler warning of the kind "conversion done by subroutine call".
This happend e.g. when assigning a pointer to a character array.
I wouldn't like to see any of the fancy features of PL/I in Perl.
Consult your fortune database:
Speaking as someone who has delved into the intricacies of PL/I, I am sure that only Real Men could have written such a machine-hogging, cycle-grabbing, all-encompassing monster. Allocate an array and free the middle third? Sure! Why not? Multiply a character string times a bit string and assign the result to a float decimal? Go ahead! Free a controlled variable procedure parameter and reallocate it before passing it back? Overlay three different types of variable on the same memory location? Anything you say! Write a recursive macro? Well, no, but Real Men use rescan. How could a language so obviously designed and written by Real Men not be intended for Real Man use?