Perl 5.10 on OSDC.tw 2009

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    Perl 5.10 on OSDC.tw 2009 - Presentation Transcript

    1. Perl 5.10
    2. OSDC.tw 2009 4/19 scw at csie dot org
    3. Who
    4. Who? Larry Wall Rafa¨l Garcia-Suarez e
    5. When
    6. When? Perl 5.8.0: July 18, 2002
    7. When? Perl 5.8.0: July 18, 2002 Perl 5.8.9: Dec 14, 2008
    8. When? Perl 5.10.0: Dec 18, 2007
    9. When? Perl 5.10.0: Dec 18, 2007 Perl 6: By Xmas
    10. What
    11. What? Compatible (almost) major upgrade
    12. What? New language features Interpreter improvements
    13. What? Features and inspiration from Perl 6
    14. Where
    15. Where? Debian 5.0 lenny Ubuntu 8.10 intrepid Fedora 9
    16. Where? FreeBSD ports (2009-03-28) ActivePerl 5.10.0.1004
    17. How
    18. How? apt-get install perl yum update perl
    19. How? portsnap fetch update cd lang/perl5.10 make install clean
    20. How? portsnap fetch update cd lang/perl5.10 make install clean read /usr/ports/UPDATING !!!
    21. Not root?
    22. Not root! $ wget http://www.cpan.org/authors/id/\\ R/RG/RGARCIA/perl-5.10.0.tar.gz $ tar zxf perl-5.10.0.tar.gz; cd perl-5.10.0 $ ./Configure -Dprefix=/usr/local\\ ˜ -Duserelocatableinc $ make -j 8 all test install
    23. Why
    24. a//a
    25. a||a
    26. Why? $a // ”Comment?”
    27. Why? $a // ”Comment?” defined $a ? $a : ”Comment?”
    28. defined-or Apply defined-or patch against perl 5.8 works, too
    29. defined-or my $price = mysql select(...) // ”not found”; say ”Price at $price”
    30. say say = print + -l Not enabled by default
    31. feature use feature qw( ) say, switch, state
    32. feature use feature ”:5.10” use 5.010 use v5.10 perl -E
    33. feature switch In correct English!!
    34. switch given($foo) { when (undef) { say ’$foo is undefined’ } when (”foo”) { say ’$foo is str ”foo”’ } when ([1,3,5,7,9]) { say ’$foo is an odd digit’; continue; } when ($ < 100) { say ’$foo under 100’ } when (\\&func) { say ’func($foo) true’ } default { die q(I don’t know what to do
    35. when my $count = 0; for (@array) { when (”foo”) { ++$count } } say ”array contains $count copies of ’foo’”;
    36. given, when & default given(EXPR) = do{ $ = EXPR; ... } when($foo) = when($ ˜˜$foo) default = when(1 == 1)
    37. smart match ”Smart matching in detail” in perlsyn $a˜˜$b the same to $b˜˜$a keys for hash content for array
    38. PerlRE
    39. Engine De-recursivised
    40. Engine Trie
    41. Engine Aho-Corasick
    42. Named Capture
    43. Named capture /(?<ip> \\d+\\.\\d+\\.\\d+\\.\\d+) .-.-.\\[(?<time>.*?)\\] .”(?<method>GET|POST) .(?<request>[ˆ ]+) /x
    44. Named capture /(?<ip> \\d+\\.\\d+\\.\\d+\\.\\d+) .-.-.\\[(?<time>.*?)\\] .”(?<method>GET|POST) .(?<request>[ˆ ]+) /x $+{’ip’, ’time’, ’method’, ’request’}
    45. backreference /(.)\\1/ /(.)\\g1/ /(.)\\g{1}/ /(.)\\g{-1}/ /(?<letter>.)\\g{letter}/ /(?<letter>.)\\k<letter>/
    46. Regexp::Keep
    47. Regexp::Keep s/(.*)\\?.*/$1/g
    48. Regexp::Keep s/(.*)\\?.*/$1/g s/.*\\K\\?.*//g
    49. PerlRE not Regular
    50. Recursive /ˆ( # start of line, capture buffer 1 < # match an opening angle brack (? : # match one of: [ˆ <>]+ # one or more non angle br | # ... or ... (?1) # recurse to bracket 1 and try )∗ # 0 or more times. > # match a closing angle bracket ) # end capture buffer one $/x # end of line
    51. Recursive /ˆ( # start of line, capture buffer 1 < # match an opening angle brack (? : # match one of: (? > [ˆ <>]+ # one or more non angle br ) | # ... or ... (?1) # recurse to bracket 1 and try )∗ # 0 or more times. > # match a closing angle bracket ) # end capture buffer one $/x # end of line
    52. Recursive /ˆ( # start of line, capture buffer 1 < # match an opening angle brack (? : # match one of: [ˆ <>] + + # one or more non angle b | # ... or ... (?1) # recurse to bracket 1 and tr )∗ # 0 or more times. > # match a closing angle bracket ) # end capture buffer one $/x # end of line
    53. Backtracking Control Verbs
    54. (*FAIL)
    55. (*ACCEPT)
    56. On (*FAIL)...
    57. On (*FAIL)... (*PRUNE) estart this trial (:)
    58. On (*FAIL)... aaaaaaaaaaaaaa /a*(*PRUNE)a/
    59. On (*FAIL)... (*THEN) ext branch (::)
    60. On (*FAIL)... aaaaaaaaaaaaa /a*(*THEN)a/
    61. On (*FAIL)... aaaaaaaaaaaaaaaa /a*(*THEN)a|a+/
    62. On (*FAIL)... (*COMMIT) ail the match (:::)
    63. On (*FAIL)... aaaaaaaaaaaaaaaa /a*(*COMMIT)a/
    64. demo parse string
    65. man perlre
    66. man perldelta
    67. Thank you!

    + scwengscweng, 6 months ago

    custom

    707 views, 3 favs, 0 embeds more stats

    Presentation of Perl 5.10 on OSDC.tw 2009, 4/19 by more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 707
      • 707 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 34
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?