What would happen if we took the edges cases out of the Perl syntax? We were talking about this over lunch at the Nordic Perl Workshop. I wondered what would happen if we could make a grammar that other things that aren't perl could statically parse? This experiment doesn't care about backward compatibility. We end up with a slightly smaller

Part of the problem is that Perl code can run during the compilation and that can change the way that the parser works. What if that could still happen but the syntax would be the same?

The other huge problem is the availability of CPAN. Which features' disappearance would break CPAN beyond the point where people didn't want to use Perl? Not all of CPAN is important, and how hard would it be to fix these edge case syntax items?

attributes

prototypes (but improve signatures!)

all sub calls need parens (no perl poetry mode or different arities) (how does this affect $_ defaults.

defaults. single expression forms of map and grep

move some platform specific keywords to modules ( kill was the focus of that part)

was the focus of that part) indirect object notation

require m on // for a match operator

I'm not quite at the point of seriously suggesting this as a project, but I think it's an interesting experiment to think about. What else could be remove to make parsing easy?

Some interesting reading: