Presentation2wire Name2labels Wire2presentation

Total Page:16

File Type:pdf, Size:1020Kb

Presentation2wire Name2labels Wire2presentation Pontificating on Perl Profiling Lisa Hagemann VP Engineering, Dyn Inc. twitter.com/lhagemann twitter.com/dyninc What is Profiling? A way to evaluate what is your program doing. Commonly evaluates the behavior of the program, measuring frequency and duration of different call paths including the call paths. Used to evaluate areas ripe for optimization. What is Benchmarking? Defining a measurement for comparison Benchmark time, memory, database calls Provides data, not answers TMTOWTDI There’s More Than One Way To Do It What’s the Best way to do it? use Benchmark; use Benchmark; perldoc Benchmark Built in module which encapsulates a number of routines to help you figure out how long it takes to execute some code. 1 #!/usr/bin/env perl use Benchmark; 2 Built in module 3 #List::Util::first() is slower than a for loop: encapsulates a number of 4 5 use Benchmark qw(:all :hireswallclock); routines to help you 6 use List::Util qw(first); figure out how long it 7 takes to execute some 8 my @list = 1..100; code. 9 10 my $results = timethese(1_000_000, { timethese (COUNT, 11 'first' => sub { CODEHASHREF,[STYLE]) 12 my $f; Time COUNT iterations of 13 $f = first { $_ == 5 } @list; 14 return $f; CODEHASHREF. 15 }, 16 'loop' => sub { cmpthese ( COUNT, 17 my $f; CODEHASHREF, [ STYLE ] ) 18 for (@list) { or 19 if ($_ == 5) { cmpthese 20 $f = $_; ( RESULTSHASHREF, 21 last; [ STYLE ] ) 22 } Uses timethese (or the 23 } 24 return $f; results of a timethese() 25 }, call and outputs in a 26 }); comparison table 27 28 cmpthese($results); $ perl simpleloop2.pl Benchmark: timing 1000000 iterations of first, loop... first: 1.59767 wallclock secs ( 1.48 usr + 0.01 sys = 1.49 CPU) @ 671140.94/s (n=1000000) loop: 1.08002 wallclock secs ( 0.92 usr + 0.01 sys = 0.93 CPU) @ 1075268.82/s (n=1000000) Rate first loop first 671141/s -- -38% loop 1075269/s 60% -- output from timethese() is the default style ‘auto’ key of coderef followed by the times for 'wallclock' time, user time, and system time followed by the rate output from cmpthese() gives us a comparison chart sorted from slowest to fastest, and shows the percent speed difference between each pair of tests. Things to consider Focus on code that will be executed the most (think loops) Are there expensive comparisons/computations that can be cached sensibly? Are there chains of comparisons that aren't optimized statistically? Unnecessary sorting? Are you reinventing the wheel? A simple text parsing script Uses a package for creating objects Simple parsing of a zone file into DNS records: hash ‘em if we know how 20K lines to parse 1 #!/usr/bin/env perl -l use Benchmark; 2 use strict; 3 use warnings; Built in module encapsulates a number of routines to help 4 use RR; 5 use Net::DNS::RR; you figure out how long it takes to execute some code. 6 use Benchmark qw(:hireswallclock); 7 new(): 8 my $t0 = new Benchmark; 9 while (my $line = <>) { Returns the current time as an object the Benchmark 10 chomp($line); 11 methods use 12 # Ignore blank lines 13 next unless $line; timediff( T1 , T2 ): A Benchmark object 14 15 my $obj = RR->new($line); representing the difference between two Benchmark times, 16 17 # Generate Net::DNS::RRs suitable for passing to timestr(); 18 my $rr; 19 if ($obj->as_hash()) { timestr ( TIMEDIFF, [ STYLE, 20 $rr = Net::DNS::RR->new($obj->as_hash()); 21 } else { [ FORMAT ] ] ): returns a string in the 22 $rr = Net::DNS::RR->new($obj->as_string()); 23 } requested format suitable for printing. Format defaults to 24 } 25 my $t1 = new Benchmark; ‘%5.2f’. 26 my $runtime = timestr(timediff($t1,$t0)); 27 28 print "Zone parse time: $runtime"; Benchmark $ perl zoneparse.pl zone.com.txt Zone parse time: 4.61972 wallclock secs ( 4.55 usr + 0.02 sys = 4.57 CPU) 4.61 seconds to process the file Good? Bad? Can it be better? Profiling Packages Devel::DProf Built in, produces an output file, utility to format that watches subroutine calls noting elapsed time totals each run into a total time spent in the subroutine Devel::SmallProf Install from CPAN Human readable output file, clunky for programs with imported libraries Devel::NYTProf Devel::NYTProf http://search.cpan.org/~timb/Devel-NYTProf-4.06/ Devel::NYTProf from CPAN is a powerful, fast, feature-rich perl source code profiler* Statement and Subroutine profiling showing Inclusive and Exclusive Time Inclusive includes time spent in subroutines called from within another subroutine Handy report HTML generator Run the script with Devel::NYTProf $ perl -d:NYTProf zoneparse.pl zone.com.txt -d flag starts the debug mode which is shorthand for -MDevel:: loads the module Devel::NYTProf before running the provided script produces nytprof.out file Adds a little overhead $ nytprofhtml -o ./nytprof_run1 -f ./nytprof_run1.out --open Reading ./nytprof_run1.out Processing ./nytprof_run1.out data Writing sub reports to ./nytprof_run1 directory 100% ... Writing block reports to ./nytprof_run1 directory 100% ... Writing line reports to ./nytprof_run1 directory 100% ... nytprofhtml generates HTML report Useful flags for keeping multiple runs -f --file: file name to use; defaults to ./nytprof.out -o --out: the output directory to place all the html files 1 #!/usr/bin/perl -l 2 3 use strict; 4 use warnings; 5 6 use RR; 7 use Net::DNS::RR; 8 9 use Benchmark qw(:hireswallclock); 10 11 my $t0 = new Benchmark; 12 13 while (my $line = <>) { 14 chomp($line); 15 16 # Ignore blank lines 17 next unless $line; 18 19 my $obj = RR->new($line); 20 21 # Generate Net::DNS::RRs 22 my $rr = Net::DNS::RR->new($obj->as_string()); 23 } 24 25 my $t1 = new Benchmark; 26 my $runtime = timestr(timediff($t1,$t0)); 27 28 print "Zone parse time: $runtime"; Benchmark $ perl zoneparse2.pl zone.com.txt Zone parse time: 2.03943 wallclock secs ( 2.01 usr + 0.01 sys = 2.02 CPU) 4.61 seconds down to 2.03 seconds > 50% speed up! Any others? $ perl -d:NYTProf zoneparse2.pl zone.com.txt Zone parse time: 10 wallclock secs ( 9.43 usr + 0.03 sys = 9.46 CPU) $ nytprofhtml -o ./nytprof_run2 -f ./nytprof_run2.out --open Reading ./nytprof_run2.out Processing ./nytprof_run2.out data Writing sub reports to ./nytprof_run2 directory 100% ... Writing block reports to ./nytprof_run2 directory 100% ... Writing line reports to ./nytprof_run2 directory 100% ... Net::DNS presentation2wire name2labels wire2presentation stripdot Net::DNS::RR::new_from_string 1 #!/usr/env/bin perl -l 2 3 use strict; 4 use warnings; 5 6 use RR; 7 use Net::DNS; 8 use Net::DNS::RR; 9 use Benchmark qw(:hireswallclock); 10 11 sub stripdot { 12 my ($str) = @_; 13 #Replace any period at the end of a label that is not escaped by '\' 14 $str =~ s{(?<!\\)\.\s*$}{}; 15 return $str; 16 } 17 18 #override the Net::DNS stripdot 19 *Net::DNS::RR::stripdot = \&stripdot; 20 21 my $t0 = new Benchmark; 22 23 while (my $line = <>) { ... 33 } 34 35 my $t1 = new Benchmark; 36 my $runtime = timestr(timediff($t1,$t0)); 37 print "Zone parse time: $runtime"; Benchmark $ perl zoneparse3.pl zone.com.txt Subroutine Net::DNS::RR::stripdot redefined at zoneparse3.pl line 19. Zone parse time: 1.10183 wallclock secs ( 1.10 usr + 0.00 sys = 1.10 CPU) 2.03 seconds to 1.10 seconds Another ~50% speed up! $ perl -d:NYTProf zoneparse3.pl zone.com.txt Subroutine Net::DNS::RR::stripdot redefined at zoneparse3.pl line 19. Zone parse time: 3 wallclock secs ( 3.51 usr + 0.02 sys = 3.53 CPU) $ nytprofhtml -o ./nytprof_run3 -f ./nytprof_run3.out --open Reading ./nytprof_run3.out Processing ./nytprof_run3.out data Writing sub reports to ./nytprof_run3 directory 100% ... Writing block reports to ./nytprof_run3 directory 100% ... Writing line reports to ./nytprof_run3 directory 100% ... 77% speed up Total run time: 4.61 seconds down to 1.10 seconds Time in external module reduced from nearly 5 secs to 6ms. This includes the overhead of calling the profiling module References CPAN http://search.cpan.org/~timb/Devel-NYTProf-4.06/ http://search.cpan.org/~salva/Devel-SmallProf-2.02/ PerlMonks.org Perl Best Practices by Damian Conway Modern Perl by chromatic.
Recommended publications
  • Index Images Download 2006 News Crack Serial Warez Full 12 Contact
    index images download 2006 news crack serial warez full 12 contact about search spacer privacy 11 logo blog new 10 cgi-bin faq rss home img default 2005 products sitemap archives 1 09 links 01 08 06 2 07 login articles support 05 keygen article 04 03 help events archive 02 register en forum software downloads 3 security 13 category 4 content 14 main 15 press media templates services icons resources info profile 16 2004 18 docs contactus files features html 20 21 5 22 page 6 misc 19 partners 24 terms 2007 23 17 i 27 top 26 9 legal 30 banners xml 29 28 7 tools projects 25 0 user feed themes linux forums jobs business 8 video email books banner reviews view graphics research feedback pdf print ads modules 2003 company blank pub games copyright common site comments people aboutus product sports logos buttons english story image uploads 31 subscribe blogs atom gallery newsletter stats careers music pages publications technology calendar stories photos papers community data history arrow submit www s web library wiki header education go internet b in advertise spam a nav mail users Images members topics disclaimer store clear feeds c awards 2002 Default general pics dir signup solutions map News public doc de weblog index2 shop contacts fr homepage travel button pixel list viewtopic documents overview tips adclick contact_us movies wp-content catalog us p staff hardware wireless global screenshots apps online version directory mobile other advertising tech welcome admin t policy faqs link 2001 training releases space member static join health
    [Show full text]
  • Pragmaticperl-Interviews-A4.Pdf
    Pragmatic Perl Interviews pragmaticperl.com 2013—2015 Editor and interviewer: Viacheslav Tykhanovskyi Covers: Marko Ivanyk Revision: 2018-03-02 11:22 © Pragmatic Perl Contents 1 Preface .......................................... 1 2 Alexis Sukrieh (April 2013) ............................... 2 3 Sawyer X (May 2013) .................................. 10 4 Stevan Little (September 2013) ............................. 17 5 chromatic (October 2013) ................................ 22 6 Marc Lehmann (November 2013) ............................ 29 7 Tokuhiro Matsuno (January 2014) ........................... 46 8 Randal Schwartz (February 2014) ........................... 53 9 Christian Walde (May 2014) .............................. 56 10 Florian Ragwitz (rafl) (June 2014) ........................... 62 11 Curtis “Ovid” Poe (September 2014) .......................... 70 12 Leon Timmermans (October 2014) ........................... 77 13 Olaf Alders (December 2014) .............................. 81 14 Ricardo Signes (January 2015) ............................. 87 15 Neil Bowers (February 2015) .............................. 94 16 Renée Bäcker (June 2015) ................................ 102 17 David Golden (July 2015) ................................ 109 18 Philippe Bruhat (Book) (August 2015) . 115 19 Author .......................................... 123 i Preface 1 Preface Hello there! You have downloaded a compilation of interviews done with Perl pro- grammers in Pragmatic Perl journal from 2013 to 2015. Since the journal itself is in Russian
    [Show full text]
  • Modern Perl, Fourth Edition
    Prepared exclusively for none ofyourbusiness Prepared exclusively for none ofyourbusiness Early Praise for Modern Perl, Fourth Edition A dozen years ago I was sure I knew what Perl looked like: unreadable and obscure. chromatic showed me beautiful, structured expressive code then. He’s the right guy to teach Modern Perl. He was writing it before it existed. ➤ Daniel Steinberg President, DimSumThinking, Inc. A tour de force of idiomatic code, Modern Perl teaches you not just “how” but also “why.” ➤ David Farrell Editor, PerlTricks.com If I had to pick a single book to teach Perl 5, this is the one I’d choose. As I read it, I was reminded of the first time I read K&R. It will teach everything that one needs to know to write Perl 5 well. ➤ David Golden Member, Perl 5 Porters, Autopragmatic, LLC I’m about to teach a new hire Perl using the first edition of Modern Perl. I’d much rather use the updated copy! ➤ Belden Lyman Principal Software Engineer, MediaMath It’s not the Perl book you deserve. It’s the Perl book you need. ➤ Gizmo Mathboy Co-founder, Greater Lafayette Open Source Symposium (GLOSSY) Prepared exclusively for none ofyourbusiness We've left this page blank to make the page numbers the same in the electronic and paper books. We tried just leaving it out, but then people wrote us to ask about the missing pages. Anyway, Eddy the Gerbil wanted to say “hello.” Prepared exclusively for none ofyourbusiness Modern Perl, Fourth Edition chromatic The Pragmatic Bookshelf Dallas, Texas • Raleigh, North Carolina Prepared exclusively for none ofyourbusiness Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks.
    [Show full text]
  • Vom Weblog Lernen... Community, Peer-To-Peer Und Eigenständigkeit
    Vom Weblog lernen... Community, Peer-to-Peer und Eigenst¨andigkeit als ein Modell fur¨ zukunftige¨ Wissenssammlungen∗ J¨org Kantel Der Schockwellenreiter www.schockwellenreiter.de 20. Mai 2003 Zusammenfassung Das Internet erscheint vielen als unubersichtlicher,¨ anarchischer Raum, in dem zwar alles zu finden ist, aber nicht das, wonach man sucht (Lost in Cyberspace). Die bisherigen L¨osungsans¨atze bestanden in der Regel darin, daß man versuchte, die Informationen zentral zu sammeln, zu bundeln¨ und sie geordnet“ wieder zur Verfugung¨ zu stel- ” len. Demgegenuber¨ sind in den letzten Jahre mit den Weblogs und um die Weblogs herum Strategien entstanden, wie verteilte Informationen behandelt und dennoch zug¨anglich gemacht werden k¨onnen. Dieser Ar- tikel zeigt auf, was fur¨ verteilte Informationssammlungen spricht, wie Weblogs mit uber¨ das gesamte Netz verstreuten Informationen umge- hen, um dann zu untersuchen, wie die dabei entstandenen Techniken auch auf andere Wissenssammlungen im Internet angewandt werden k¨onnen. Beispielhaft wird das an der Implementierung einer verteilten Musiknoten-Sammlung aufgezeigt. ∗Keynote speach given at BlogTalk - A European Conference On Weblogs: Web-based publishing, communication and collaboration tools for professional and private use, Vien- na, May 23 - 24, 2003 1 1 Motivation 1.1 Weblogs und pers¨onliche Wissenssammlungen 1.1.1 Was sind Weblogs Auch wenn manchmal etwas anderes behauptet wird, werden Weblogs als Medienereignis fruhestens¨ seit 1999 (in Deutschland nicht vor 2000) von der Offentlichkeit¨ wahrgenommen1. Im Gegensatz zu der schon vor 1999 existie- renden Tagebuchszene (die ihre Webseiten noch liebvoll mit handgestrick- ” tem“ HTML pflegte), sind Weblogs ohne die dazugeh¨orende Software, wie z.B. Blogger (www.blogger.com), Radio UserLand (radio.uslerland.com) oder Movable Type (www.movabletype.org) nicht zu denken.
    [Show full text]
  • Module Kwalitee YAPC Europe 2007
    Module Kwalitee YAPC Europe 2007 v2.0 (translated, edited & augmented from French Perl Workshop 2006 talk) YAPC 2007, Vienna, August 28th–30th, 1 Xavier Caron <[email protected]> Module Kwalitee “Kwalitee”? ✗ Definition attempt ✗ “Kwalitee” is an approximation of “Quality” ✗ Nobody knows what it is actually... ✗ Anyway, we believe we're able to recognize it when we see it! ✗ It's mainly a matter of confidence ✗ Built through passed tests (but it's not enough as we'll see later) ✗ Yet, absence of bugs (read “unfound”) does not imply Kwalitee! ✗ Although a correlation exists if tests functional coverage is decent ✗ “Go ahead bug, make my day!” ✗ A bug is a difference between expectation and implementation ✗ It is also a difference between test, documentation & code ✗ If documentation is missing, this is a bug indeed! YAPC 2007, Vienna, August 28th–30th, 2 Xavier Caron <[email protected]> Module Kwalitee Achtung! * Tr ** Tr u (i th u n i th c s, lu is N d th in er O g t e T h i out i s s no t on h e)**tr er u e! th . YAPC 2007, Vienna, August 28th–30th, 3 Xavier Caron <[email protected]> Module Kwalitee When & What 1 ✗ Ages before ✗ Literature ✗ CPAN ✗ Articles, conferences, /Perl Mon(k|ger)s/, etc. ✗ “Read. Learn. Evolve.” – Klortho the Magnificent ✗ Before ✗ Generate module skeleton ✗ Use an OO class builder (if applicable) ✗ Write tests (a tad of XP in your code) ✗ While (coding) ✗ Document in parallel (and why not, before?) ✗ Add more tests if required YAPC 2007, Vienna, August 28th–30th, 4 Xavier Caron <[email protected]> Module Kwalitee When & What 2 ✗ After (between coding & release) ✗ Test (test suite – acceptance and non-regression) ✗ Measure POD coverage ✗ Measure tests code coverage ✗ Measure tests functional coverage (Ha! Ha!) ✗ Generate synthetic reports ✗ For one-glance checking purposes or for traceability's sake ✗ Way after (release) ✗ Refactor early, refactor often ✗ Test suite (non-regression) should ensure nothing got broken in the process ✗ Following a bug report..
    [Show full text]
  • Netapp Snap Creator Framework
    Notice About this information The following copyright statements and licenses apply to open source software components that are distributed with various versions of the NetApp Snap Creator for framework software products. Your product does not necessarily use all the open source software components referred to below. Where required, source code is published at the following location: ftp://ftp.netapp.com/frm-ntap/opensource/ Copyrights and licenses The following component is subject to the Crypt DES CPAN License: ◆ Crypt::DES 2.05 Copyright © 2000 W3Works, LLC. All rights reserved Copyright © 1995, 1996 Systemics Ltd (http://www.systemics.com/).All rights reserved. This perl extension includes software developed by Eric Young ([email protected]) Modifications, including cross-platform fixups, and single-algorithm distribution packaging are Copyright © 2000 W3Works, LLC. All Rights Reserved. Mail questions and comments to Dave Paris <[email protected]>. Original distribution license (below) applies. Other parts of the library are covered by the following licence: Copyright © 1995, 1996 Systemics Ltd (http://www.systemics.com/) All rights reserved. This library and applications are FREE FOR COMMERCIAL AND NON-COMMERCIAL USE as long as the following conditions are adhered to. Copyright remains with Systemics Ltd, and as such any Copyright notices in the code are not to be removed. If this code is used in a product, Systemics should be given attribution as the author of the parts used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1.
    [Show full text]
  • Effective Perl.Pdf
    Effective Perl Programming Second Edition The Effective Software Development Series Scott Meyers, Consulting Editor Visit informit.com/esds for a complete list of available publications. he Effective Software Development Series provides expert advice on Tall aspects of modern software development. Books in the series are well written, technically sound, and of lasting value. Each describes the critical things experts always do—or always avoid—to produce outstanding software. Scott Meyers, author of the best-selling books Effective C++ (now in its third edition), More Effective C++, and Effective STL (all available in both print and electronic versions), conceived of the series and acts as its consulting editor. Authors in the series work with Meyers to create essential reading in a format that is familiar and accessible for software developers of every stripe. Effective Perl Programming Ways to Write Better, More Idiomatic Perl Second Edition Joseph N. Hall Joshua A. McAdams brian d foy Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.
    [Show full text]
  • So You Want to Write About Perl! Brian D Foy, [email protected] Publisher, the Perl Review YAPC Chicago 2006 About Me Wrote My first Perl Article for TPJ #9
    So You Want to Write about Perl! brian d foy, [email protected] Publisher, The Perl Review YAPC Chicago 2006 About me Wrote my first Perl article for TPJ #9 Then my next for TPJ #11 (Got into The Best of The Perl Journal) Later a columnist for TPJ O’Reilly Weblogger, MacDevCenter, &c. Publisher of The Perl Review Lead author of Learning Perl, 4th Edition Lead author of Intermediate Perl Working on Mastering Perl Reasons Not to Write Get rich Have more free time Quality time with your computer Free international travel Reasons To Write Your story is Perl’s best advocacy Learn more about Perl Become a better writer and communicator Let people know what you’re doing Let people (Google) know who you are Write now You can start right away Blogs use.perl.org Perlmonks Meditations Fancier Places Perl.com IBM Developer Works The Perl Review Dr. Dobbs, Linux Magazine, Unix Review Getting the Gig It’s who you know, mostly Or you have to have something really good Most places won’t be encouraging Find the right people Have some samples Publishers want Interesting content Good writing The least hassle Writers with whom they can work Something that sells Wanting the Gig People need to see your work Your publisher should promote you Your writing should take center stage Be careful about writing for free Talk to other authors about contracts and publishers Published other things you like Introducing yourself Most places have some sort of author or style guide with instructions When you propose something, be concise and to the point Realize that lots
    [Show full text]
  • Mastering Perl, 2Nd Edition.Pdf
    SECOND EDITION Mastering Perl brian d foy Mastering Perl, Second Edition by brian d foy Copyright © 2014 brian d foy. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/ institutional sales department: 800-998-9938 or [email protected]. Editor: Rachel Roumeliotis Indexer: Lucie Haskins Production Editor: Kara Ebrahim Cover Designer: Randy Comer Copyeditor: Becca Freed Interior Designer: David Futato Proofreader: Charles Roumeliotis Illustrator: Rebecca Demarest January 2014: Second Edition Revision History for the Second Edition: 2014-01-08: First release See http://oreilly.com/catalog/errata.csp?isbn=9781449393113 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Mastering Perl, Second Edition, the image of a vicuña and her young, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trade‐ mark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.
    [Show full text]
  • Learning Perl 6
    Learning Perl 6 Learning Perl 6 If you’re ready to get started with Perl 6, this is the book you want, whether “Just as he did for the Perl you’re a programmer, system administrator, or web hacker. Perl 6 is a language with Learning new language—a modern reinvention of Perl, suitable for almost any task, from short fixes to complete web applications. This hands-on tutorial Perl, brian explains this gets you started. language with clarity Author brian d foy (Mastering Perl) provides a sophisticated introduction and honesty.” to this new programing language. Each chapter in this guide contains —chromatic exercises to help you practice what you learn as you learn it. Other books member of the Perl 6 design team may teach you to program in Perl 6, but this book will turn you into a Perl from 2003–2011 6 programmer. “I learned a number Learn how to work with: of things from this ■ Numbers, strings, blocks, and positionals well-written and ■ Files and directories and input/output comprehensive book, ■ Associatives, subroutines, classes, and roles despite the fact that ■ Junctions and sets I've been using Perl 6 ■ Regular expressions and builtin grammars for quite a few years ■ Concurrency features:Promises, supplies, and channels now. My life would have ■ Controlling external programs and other advanced features been much easier if this book had existed when brian d foy is a prolific Perl trainer and writer, and runs The Perl Review to help Learning I started to learn the people use and understand Perl through education, consulting, code review, and more.
    [Show full text]
  • COPYRIGHT STATEMENT This Copy of the Thesis Has Been Supplied on Condition That Anyone Who Consults It Is Understood to Recognis
    University of Plymouth PEARL https://pearl.plymouth.ac.uk 04 University of Plymouth Research Theses 01 Research Theses Main Collection 2015 Intercorporeality and Technology: toward a new cognitive, aesthetic and communicative paradigm in the performing arts Choiniere, Isabelle http://hdl.handle.net/10026.1/8804 Plymouth University All content in PEARL is protected by copyright law. Author manuscripts are made available in accordance with publisher policies. Please cite only the published version using the details provided on the item record or document. In the absence of an open licence (e.g. Creative Commons), permissions for further reuse of content should be sought from the publisher or author. COPYRIGHT STATEMENT This copy of the thesis has been supplied on condition that anyone who consults it is understood to recognise that its copyright rests with its author and that no quotation from the thesis and no information derived from it may be published without the author's prior consent. Isabelle Choinière 2 December 2014 1 Choinière INTERCORPOREALITY AND TECHNOLOGY: TOWARD A NEW COGNITIVE, AESTHETIC AND COMMUNICATIVE PARADIGM IN THE PERFORMING ARTS by ISABELLE CHOINIÈRE A thesis submitted to the University of Plymouth in partial fulfillment for the degree of DOCTOR OF PHILOSOPHY Planetary Collegium School of Art & Media Faculty of Arts and Humanities December 2014 2 Choinière AUTHOR: Isabelle Choinière TITLE: Intercorporeality and Technology: toward a new cognitive, aesthetic and communicative paradigm in the performing arts. EXECUTIVE SUMMARY The goal of this thesis was to reassess the relationship between the moving body and technology, and more specifically, to focus on recent perspectives in the performing arts which inscribe new manifestations and dynamics of cross-pollination between the somatic and technology.
    [Show full text]
  • Perl Hacks Tips and Tools for Programming Debugging And
    Perl Hacks By chromatic , Damian Conway, Curtis "Ovid" Poe ............................................... Publisher: O'Reilly Pub Date: May 2006 Print ISBN-10: 0-596-52674-1 Print ISBN-13: 978-0-59-652674-0 Pages: 296 Table of Contents | Index With more than a million dedicated programmers, Perl has proven to be the best computing language for the latest trends in computing and business. While other languages have stagnated, Perl remains fresh thanks to its community-based development model, which encourages the sharing of information among users. This tradition of knowledge-sharing allows developers to find answers to almost any Perl question they can dream up. And you can find many of those answers right here in Perl Hacks. Like all books in O'Reilly's "Hacks" series, Perl Hacks appeals to a variety of programmers, whether you're a experienced developer or a dabbler who simply enjoys exploring technology. Each hack is a short lesson - some are practical exercises that teach you essential skills, while others merely illustrate some of the fun things that Perl can do. Most hacks have two parts: a direct answer to the immediate problem you need to solve right now and a deeper, subtler technique that you can adapt to other situations. Learn how to add CPAN shortcuts to the Firefox web browser, read files backwards, write graphical games in Perl, and much more. For your convenience, Perl Hacks is divided by topic - not according to any sense of relative difficulty - so you can skip around and stop at any hack you like. Chapters include: Productivity Hacks User Interaction Data Munging Working with Modules Object Hacks Debugging Whether you're a newcomer or an expert, you'll find great value in Perl Hacks, the only Perl guide that offers something useful and fun for everyone.
    [Show full text]