Being in-process certainly sped things up. And it was easier to understand than the shell based solution.
But it would have been easier to write and read in just about any other language.
Perl 4 at the time only had very primitive data structures. Most of the time you were concatenating and splitting strings together to mimic real data types. The baroque way file handles were a first class data structure made abstracting over them painful and hacky.
That $foo and @foo and %foo were different variables caused innumerable bugs.
The exposure of function arguments as a stack directly in the language made for weirdness all its own.
The mimicry of shell expressions brought its own pain.
And finally, Perl’s greatest strength and horrific weakness: the regular expressions. One liners that would bring tears to your eyes the next time you had to debug it.
I get where Wall was going with Perl, but the emphasis on beautiful natural language for various idioms really crippled the language horrifically from the start. Going into Perl was forgetting nearly everything you knew from other languages and entering this unreal fantasy forest of code, with monsters lurking behind every rock and twist in the road.