I think it's largely the fault of Perl itself. If programmer team A takes six months to write something in C/C++, and programmer team B takes a week to write the same something in Perl, which team is employed for six months? Which team puts out more lines of code? I said it before and was scoffed at, but there just aren't good jobs available for programmers who only know Perl. You always have to know at least one other programming language, usually two or three, and have a degree and 3+ years of programming experience.
Bottom line though, supply and demand determine salary. If salaries are too low, then the number of applicants will drop below the number of jobs, and salaries will have to rise in order to fill job slots. Low salaries for Perl programmers can't all be blamed on faulty perceptions - you have to take into account the people accepting jobs at those prices.