SlideShare une entreprise Scribd logo
1  sur  89
Télécharger pour lire hors ligne
Regexes
and Grammars
   in Perl 6
Preface
Synopsis 5
Synopsis 5
Regexes and Rules
S05
Damian Conway
Allison Randal
Patrick Michaud
Larry Wall
Moritz Lenz
Created: 24 Jun 2002
Last Modified: 30 Aug 2010
Version: 132
54 pages
Part I
Regexes
Random facts
and terminology
Regular expressions
in Perl 5 were not regular
Regular expressions
in Perl 5 were not regular

Regular expressions
in Perl 6 are called regexes
Regular expressions
in Perl 5 were not regular

Regular expressions
in Perl 6 are called regexes

Which means “kinda like
a regular expression”
Match object
contains result of matching




          $/
Capture variable indexes
start with 0




          $0
$0, $1, etc.
are part of $/
my $q = "Hotels in Berlin";
$q ~~ /ins(.*)/;


say $0;    # Berlin
say $/[0]; # Berlin
Metacharacters
are everything except
Unicode letters
or numbers
or underscore
Quotes
may be used for creating
atoms


'I will never use PHP again. '*
Repetition


(d+ s?) ** 3

(d+ s?) ** 5..10

d+ ** ','
/x modifier gone


"ab" ~~ / a    b /;
say $/;   # ab
/s, /m modifiers gone


"a1nb2nc3" ~~ /N+/;

"a1nb2nc3" ~~ /^^ .2 $$/;
/e modifier gone


$str =~ s/pattern/{action()}/;
Modifier syntax


@names =
 $str =~ m:i/MiSteR s (w+)/;
Brackets
Capturing group


       (...)
Non-capturing group


       [...]
Character class


      <[ . . . ]>
Embedded closure


      {...}
Embedded closure


              {...}

> "500" ~~ /(d+) {$0 < 200 or fail}/
===SORRY!===
Named rule or token


       <. . .>
Part II
Grammars
Keywords
grammar
rule
token
proto
TOP
grammar Grammar {
    rule TOP {...}
    rule some_rule {...}
    token some_token {...}
}
grammar Grammar {
  rule TOP {...}
  rule some_rule {...}
  token some_token {...}
}
Syntax is similar
to class definition
grammar Grammar {
    rule TOP {...}
    rule some_rule {...}
    token some_token {...}
}
Grammar.parse($string);
Example.
Step by step
Executed by Rakudo


    rakudo.org
Executed by Rakudo


    rakudo.org


Sometimes it fails
City
grammar SearchQuery {

}
grammar SearchQuery {
  rule TOP {

    }
}
grammar SearchQuery {
  rule TOP {
     ^
     $
  }
}
grammar SearchQuery {
  rule TOP {
     ^
        <query>
     $
  }
}
grammar SearchQuery {
  rule TOP {
     ^
        <query>
     $
  }
}


     Easy, isn't it?
Grammars are part
 of the language
grammar SearchQuery {
  rule TOP {
     ^
        <query>
     $
  }
  rule query {
  }
}
grammar SearchQuery {
  rule TOP {
     ^
        <query>
     $
  }
  rule query {
     <city>
  }
}
grammar SearchQuery {
  rule TOP {
     ^
        <query>
     $
  }
  rule query {
     <city>
  }
  token city {
  }
}
grammar SearchQuery {   N. B.
  rule TOP {
     ^
        <query>
     $                  rules
  }
  rule query {
     <city>
  }                     token
  token city {
  }
}
token
is a "word"
rule
is a "phrase"
grammar SearchQuery {
  rule TOP {
     ^
        <query>
     $
  }
  rule query {
     <city>
  }
  token city {
  }
}
grammar SearchQuery {
  rule TOP {
     ^
        <query>
     $
  }
  rule query {
     <city>
  }
  token city {
     <capital>
  }
}
^
          <query>
      $
    }
    rule query {
       <city>
    }
    token city {
       <capital>
    }
    token capital {
    }
}
my $result = SearchQuery.parse("Amsterdam");
say $result.perl;
Match.new(
from => 0,
orig => "Amsterdam",
to => 9,
named => {
 query => Match.new(
  from => 0,
  orig => "Amsterdam",
  to => 9,
  named => {
   city =>    Match.new(
    from => 0,
    orig => "Amsterdam",
    to => 9,
    named => {
     capital =>    Match.new(
      from => 0,
      orig => "Amsterdam",
Match.new(
from => 0,                 Matched text
orig => "Amsterdam",
to => 9,
named => {
 query => Match.new(
  from => 0,
  orig => "Amsterdam",
  to => 9,
  named => {
   city =>    Match.new(
    from => 0,
    orig => "Amsterdam",
    to => 9,
    named => {
     capital =>    Match.new(
      from => 0,
      orig => "Amsterdam",
Match.new(
from => 0,
orig => "Amsterdam",
to => 9,
named => {
 query => Match.new(          rule query {
  from => 0,                  }
  orig => "Amsterdam",
  to => 9,
  named => {
   city =>    Match.new(
    from => 0,
    orig => "Amsterdam",
    to => 9,
    named => {
     capital =>    Match.new(
      from => 0,
      orig => "Amsterdam",
Match.new(
from => 0,
orig => "Amsterdam",
to => 9,
named => {
 query => Match.new(
  from => 0,
  orig => "Amsterdam",
  to => 9,
  named => {
   city =>    Match.new(        token city {
    from => 0,                  }
    orig => "Amsterdam",
    to => 9,
    named => {
     capital =>    Match.new(
      from => 0,
      orig => "Amsterdam",
Match.new(
from => 0,
orig => "Amsterdam",
to => 9,
named => {
 query => Match.new(
  from => 0,
  orig => "Amsterdam",
  to => 9,
  named => {
   city =>    Match.new(
    from => 0,
    orig => "Amsterdam",
    to => 9,
    named => {
     capital =>    Match.new( token capital {
      from => 0,              }
      orig => "Amsterdam",
Country
rule query {
     <city>
   | <country>
}
rule query {
     <city>
   | <country>
}
rule country {
       'Afghanistan'
     | 'Akrotiri'
     | 'Albania'
     | 'Algeria'
     | 'American Samoa'
     | 'Andorra' . . .
}
my $result = SearchQuery.parse("Amsterdam");
say $result.perl;

$result = SearchQuery.parse("China");
say $result.perl;
rule query {
     <city> ',' <ws>? <country>
   | <city>
   | <country>
}
rule query {
     <city> ',' <ws>? <country>
   | <city>
   | <country>
}



SearchQuery.parse("Tirana, Albania");
rule query {
     <city> ',' <ws>? <country>
   | <city>
   | <country>
}



SearchQuery.parse("Tirana, Albania");
Capturing
and accessing
Everything goes
to Match object

    $/
SearchQuery.parse("Tirana, Albania");
say $<query><city>;
say $<query><country>;
SearchQuery.parse("Tirana, Albania");
say $<query><city>;
say $<query><country>;


Tirana
Albania
SearchQuery.parse("Tirana, Albania");
say $<query><city>;            Shortcut
say $<query><country>;


say $/<query><city>;           Full syntax
say $/<query><country>;
rule query {
   'Hotels in'?
   [
       <city> ',' <ws>? <country>
     | <city>
     | <country>
   ]
}
SearchQuery.parse("Tirana, Albania");
say $<query><city>;
say $<query><country>;


SearchQuery.parse
  ("Hotels in Tirana, Albania");
say $<query><city>;
say $<query><country>;
rule date {
   <day>
   <month>
}
token day {
   d+
   ['st' | 'nd' | 'th']?
}
token month {
     'January'
   | 'February'
   | 'March'
   | 'April' . . .
SearchQuery.parse("Hotels in Tirana,
Albania from 25th December");


SearchQuery.parse("Hotels in Tirana,
Albania from 25 December");
What will
$<query><date>
    print?
What will
$<query><date>
    print?

 25th December
       or
  25 December
How to check days



token day {
  (d+) {$0 <= 31 or fail}
}
[
          <city> ',' <ws>? <country>
        | <city>
        | <country>
    ]
    [
         'from' <date>
         'to' <date>
    ]?
    [
         'for' <guest_number>
    ]?
}
token guest_number {
    d
  | 'one'
  | 'two'
  | 'three'
  | 'four'
  | 'five'
}
"Hotels in Tirana, Albania from
25 December to 7 January for two"
rule date {
     'today'
   | 'tomorrow'
   |[
       <day>
       <month>
     ]
}
$ perl6 10-all.pl
Hotels in Amsterdam, Netherlands from 1 January to 5
February for three
   City:    Amsterdam
   Country: Netherlands
   From:    1 January
  To:      5 February
   Guests: three
__END__

           Andrew Shitov
talks.shitov.ru | andy@shitov.ru

Contenu connexe

Tendances

Learning Perl 6 (NPW 2007)
Learning Perl 6 (NPW 2007)Learning Perl 6 (NPW 2007)
Learning Perl 6 (NPW 2007)brian d foy
 
Creating a compiler in Perl 6
Creating a compiler in Perl 6Creating a compiler in Perl 6
Creating a compiler in Perl 6Andrew Shitov
 
Perl.Hacks.On.Vim
Perl.Hacks.On.VimPerl.Hacks.On.Vim
Perl.Hacks.On.VimLin Yo-An
 
Electrify your code with PHP Generators
Electrify your code with PHP GeneratorsElectrify your code with PHP Generators
Electrify your code with PHP GeneratorsMark Baker
 
Introdução ao Perl 6
Introdução ao Perl 6Introdução ao Perl 6
Introdução ao Perl 6garux
 
Good Evils In Perl
Good Evils In PerlGood Evils In Perl
Good Evils In PerlKang-min Liu
 
Looping the Loop with SPL Iterators
Looping the Loop with SPL IteratorsLooping the Loop with SPL Iterators
Looping the Loop with SPL IteratorsMark Baker
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Kang-min Liu
 
Wx::Perl::Smart
Wx::Perl::SmartWx::Perl::Smart
Wx::Perl::Smartlichtkind
 
Perl6 Regexen: Reduce the line noise in your code.
Perl6 Regexen: Reduce the line noise in your code.Perl6 Regexen: Reduce the line noise in your code.
Perl6 Regexen: Reduce the line noise in your code.Workhorse Computing
 
Perl Bag of Tricks - Baltimore Perl mongers
Perl Bag of Tricks  -  Baltimore Perl mongersPerl Bag of Tricks  -  Baltimore Perl mongers
Perl Bag of Tricks - Baltimore Perl mongersbrian d foy
 
Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)Nikita Popov
 
Advanced modulinos trial
Advanced modulinos trialAdvanced modulinos trial
Advanced modulinos trialbrian d foy
 
Creating own language made easy
Creating own language made easyCreating own language made easy
Creating own language made easyIngvar Stepanyan
 
Zend Certification Preparation Tutorial
Zend Certification Preparation TutorialZend Certification Preparation Tutorial
Zend Certification Preparation TutorialLorna Mitchell
 
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8Nikita Popov
 
PHP 7 – What changed internally? (Forum PHP 2015)
PHP 7 – What changed internally? (Forum PHP 2015)PHP 7 – What changed internally? (Forum PHP 2015)
PHP 7 – What changed internally? (Forum PHP 2015)Nikita Popov
 
Melhorando sua API com DSLs
Melhorando sua API com DSLsMelhorando sua API com DSLs
Melhorando sua API com DSLsAugusto Pascutti
 
Adventures in Optimization
Adventures in OptimizationAdventures in Optimization
Adventures in OptimizationDavid Golden
 

Tendances (20)

Learning Perl 6 (NPW 2007)
Learning Perl 6 (NPW 2007)Learning Perl 6 (NPW 2007)
Learning Perl 6 (NPW 2007)
 
Creating a compiler in Perl 6
Creating a compiler in Perl 6Creating a compiler in Perl 6
Creating a compiler in Perl 6
 
Perl.Hacks.On.Vim
Perl.Hacks.On.VimPerl.Hacks.On.Vim
Perl.Hacks.On.Vim
 
Electrify your code with PHP Generators
Electrify your code with PHP GeneratorsElectrify your code with PHP Generators
Electrify your code with PHP Generators
 
Introdução ao Perl 6
Introdução ao Perl 6Introdução ao Perl 6
Introdução ao Perl 6
 
Good Evils In Perl
Good Evils In PerlGood Evils In Perl
Good Evils In Perl
 
Looping the Loop with SPL Iterators
Looping the Loop with SPL IteratorsLooping the Loop with SPL Iterators
Looping the Loop with SPL Iterators
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
 
Wx::Perl::Smart
Wx::Perl::SmartWx::Perl::Smart
Wx::Perl::Smart
 
Php functions
Php functionsPhp functions
Php functions
 
Perl6 Regexen: Reduce the line noise in your code.
Perl6 Regexen: Reduce the line noise in your code.Perl6 Regexen: Reduce the line noise in your code.
Perl6 Regexen: Reduce the line noise in your code.
 
Perl Bag of Tricks - Baltimore Perl mongers
Perl Bag of Tricks  -  Baltimore Perl mongersPerl Bag of Tricks  -  Baltimore Perl mongers
Perl Bag of Tricks - Baltimore Perl mongers
 
Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)
 
Advanced modulinos trial
Advanced modulinos trialAdvanced modulinos trial
Advanced modulinos trial
 
Creating own language made easy
Creating own language made easyCreating own language made easy
Creating own language made easy
 
Zend Certification Preparation Tutorial
Zend Certification Preparation TutorialZend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
 
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8
 
PHP 7 – What changed internally? (Forum PHP 2015)
PHP 7 – What changed internally? (Forum PHP 2015)PHP 7 – What changed internally? (Forum PHP 2015)
PHP 7 – What changed internally? (Forum PHP 2015)
 
Melhorando sua API com DSLs
Melhorando sua API com DSLsMelhorando sua API com DSLs
Melhorando sua API com DSLs
 
Adventures in Optimization
Adventures in OptimizationAdventures in Optimization
Adventures in Optimization
 

Similaire à Perl6 grammars

Cypher inside out: Como a linguagem de pesquisas em grafo do Neo4j foi constr...
Cypher inside out: Como a linguagem de pesquisas em grafo do Neo4j foi constr...Cypher inside out: Como a linguagem de pesquisas em grafo do Neo4j foi constr...
Cypher inside out: Como a linguagem de pesquisas em grafo do Neo4j foi constr...adrianoalmeida7
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tourSimon Proctor
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tourSimon Proctor
 
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기Suyeol Jeon
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to PerlSway Wang
 
Petitparser at the Deep into Smalltalk School 2011
Petitparser at the Deep into Smalltalk School 2011Petitparser at the Deep into Smalltalk School 2011
Petitparser at the Deep into Smalltalk School 2011Tudor Girba
 
Class 5 - PHP Strings
Class 5 - PHP StringsClass 5 - PHP Strings
Class 5 - PHP StringsAhmed Swilam
 
Slaying the Dragon: Implementing a Programming Language in Ruby
Slaying the Dragon: Implementing a Programming Language in RubySlaying the Dragon: Implementing a Programming Language in Ruby
Slaying the Dragon: Implementing a Programming Language in RubyJason Yeo Jie Shun
 
Climbing the Abstract Syntax Tree (CodeiD PHP Odessa 2017)
Climbing the Abstract Syntax Tree (CodeiD PHP Odessa 2017)Climbing the Abstract Syntax Tree (CodeiD PHP Odessa 2017)
Climbing the Abstract Syntax Tree (CodeiD PHP Odessa 2017)James Titcumb
 
Climbing the Abstract Syntax Tree (DPC 2017)
Climbing the Abstract Syntax Tree (DPC 2017)Climbing the Abstract Syntax Tree (DPC 2017)
Climbing the Abstract Syntax Tree (DPC 2017)James Titcumb
 
How to write code you won't hate tomorrow
How to write code you won't hate tomorrowHow to write code you won't hate tomorrow
How to write code you won't hate tomorrowPete McFarlane
 
Climbing the Abstract Syntax Tree (IPC Fall 2017)
Climbing the Abstract Syntax Tree (IPC Fall 2017)Climbing the Abstract Syntax Tree (IPC Fall 2017)
Climbing the Abstract Syntax Tree (IPC Fall 2017)James Titcumb
 
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdfphp global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdfanjalitimecenter11
 
Hidden treasures of Ruby
Hidden treasures of RubyHidden treasures of Ruby
Hidden treasures of RubyTom Crinson
 
Climbing the Abstract Syntax Tree (PHP South Africa 2017)
Climbing the Abstract Syntax Tree (PHP South Africa 2017)Climbing the Abstract Syntax Tree (PHP South Africa 2017)
Climbing the Abstract Syntax Tree (PHP South Africa 2017)James Titcumb
 
C# 6 and 7 and Futures 20180607
C# 6 and 7 and Futures 20180607C# 6 and 7 and Futures 20180607
C# 6 and 7 and Futures 20180607Kevin Hazzard
 
An Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackAn Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackVic Metcalfe
 
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)James Titcumb
 
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)James Titcumb
 

Similaire à Perl6 grammars (20)

Cypher inside out: Como a linguagem de pesquisas em grafo do Neo4j foi constr...
Cypher inside out: Como a linguagem de pesquisas em grafo do Neo4j foi constr...Cypher inside out: Como a linguagem de pesquisas em grafo do Neo4j foi constr...
Cypher inside out: Como a linguagem de pesquisas em grafo do Neo4j foi constr...
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tour
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tour
 
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
Petitparser at the Deep into Smalltalk School 2011
Petitparser at the Deep into Smalltalk School 2011Petitparser at the Deep into Smalltalk School 2011
Petitparser at the Deep into Smalltalk School 2011
 
Class 5 - PHP Strings
Class 5 - PHP StringsClass 5 - PHP Strings
Class 5 - PHP Strings
 
Slaying the Dragon: Implementing a Programming Language in Ruby
Slaying the Dragon: Implementing a Programming Language in RubySlaying the Dragon: Implementing a Programming Language in Ruby
Slaying the Dragon: Implementing a Programming Language in Ruby
 
Climbing the Abstract Syntax Tree (CodeiD PHP Odessa 2017)
Climbing the Abstract Syntax Tree (CodeiD PHP Odessa 2017)Climbing the Abstract Syntax Tree (CodeiD PHP Odessa 2017)
Climbing the Abstract Syntax Tree (CodeiD PHP Odessa 2017)
 
Climbing the Abstract Syntax Tree (DPC 2017)
Climbing the Abstract Syntax Tree (DPC 2017)Climbing the Abstract Syntax Tree (DPC 2017)
Climbing the Abstract Syntax Tree (DPC 2017)
 
How to write code you won't hate tomorrow
How to write code you won't hate tomorrowHow to write code you won't hate tomorrow
How to write code you won't hate tomorrow
 
Climbing the Abstract Syntax Tree (IPC Fall 2017)
Climbing the Abstract Syntax Tree (IPC Fall 2017)Climbing the Abstract Syntax Tree (IPC Fall 2017)
Climbing the Abstract Syntax Tree (IPC Fall 2017)
 
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdfphp global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
 
Barcelona.pm Curs1211 sess01
Barcelona.pm Curs1211 sess01Barcelona.pm Curs1211 sess01
Barcelona.pm Curs1211 sess01
 
Hidden treasures of Ruby
Hidden treasures of RubyHidden treasures of Ruby
Hidden treasures of Ruby
 
Climbing the Abstract Syntax Tree (PHP South Africa 2017)
Climbing the Abstract Syntax Tree (PHP South Africa 2017)Climbing the Abstract Syntax Tree (PHP South Africa 2017)
Climbing the Abstract Syntax Tree (PHP South Africa 2017)
 
C# 6 and 7 and Futures 20180607
C# 6 and 7 and Futures 20180607C# 6 and 7 and Futures 20180607
C# 6 and 7 and Futures 20180607
 
An Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackAn Elephant of a Different Colour: Hack
An Elephant of a Different Colour: Hack
 
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
 
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
 

Plus de Andrew Shitov

Fun with Raspberry PI (and Perl)
Fun with Raspberry PI (and Perl)Fun with Raspberry PI (and Perl)
Fun with Raspberry PI (and Perl)Andrew Shitov
 
Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Andrew Shitov
 
Perl 6 for Concurrency and Parallel Computing
Perl 6 for Concurrency and Parallel ComputingPerl 6 for Concurrency and Parallel Computing
Perl 6 for Concurrency and Parallel ComputingAndrew Shitov
 
Perl 7, the story of
Perl 7, the story ofPerl 7, the story of
Perl 7, the story ofAndrew Shitov
 
Язык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовЯзык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовAndrew Shitov
 
Как очистить массив
Как очистить массивКак очистить массив
Как очистить массивAndrew Shitov
 
What's new in Perl 5.14
What's new in Perl 5.14What's new in Perl 5.14
What's new in Perl 5.14Andrew Shitov
 
Что нового в Perl 5.14
Что нового в Perl 5.14Что нового в Perl 5.14
Что нового в Perl 5.14Andrew Shitov
 
There's more than one way to empty it
There's more than one way to empty itThere's more than one way to empty it
There's more than one way to empty itAndrew Shitov
 
How to clean an array
How to clean an arrayHow to clean an array
How to clean an arrayAndrew Shitov
 
Say Perl на весь мир
Say Perl на весь мирSay Perl на весь мир
Say Perl на весь мирAndrew Shitov
 
Personal Perl 6 compiler
Personal Perl 6 compilerPersonal Perl 6 compiler
Personal Perl 6 compilerAndrew Shitov
 
Perl 5.10 в 2010-м
Perl 5.10 в 2010-мPerl 5.10 в 2010-м
Perl 5.10 в 2010-мAndrew Shitov
 
‎Откуда узнать про Perl 6‎
‎Откуда узнать про Perl 6‎‎Откуда узнать про Perl 6‎
‎Откуда узнать про Perl 6‎Andrew Shitov
 

Plus de Andrew Shitov (20)

Perl6 one-liners
Perl6 one-linersPerl6 one-liners
Perl6 one-liners
 
Fun with Raspberry PI (and Perl)
Fun with Raspberry PI (and Perl)Fun with Raspberry PI (and Perl)
Fun with Raspberry PI (and Perl)
 
Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6
 
AllPerlBooks.com
AllPerlBooks.comAllPerlBooks.com
AllPerlBooks.com
 
Perl 6 for Concurrency and Parallel Computing
Perl 6 for Concurrency and Parallel ComputingPerl 6 for Concurrency and Parallel Computing
Perl 6 for Concurrency and Parallel Computing
 
YAPC::Europe 2013
YAPC::Europe 2013YAPC::Europe 2013
YAPC::Europe 2013
 
Perl 7, the story of
Perl 7, the story ofPerl 7, the story of
Perl 7, the story of
 
Язык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовЯзык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистов
 
Как очистить массив
Как очистить массивКак очистить массив
Как очистить массив
 
What's new in Perl 5.14
What's new in Perl 5.14What's new in Perl 5.14
What's new in Perl 5.14
 
Что нового в Perl 5.14
Что нового в Perl 5.14Что нового в Perl 5.14
Что нового в Perl 5.14
 
There's more than one way to empty it
There's more than one way to empty itThere's more than one way to empty it
There's more than one way to empty it
 
How to clean an array
How to clean an arrayHow to clean an array
How to clean an array
 
Perl 5.10 и 5.12
Perl 5.10 и 5.12Perl 5.10 и 5.12
Perl 5.10 и 5.12
 
Say Perl на весь мир
Say Perl на весь мирSay Perl на весь мир
Say Perl на весь мир
 
Personal Perl 6 compiler
Personal Perl 6 compilerPersonal Perl 6 compiler
Personal Perl 6 compiler
 
Perl 5.10 in 2010
Perl 5.10 in 2010Perl 5.10 in 2010
Perl 5.10 in 2010
 
Perl 5.10 в 2010-м
Perl 5.10 в 2010-мPerl 5.10 в 2010-м
Perl 5.10 в 2010-м
 
Gearman and Perl
Gearman and PerlGearman and Perl
Gearman and Perl
 
‎Откуда узнать про Perl 6‎
‎Откуда узнать про Perl 6‎‎Откуда узнать про Perl 6‎
‎Откуда узнать про Perl 6‎
 

Perl6 grammars