Cargando…

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...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Shitov, Andrew
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.