售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Title Page
Copyright
Perl 6 Deep Dive
Credits
About the Author
Acknowledgements
About the Reviewer
www.PacktPub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
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
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
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
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
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
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
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
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
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
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
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
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
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
Functional Programming
What is functional programming?
Using recursion
Using reduction
Higher-order functions and lambdas
The WhateverCode blocks
Piping data and feed operators
Manipulating the scope
Closures
Currying
Dynamic scope
Creating and using iterators
Lazy and infinite lists
Summary
Reactive Programming
What is reactive programming?
On-demand supplies
Generating data with supplies
The react and whenever keywords
Using lists as the source of the supply data
Live supplies
Filtering and transforming data streams
Summary
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜