Some of perl's features use syntax which is either very concise or uses implied operations or operands. Things like regexes, sorting, subroutine arguments, special variables can all be used in a manner which makes things more cryptic. In many instances you can be explicit (for instance with arguments):
my ($filename, $data_ref) = @_;
Rather than , randomly in code somewhere:
my $filename = shift;
If you cannot express something more explicitly in syntax to be clear you really should be using comments to elaborate.
Arguably this problem is the same across all languages. The issue with perl is that the brevity and flexibility of the language can exacerbate the grief one experiences when working with unfamiliar code.
If someone can't write readable, maintainable, understandable code unless the language has certain guard rails in place, then they aren't doing the above things and I would consider them a toxic team mate, no matter how much of a rock star programmer they are.
If someone can't write readable, maintainable, understandable code
I never claimed that it's impossible to write legible code in Perl. Perhaps work on your reading comprehension before doing all your chest thumping? it's about reading some books on clean code
It's about choosing the right tool for the job. Perl offers a number of enticements to write illegible code that other languages do not.