|
Perl 6
Perl 6 Basics Tablet: Revision 10
Overview - Chapter: 0:History, 1:Design, 2:Basics, 3:Var, 4:Op, 5:IO, 6:{}, 7:Sub, 8:OOP, 9:Rx, 10:Meta
1st law of language redesign: Everyone wants the colon for their particular syntax. Basics doesn't mean here easy but fundamental. Which mostly translates to how to format and reformat data (numbers, strings and more). DefaultsPlease note that any Perl 6 source code is treated as unicode by default. Also use strict; and use warnings; are enabled implicitly. StatementsUnless you use blocks, a Perl program executes one statement after another in linear progression. They have to be separated by a semicolon (;), except before and after a closing curly brace, where it is optional. Spaces and IndentationPerl doesn't care about indentation. And spaces are still in many places without meaning. However these have become fewer. CommentsSingle LineLike in Perl 5 and many other languages of its league a "#" tells the compiler to ignore the rest of the line. Multi Line#`( ) =begin comment PODNumber LiteralsKonverting into numerical context means still: take from left to right all digits and other characters, up to the first char that clearly don't belong to a number definition and stop there. A single underscore is allowed only between any two digits in a literal number, like: $people = 3_456_789; # same as 3456789 Radix Prefixes0b binary - base 2, digits 0..1 General Radix Form:10<42> # same as 0d42 or 42 Scientific Notation$float = 60.2e23 # becomes automatically 6.02e24 Rational NumberTo distinguish them from a division operation, you have to groupe them with braces. (3/7) As always, .perl gives you an almost source like code formatting which results here in 3/7". Adding *.nude* you get "(3/7)", the nude source code. There are 2 different "value types representing both rational number. FatRat has unlimited precision and Rat has just enough to be evaled into a Real type. When you explicitly type a variable to one o them, the braces become optional. my Rat $other_pi = 22/7; Complex Number-3-6.02E-23i Version NumberQuotingQ /.../; Quote Wordsqw/.../ <<>> Single Quotes'' Double Quotes"" HeredocsAre now normal quoted strings, only with a special delimiter. Q :to 'EOT'; To make templates in which variables and closures are evaluated, take the normal double quote and just add the adverb for the heredoc delimiter or define with other adverbs what exactly you want to have evaluated. pp:to 'EOT'; PathsCodeRegexFormatingperlThe .perl method is a built in Data::Dumper (pretty printer) which gives you structured data the way you write it in perl source code. fmtsprintfpackFormats
Overview - Chapter: 0:History, 1:Design, 2:Basics, 3:Var, 4:Op, 5:IO, 6:{}, 7:Sub, 8:OOP, 9:Rx, 10:Meta |