Camelia
Prev: Control Structures

Functions

Note! This site is about Perl 6.
If you are looking for a solution for the current production version of Perl 5, please check out the Perl 5 tutorial.

tutorial/p526/functions.p6

#!/usr/bin/env perl6
use v6;

my $lang = "Perl";

creator("Larry", $lang);
sub creator {                               # still works as in Perl5 and you get the values in @_
    my ($person, $language) = @_;           # you can copy them
    say "the creator of $language is $person";
}

creator_2("Larry", $lang);
sub creator_2 ($person, $language) {            # you can also defined the expected parameters
    #$language ~= 6;                            # but in this case you cannot change the variables
    say "the creator of $language is $person";  
}

creator_3("Larry", $lang);
sub creator_3 ($person, $language is rw) {            # you can also defined the expected parameters
    $language ~= 6;                                   # now you can change the $language variable but
    say "the creator of $language is $person";  
}
say "What ? $lang";                                   # and it also changes the parameter itself.


creator_4("Larry", $lang);
sub creator_4 ($person is copy, $language is rw) {
    $person ~= " Wall";
    say "the creator of $language is $person";  
}



The Perl 6 Tricks and Treats newsletter has been around for a while. If you are interested to get special notification when there is new content on this site, it is the best way to keep track:
Email:
Full name:
This is a newsletter temporarily running on my personal site (szabgab.com) using Mailman, till I implement an alternative system in Perl 6.
Gabor Szabo
Written by Gabor Szabo

Published on 2012-01-01


Prev: Control Structures

Comments

In the comments, please wrap your code snippets within <pre> </pre> tags and use spaces for indentation.
comments powered by Disqus
Suggest a change
Elapsed time: 2.59996118

Perl 6 Tricks and Treats newsletter

Register to the free newsletter now, and get updates and news.
Email:
Name: