Perl 6 Deep Dive.
Learn Perl 6 effortlessly to solve everyday problems About This Book Filled with practical examples, this comprehensive guide explores all aspects of Perl 6. Leverage the power of Perl 6 concurrency to develop responsive and high-performant software. Delves into various programming paradigms (such a...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Packt Publishing,
2017.
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- Cover
- Copyright
- Credits
- About the Author
- Acknowledgements
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: What is Perl 6?
- Origins of Perl 6
- Differences from Perl 5
- Sigils
- Signatures
- Classes
- Compatibility with Perl 5
- Perl 6 resources
- Documentation
- Test Suite
- STD.pm
- Community
- Compilers
- Parrot
- Pugs
- Perlito
- Rakudo
- Working with Rakudo Star
- Downloading and installing Rakudo Star
- Command-line options
- The -c command
- The
- doc command
- The -e command
- The -h and
- help commands
- The -n command
- The -p command
- The -I and -M commands
- The -v and
- version command
- The
- stagestats command
- Writing our Hello World program
- Summary
- Chapter 2: Writing Code
- Using Unicode
- Whitespaces and unspaces
- Comments
- One-line comments
- Multiline comments
- Embedded comments
- Creating Pod documentation
- The =begin / =end Pod block
- Phasers
- Simple input and output
- Summary
- Chapter 3: Working with Variables and Built-in Data Types
- Using variables
- Declaring variables
- Variable containers in Perl 6
- Scalars
- Arrays
- Methods of the Array type
- Hashes
- Methods of the Hash class
- Naming conventions
- Typed variables
- Using simple built-in data types
- Integer data type
- Methods of the Int type
- Converting to a character using the chr method
- Checking whether the number is prime
- Generating a random number
- Getting the sign of the value
- Calculating the square root of the value
- Getting the next and previous values
- Getting the absolute value
- Rational data type
- Methods of the Rat type
- Getting the Perl representation of the value
- Converting to an Int value
- Getting the numerator and denominator
- Methods for rounding the value.
- Methods pred and succ
- Numeric data type
- Num versus Numeric versus Real
- Enumerations
- Boolean data type
- Methods of the Bool type
- Using pred and succ
- Methods to generate random Boolean values
- String data type
- Methods of the Str class
- Converting register
- Methods to cut strings
- Methods to check the content of a string
- Length of the string
- Reversing a string
- Complex numbers
- Methods of the Complex data type
- Getting real and imaginary parts
- Data types to manipulate date and time
- Using the Date class
- Using the DateTime data type
- Summary
- Chapter 4: Working with Operators
- Operator classification
- Categories of operators
- Operators as functions
- Operators in Perl 6
- Infix operators
- Assignment operators
- Operators for multiplication and division
- Operators for addition and subtraction
- Modulo operator
- Divisibility operator
- Integer division and modulo operators
- Bitwise operators
- Integer shift operators
- String logical operators
- Boolean logical operators
- Great common divisor and least common multiple operators
- String repetition operator
- List repetition operator
- String concatenation operator
- Junction operators
- The does operator
- The but operator
- Universal comparison operator
- String comparison operator leg
- Comparison operator for Real numbers
- Range creating operator
- Equality and non-equality operators
- Numerical comparison operators
- String comparison operators eq and ne
- Other string comparison operators
- The before and after operators
- Equivalency test operator
- Value identity operator
- Bound check operator
- Smartmatch operator
- Approximate-equality operator
- Boolean logical operators
- Defined-or operator
- Operators for minimum and maximum
- Pair creation operator
- Comma operator
- Invocant separator.
- Zip operator
- Cross operator
- Sequence operator
- Binding operators
- Logical operator with lower precedence
- Data pipe operators
- Ternary operator??!!
- Prefix operators
- Increment and decrement operators ++ and
- Boolean coercion operator
- Boolean negation operator
- Numeric coercion operator
- Numeric negation operator
- String coercion operator
- Two-complement binary negation operator
- Boolean coercion and negation operator
- The upto operator
- The temp operator
- The let operator
- The not operator
- The so operator
- Postfix operators
- Object-oriented postfix operators
- Increment and decrement operators
- Circumfix operators
- Quote-word operator
- Group operator
- Hash or block creation operator
- Postcircumfix operators
- Positional access operator
- Element access operators
- Invoke operator
- Meta-operators in Perl 6
- Assignment meta-operator
- Negation meta-operator
- Reverse meta-operator
- Reduction meta-operator
- Cross meta-operator
- Zip meta-operator
- Hyper-operators
- User-defined operators
- Summary
- Chapter 5: Control Flow
- Understanding code blocks and variable scoping
- The do keyword
- Conditional checks
- Using loops
- The loop cycle
- The for loop
- Using while, until, and repeat
- Breaking the loop
- Using labels
- Executing code once
- Collecting data with gather and take
- Setting the topic with given
- Summary
- Chapter 6: Subroutines
- Creating and calling subroutines
- Default values
- Optional parameters
- Named parameters
- Parameter traits
- Slurpy parameters
- Parameter placeholders
- Type constraints
- Typed parameters
- Return type
- Multi subs
- An example
- Nested subroutines
- Creating operators
- Passing functions as arguments
- Anonymous subs
- Summary
- Chapter 7: Modules
- Creating a module
- Using modules.
- The need keyword
- The import keyword
- The use keyword
- The require keyword
- Scoping
- More on is export
- Exporting variables
- Selective import
- Introspection
- Using zef
- Installing a module
- Searching for a module
- Uninstalling modules
- zef command summary
- How Rakudo stores modules
- Summary
- Chapter 8: Object-Oriented Programming
- Creating a class
- Working with attributes
- Read-and-write attributes
- Typed attributes
- Using other classes as data types
- Working with methods
- Private methods
- More about attributes
- Public and private attributes
- Automatic getters and setters
- Class attributes
- Class methods
- Inheritance
- Inheriting from a class
- Using child class instances as objects of a base class
- Overriding methods
- Submethods
- Multiple inheritance
- Appending objects and classes using roles
- Using introspection to learn more
- Method postfix operators
- Summary
- Chapter 9: Input and Output
- Standard input and output
- Working with files and directories
- Opening a file
- Closing a file
- Testing file and directory properties
- Manipulating files
- Working with directories
- Reading from a stream
- Reading a single line
- Reading characters
- Lazy readers
- The eof method
- Writing to a stream
- The print function
- The say method
- Example of using the gist method
- The printf method
- Characters and strings
- Integers
- Floating-point numbers
- Summary
- Chapter 10: Working with Exceptions
- The try block
- The! variable
- Soft failures
- The CATCH phaser
- The Exception object
- Throwing exceptions
- Resuming from exceptions
- Typed exceptions
- Rethrowing exceptions
- The Failure object
- Creating custom exceptions
- Summary
- Chapter 11: Regexes
- Matching against regexes
- Literals
- Character classes
- The . (dot) character.
- Backslashed character classes
- \s and \S characters
- \t and \T characters
- \h and \H characters
- \v and \V characters
- \n and \N characters
- \d and \D characters
- \w and \W characters
- Character classes
- Predefined subrules
- Using Unicode properties
- Character class arithmetics
- Creating repeated patterns with quantifiers
- Greediness
- Extracting substrings with capturing
- Capturing groups
- The Match object
- Named captures
- Using alternations in regexes
- Positioning regexes with anchors
- Matching at the start and at the end of lines or strings
- Matching word boundaries
- Looking forward and backward with assertions
- Modifying regexes with adverbs
- :i (:ignorecase)
- :s (:sigspace)
- :p (:pos)
- :g (:global)
- :c (:continue)
- :r (:ratchet)
- :ov (:overlap)
- :ex (:exhaustive)
- Substitution and altering strings with regexes
- Summary
- Chapter 12: Grammars
- Creating a grammar
- Matching a grammar
- Using rules and tokens
- Using actions
- Using abstract syntax tree attributes
- Handling expressions
- Using the actions class
- The whole program
- Summary
- Chapter 13: Concurrent Programming
- Junctions
- Autothreading
- Threads
- Starting a thread
- Creating and running a new thread
- The id and name methods
- Printing thread objects as a string
- Lifetime threads
- Using locks in Perl 6
- Promises
- Creating a promise
- Statuses of a promise
- Factory methods
- The result of a promise
- Combining promises
- Executing code after the promise is kept or broken
- The anyof and allof methods
- Channels
- Basic use cases
- To wait or not to wait?
- Closing channels
- Channels as queues
- Summary
- Chapter 14: Functional Programming
- What is functional programming?
- Using recursion
- Using reduction
- Higher-order functions and lambdas
- The WhateverCode blocks.