Chapter 20. Advanced Topics

In such a short book I don’t have enough pages to show you everything that you can do. This chapter is a brief survey of some of the features I would have liked to explain in more detail. You now know these exist and you can investigate them further on your own.

One-Liners

You can run perl6 one-liners. These are programs that you compose completely on the command line. The -e switch takes an argument that is the program:

% perl6 -e 'put "Hello Perl 6"'
Hello Perl 6

The -n switch runs the program once for each line of input. The current line is in $_. This one uppercases and outputs the line:

% perl6 -n -e '.uc.put' *.pod

You can load a module with -M:

% perl6 -MMath::Constants -e 'put α'
0.0072973525664

Declarator Block Comments

The parser doesn’t discard all comments. It remembers special comments and attaches them to the subroutine. #| comments attach themselves to the subroutine after them and #= comments attach themselves to the subroutine before them. These comments are available through the .WHY meta-method:

#| Hamadryas is a sort of butterfly
class Hamadryas {

    #| Flap makes the butterfly go
    method flap () {

        }
    }

Hamadryas.WHY.put;
Hamadryas.^find_method('flap').WHY.put;

The output is the combination of all the comments attached to that subroutine:

Hamadryas is a sort of butterfly
Flap makes the butterfly go

This is the sort of thing that’s handy in an integrated development environment to grab a description of the thing you are trying to use. It’s also useful ...

Get Learning Perl 6 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.