Perl is certainly not the most perfect combination if interpreter and compiler. It's arguable whether there is one, but if there is then what we have now isn't it.
While, strictly speaking, perl does have a compilation phase, transforming your source into an intermediate internal representation, it doesn't produce natively executable code. Producing that native code is what's generally associated with compilation. Instead it produces the intermediate code and walks through it, interpreting it.
Given the current state of the art (at this point only a few shells are truly interpretive, not turning their code into some intermediate form) perl comfortably fits the definition of "interpreter"
(Also, perl doesn't produce and interpret bytecode. It produces and walks an optree, which is a different structure altogether)