Named arguments, default values, parameter checking are all syntactic sugar, which sure, is somewhat nice to have, but is no possible way essential. Every time you go "I can do this using this little longer syntax" - you already disqualified it as a "long overdue must have feature".
Really, anything beyond binary can be considered syntactic sugar. It's up to you to decide how much you want, but I don't believe refusing a feature because it is "syntactic sugar" is reasonable; there are other, better criteria for this.
This is something I had to write 2 months ago. I can not write this in perl, and am not likely to ever be able to.
Ah, but this doesn't necessarily mean it can't be written in perl. You might just need to use a little longer syntax. ;)