---
name: "perl6-p"
section: "1"
platform: "linux"
package: "rakudo"
version: "2014.07-4"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/perl6"
---

# perl6-p(1)

Rakudo Perl 6 Compiler

Part of [perl6(1)](/perl6/1.md).

## NAME

perl6 - Rakudo Perl 6 Compiler

## SYNOPSIS

```
 perl6 [switches] [--] [programfile] [arguments]
```

## DESCRIPTION

With no arguments, enters a REPL. With a `"[programfile]"` or the `"-e"` option, compiles the given program and by default also executes the compiled code.

```
  -c                   check syntax only (runs BEGIN and CHECK blocks)
  --doc                extract documentation and print it as text
  -e program           one line of program
  -h, --help           display this help text
  -n                   run program once for each line of input
  -p                   same as -n, but also print $_ at the end of lines
  --target=[stage]     specify compilation stage to emit
  -t, --trace=[flags]  enable trace flags, see 'parrot --help-debug'
  --encoding=[mode]    specify string encoding mode
  -o, --output=[name]  specify name of output file
  -v, --version        display version information
  --stagestats         display time spent in the compilation stages
  --ll-exception       display a low level backtrace on errors
  --profile            print profile information to standard error
```

Note that only boolean single-letter options may be bundled

Output from `"--profile"` can be visualized by `"kcachegrind"`.

Supported stages for --target are:

```
 parse past post pir evalpmc
```

where

```
 parse = a representation of the parse tree
 past  = an intermediate format representing the parrot abstract syntax tree
 post  = an intermediate format representing the parrot opcode syntax tree
 pir   = the parrot intermediate representation
```

## List of env vars used in Rakudo

- "RAKUDOLIB", "PERL6LIB" (src/core/terms.pm)

  Appends a delimited list of paths to `@INC`. `"RAKUDOLIB"` is evaluated first.

- "RAKUDO\_MODULE\_DEBUG" (src/Perl6/ModuleLoader.pm)

  If set to a non-false value, causes the module loader to print debugging information to standard error.

- "RAKUDO\_ERROR\_COLOR" (src/core/Exception.pm)

  Controls whether to emit ANSI codes for error highlighting. Defaults to true if unset, except on Win32.

## PARROT OPTIONS

To specify options to the underlying parrot VM, you must explicitly run parrot; you cannot specify these options by using the `"perl6"` executable.

```
 parrot [parrot switches] perl6.pbc [switches] [--] [programfile] [arguments]
```

See `"parrot --help"` for a list of valid parrot options.

## AUTHORS

Written by the Rakudo contributors, see the CREDITS file.

This manual page was written by Reini Urban, Moritz Lenz and the Rakudo contributors.
