Perl is an interpreted language, which means that your code can be run as-is, without a compilation stage that creates a non-portable executable program.
Traditional compilers convert programs into machine language. When you run a Perl program, it's first compiled into a byte code, which is then converted ( as the program runs) into machine instructions. So it is not quite the same as shells, or Tcl, which are strictly interpreted without an intermediate representation.
It is also not like most versions of C or C++, which are compiled directly into a machine-dependent format. It is somewhere in between, along with Python and awk and Emacs .elc files.