Camelia, the Perl 6 bug

STD and viv

Perl 6 has a grammar that can be tweaked by the user. Hence the structure of the grammar must be the same in all Perl 6 compilers. This structure is given STD.pm6, the standard grammar. It is both specification and runnable code.

Note: STD and viv aren't actively developed any more


The Perl 6 standard grammar is written in Perl 6, and specifies how a Perl 6 program is parsed.

The source code can be found on github in the perl6/std project in the file STD.pm6.

Both and viv are included in the STD package on CPAN.


viv should be read as VI ➔ V, where V and I are Roman numerals. So it's a translator from Perl 6 to Perl 5, expressly designed to run STD.pm6 - it compiles to Perl 5 code only features that are needed to run STD.pm6. However it can be used by other compilers as a base to produce code for other backends.