The main difference for Perl6 is that the VM is an explicitly separate entity with a published bytecode, rather than the result of the compilation merely being interesting data structures within the compiler, as it is in Perl5 and earlier. There were some experiments in the Perl5 world to be able to translate these structures into a “bytecode” so that it could be separately saved and loaded, but those have been effectively decommissioned as of late.

But yes, you could call the current Perl a “just in time” parser in that sense. Perl6 has a more traditional model… you can still compile-load-go in “scripting” mode, but you’ll also be able to completely separate the compilation phase from the execution phase readily.