The clear distinction is obvious when you ask/answer the question "who executes the code?" In the end it is always the processor, but the question is: is that code run by the processor directly or is it handled by a virtual machine (see Java). While the Perl Virtual Machine is not a coined term, the Perl code is read an interpreted by a similar virtual machine. C code is compiled directly in binary read, understood, and executed by the processor directly. The Perl code does not reach such a stage of refinement. A compiled code only needs a processor to run, interpreted code needs this run-time environment to execute (Perl interpreter, JVM, etc.)