diff options
-rw-r--r-- | perl6.html.markdown | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/perl6.html.markdown b/perl6.html.markdown index defd1315..e813978a 100644 --- a/perl6.html.markdown +++ b/perl6.html.markdown @@ -86,10 +86,10 @@ my %hash = key1 => 'value1', key2 => 'value2'; # same result as above # You can also use the "colon pair" syntax: # (especially handy for named parameters that you'll see later) -my %hash = :w(1), # equivalent to `w => 1` - # this is useful for the `True` shortcut: - :truey, # equivalent to `:truey(True)`, or `truey => True` - # and for the `False` one: +my %hash = :w(1), # equivalent to `w => 1` + # this is useful for the `True` shortcut: + :truey, # equivalent to `:truey(True)`, or `truey => True` + # and for the `False` one: :!falsey, # equivalent to `:falsey(False)`, or `falsey => False` ; @@ -125,8 +125,8 @@ hello-to; #=> Hello, World ! hello-to(); #=> Hello, World ! hello-to('You'); #=> Hello, You ! -## You can also, by using a syntax akin to the one of hashes (yay unified syntax !), -## pass *named* arguments to a `sub`. +## You can also, by using a syntax akin to the one of hashes +## (yay unified syntax !), pass *named* arguments to a `sub`. # They're optional, and will default to "Any". sub with-named($normal-arg, :$named) { say $normal-arg + $named; @@ -145,8 +145,8 @@ sub with-mandatory-named(:$str!) { say "$str !"; } with-mandatory-named(str => "My String"); #=> My String ! -with-mandatory-named; # run time error: "Required named parameter not passed" -with-mandatory-named(3); # run time error: "Too many positional parameters passed" +with-mandatory-named; # run time error: "Required named parameter not passed" +with-mandatory-named(3);# run time error:"Too many positional parameters passed" ## If a sub takes a named boolean argument ... sub takes-a-bool($name, :$bool) { @@ -169,9 +169,9 @@ my &s = &say-hello; my &other-s = sub { say "Anonymous function !" } # A sub can have a "slurpy" parameter, or "doesn't-matter-how-many" -sub as-many($head, *@rest) { # `*@` (slurpy) will basically "take everything else". - # Note: you can have parameters *before* (like here) - # a slurpy one, but not *after*. +sub as-many($head, *@rest) { #`*@` (slurpy) will "take everything else" +# Note: you can have parameters *before* a slurpy one (like here), +# but not *after*. say @rest.join(' / ') ~ " !"; } say as-many('Happy', 'Happy', 'Birthday'); #=> Happy / Birthday ! @@ -223,9 +223,9 @@ say $x; #=> 52 # - `if` # Before talking about `if`, we need to know which values are "Truthy" -# (represent True), and which are "Falsey" (or "Falsy") -- represent False. -# Only these values are Falsey: 0, (), {}, "", Nil, A type (like `Str` or `Int`), -# and of course False itself. +# (represent True), and which are "Falsey" (or "Falsy") -- represent False. +# Only these values are Falsey: 0, (), {}, "", Nil, A type (like `Str` or `Int`) +# and of course False itself. # Every other value is Truthy. if True { say "It's true !"; @@ -265,13 +265,14 @@ say $age > 18 ?? "You are an adult" !! "You are under 18"; given "foo bar" { say $_; #=> foo bar - when /foo/ { # Don't worry about smart matching yet – just know `when` uses it. + when /foo/ { # Don't worry about smart matching yet – just know `when` uses it # This is equivalent to `if $_ ~~ /foo/`. say "Yay !"; } - when $_.chars > 50 { # smart matching anything with True (`$a ~~ True`) is True, + when $_.chars > 50 { # smart matching anything with True is True, + # i.e. (`$a ~~ True`) # so you can also put "normal" conditionals. - # This when is equivalent to this `if`: + # This `when` is equivalent to this `if`: # if $_ ~~ ($_.chars > 50) {...} # Which means: # if $_.chars > 50 {...} @@ -288,7 +289,8 @@ given "foo bar" { # but can also be a C-style `for` loop: loop { say "This is an infinite loop !"; - last; # last breaks out of the loop, like the `break` keyword in other languages + last; # last breaks out of the loop, like the `break` keyword in other + # languages } loop (my $i = 0; $i < 5; $i++) { |