Modern Perl, Fourth Edition

Total Page:16

File Type:pdf, Size:1020Kb

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. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf, PragProg and the linking g device are trade- marks of The Pragmatic Programmers, LLC. Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility for errors or omissions, or for damages that may result from the use of information (including program listings) contained herein. Our Pragmatic courses, workshops, and other products can help you and your team create better software and have more fun. For more information, as well as the latest Pragmatic titles, please visit us at https://pragprog.com. The team that produced this book includes: Michael Swaine (editor) Potomac Indexing, LLC (index) Linda Recktenwald (copyedit) Dave Thomas (layout) Janet Furlow (producer) Ellie Callahan (support) For international rights, please contact [email protected]. Copyright © 2015 The Pragmatic Programmers, LLC. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher. Printed in the United States of America. ISBN-13: 978-1-68050-088-2 Encoded using the finest acid-free high-entropy binary digits. Book version: P1.0—October 2015 Prepared exclusively for none ofyourbusiness Contents Preface . ix 1. The Perl Philosophy . 1 Perldoc 1 Expressivity 3 Context 5 Implicit Ideas 8 2. Perl and Its Community . 13 The CPAN 13 Community Sites 16 Development Sites 16 Events 17 IRC 17 3. The Perl Language . 19 Names 19 Variables 22 Values 24 Control Flow 35 Scalars 50 Arrays 52 Hashes 58 Coercion 66 Packages 68 References 71 Nested Data Structures 78 4. Operators . 85 Operator Characteristics 85 Operator Types 87 Prepared exclusively for none ofyourbusiness Contents • vi 5. Functions . 91 Declaring Functions 91 Invoking Functions 91 Function Parameters 92 Functions and Namespaces 97 Reporting Errors 98 Advanced Functions 99 Pitfalls and Misfeatures 103 Scope 104 Anonymous Functions 108 Closures 112 State versus Closures 116 State versus Pseudo-State 117 Attributes 118 AUTOLOAD 119 6. Regular Expressions and Matching . 125 Literals 125 The qr// Operator and Regex Combinations 126 Quantifiers 127 Greediness 128 Regex Anchors 129 Metacharacters 130 Character Classes 131 Capturing 132 Grouping and Alternation 133 Other Escape Sequences 135 Assertions 135 Regex Modifiers 137 Smart Matching 139 7. Objects . 141 Moose 141 Blessed References 155 Reflection 160 Advanced OO Perl 162 8. Style and Efficacy . 165 Writing Maintainable Perl 165 Writing Idiomatic Perl 166 Writing Effective Perl 167 Prepared exclusively for none ofyourbusiness Contents • vii Exceptions 168 Pragmas 171 9. Managing Real Programs . 175 Testing 175 Handling Warnings 181 Files 184 Modules 192 Distributions 196 The UNIVERSAL Package 199 Code Generation 202 Overloading 207 Taint 210 10. Perl Beyond Syntax . 213 Idioms 213 Global Variables 220 11. What to Avoid . 225 Barewords 225 Indirect Objects 228 Prototypes 230 Method-Function Equivalence 234 Automatic Dereferencing 236 Tie 237 12. Next Steps with Perl . 241 Useful Core Modules 241 What’s Next? 243 Index . 245 Prepared exclusively for none ofyourbusiness Preface Larry Wall released the first version of Perl in 1987. The language grew from its niche as a tool for system administrators who needed something more powerful than shell scripting and easier to use than C programming into a general-purpose programming language. Perl has a solid history of pragmatism and, in recent years, a disciplined approach to enhancement and backward compatibility. Over Perl’s long history—Perl 5 has been continually refined over the past twenty years—our understanding of what makes great Perl programs has changed. While you can write productive programs that never take advantage of all the language has to offer, the global Perl community has invented, bor- rowed, enhanced, and polished ideas and made them available to anyone willing to learn them. Modern Perl is a mindset. It’s an approach to writing great software with the Perl programming language. It’s how effective Perl programmers write powerful, maintainable, scalable, concise, and excellent code. It takes advantage of Perl’s extensive library of free software (the CPAN) and language features designed to multiply your productivity. You’ll benefit most from this book if you already have some experience with Perl or another programming language. If you’re comfortable writing and executing programs (and happy to consult the documentation when it’s mentioned), you’ll get the most from this book. Prepared exclusively for none ofyourbusiness report erratum • discuss Preface • x Running Modern Perl The Modern::Perl module from the CPAN (see The CPAN, on page 13) tells Perl to warn you of typos and other potential problems. It also enables new features introduced in Modern Perl releases. Unless otherwise mentioned, the code snippets in this book assume you’ve started with this basic program skeleton: #!/usr/bin/env perl use Modern::Perl '2015'; use autodie; If you don’t have Modern::Perl installed, you could write the following instead: #!/usr/bin/env perl use 5.016; # implies "use strict;" use warnings; use autodie; Some examples use testing functions such as ok(), like(), and is() (Testing on page 175). The skeleton for these examples is shown here: #!/usr/bin/env perl use Modern::Perl; use Test::More; # example code here done_testing(); At the time of writing, the current stable major Perl release is Perl 5.22. If you’re using an older version of Perl, you may not be able to run all of the examples in this book unmodified. The examples in this book work best with Perl 5.16.0 or newer, though we recommend at least Perl 5.20. While the term Modern Perl has traditionally referred to any version of Perl from 5.10.1, the language has improved dramatically over the past several years. Although Perl comes preinstalled on many operating systems, you may need to install a more modern version. Windows users, download Strawberry Perl from http://www.strawberryperl.com/ or ActivePerl from http://www.activestate.com/activeperl. Users of other operating systems with Perl already installed (and a C compiler and the other development tools), start by installing the CPAN module App::perlbrew.1 1. http://search.cpan.org/perldoc?App::perlbrew Prepared exclusively for none ofyourbusiness report erratum • discuss Credits • xi perlbrew manages multiple Perl installations, so that you can switch between versions for testing and deployment. You can also install CPAN modules in your home directory without affecting the system installation. If you’ve ever had to beg a system administrator for permission to install software, you’ll appreciate this. Credits This book would not have been possible without questions, comments, sug- gestions, advice, wisdom, and encouragement from many, many people. In particular, the author thanks this edition’s tech reviewers Andy Lester, Sean Lindsay, and Mohsen Jokar as well as Michael Swaine, editor of this edition. Contributors to this and previous editions include the following: John SJ Anderson, Peter Aronoff, Lee Aylward, Alex Balhatchet, Nitesh Bez- zala, Ævar Arnfjörð Bjarmason, Matthias Bloch, John Bokma, Géraud CONTINSOUZAS, Vasily Chekalkin, Dmitry Chestnykh, E. Choroba, Tom Christiansen, Anneli Cuss, Paulo Custodio, Steve Dickinson, Kurt Edmiston, David Farrell, Felipe, Shlomi Fish, Jeremiah Foster, Mark Fowler, John Gabriele, Nathan Glenn, Kevin Granade, Andrew Grangaard, Bruce Gray, Ask Bjørn Hansen, Tim Heaney, Graeme Hewson, Robert Hicks, Michael Hicks, Michael Hind, Mark Hindess, Yary Hluchan, Daniel Holz, Mike Huffman, Gary H. Jones II, Curtis Jewell, Mohammed Arafat Kamaal, James E Keenan, Kirk Kimmel, Graham Knop, Yuval Kogman, Jan Krynicky, Michael Lang, Jeff Lavallee, Moritz Lenz, Jean-Baptiste Mazon, Josh McAdams, Gareth McCaughan, John McNamara, Shawn M Moore, Alex Muntada, Carl Mäsak, Chris Niswander, Nelo Onyiah, Chas. Owens, ww from PerlMonks, Matt Pettis, Jess Robinson, Dave Rolsky, Gabrielle Roth, Grzegorz Rożniecki, Jean-Pierre Rupp, Eduardo Santiago, Andrew Savige, Lorne Schachter, Alex Schroeder, Steve Schulze, Dan Scott, Alex-ander Scott-Johns, Phillip Smith, Christopher E.
Recommended publications
  • Reflection, Zips, and Generalised Casts Abstract
    Scrap More Boilerplate: Reflection, Zips, and Generalised Casts Ralf L a¨mmel Vrije Universiteit & CWI, Amsterdam Abstract Writing boilerplate code is a royal pain. Generic programming promises to alleviate this pain b y allowing the programmer to write a generic #recipe$ for boilerplate code, and use that recipe in many places. In earlier work we introduced the #Scrap y our boilerplate$ approach to generic p rogramming, which exploits Haskell%s exist- ing type-class mechanism to support generic transformations and queries. This paper completes the picture. We add a few extra #introspec- tive$ or #reflective$ facilities, that together support a r ich variety of serialisation and de-serialisation. We also show how to perform generic #zips$, which at first appear to be somewhat tricky in our framework. Lastly, we generalise the ability to over-ride a generic function with a type-specific one. All of this can be supported in Haskell with independently-useful extensions: higher-rank types and type-safe cast. The GHC imple- mentation of Haskell readily derives the required type classes for user-defined data types. Categories and Subject Descriptors D.2. 13 [Software Engineering]: Reusable Software; D.1.1 [Programming Techniques]: Functional Programming; D.3. 1 [Programming Languages]: Formal Definitions and Theory General Terms Design, Languages Keywords Generic p rogramming, reflection, zippers, type cast 1 Introduction It is common to find that large slabs of a program consist of #boil- erplate$ code, which conceals b y its b ulk a smaller amount of #in- teresting$ code. So-called generic p rogramming techniques allow Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or c ommercial advantage and that copies b ear this notice and the full citation on the first page.
    [Show full text]
  • Template Meta-Programming for Haskell
    Template Meta-programming for Haskell Tim Sheard Simon Peyton Jones OGI School of Science & Engineering Microsoft Research Ltd Oregon Health & Science University [email protected] [email protected] Abstract C++, albeit imperfectly... [It is] obvious to functional programmers what the committee did not realize until We propose a new extension to the purely functional programming later: [C++] templates are a functional language evalu- language Haskell that supports compile-time meta-programming. ated at compile time...” [12]. The purpose of the system is to support the algorithmic construction of programs at compile-time. Robinson’s provocative paper identifies C++ templates as a ma- The ability to generate code at compile time allows the program- jor, albeit accidental, success of the C++ language design. De- mer to implement such features as polytypic programs, macro-like spite the extremely baroque nature of template meta-programming, expansion, user directed optimization (such as inlining), and the templates are used in fascinating ways that extend beyond the generation of supporting data structures and functions from exist- wildest dreams of the language designers [1]. Perhaps surprisingly, ing data structures and functions. in view of the fact that templates are functional programs, func- tional programmers have been slow to capitalize on C++’s success; Our design is being implemented in the Glasgow Haskell Compiler, while there has been a recent flurry of work on run-time meta- ghc. programming, much less has been done on compile-time meta- This version is very slightly modified from the Haskell Workshop programming. The Scheme community is a notable exception, as 2002 publication; a couple of typographical errors are fixed in Fig- we discuss in Section 10.
    [Show full text]
  • MANNING Greenwich (74° W
    Object Oriented Perl Object Oriented Perl DAMIAN CONWAY MANNING Greenwich (74° w. long.) For electronic browsing and ordering of this and other Manning books, visit http://www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact: Special Sales Department Manning Publications Co. 32 Lafayette Place Fax: (203) 661-9018 Greenwich, CT 06830 email: [email protected] ©2000 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Library of Congress Cataloging-in-Publication Data Conway, Damian, 1964- Object oriented Perl / Damian Conway. p. cm. includes bibliographical references. ISBN 1-884777-79-1 (alk. paper) 1. Object-oriented programming (Computer science) 2. Perl (Computer program language) I. Title. QA76.64.C639 1999 005.13'3--dc21 99-27793 CIP Manning Publications Co. Copyeditor: Adrianne Harun 32 Lafayette
    [Show full text]
  • Perl Baseless Myths & Startling Realities
    http://xkcd.com/224/ 1 Perl Baseless Myths & Startling Realities by Tim Bunce, February 2008 2 Parrot and Perl 6 portion incomplete due to lack of time (not lack of myths!) Realities - I'm positive about Perl Not negative about other languages - Pick any language well suited to the task - Good developers are always most important, whatever language is used 3 DISPEL myths UPDATE about perl Who am I? - Tim Bunce - Author of the Perl DBI module - Using Perl since 1991 - Involved in the development of Perl 5 - “Pumpkin” for 5.4.x maintenance releases - http://blog.timbunce.org 4 Perl 5.4.x 1997-1998 Living on the west coast of Ireland ~ Myths ~ 5 http://www.bleaklow.com/blog/2003/08/new_perl_6_book_announced.html ~ Myths ~ - Perl is dead - Perl is hard to read / test / maintain - Perl 6 is killing Perl 5 6 Another myth: Perl is slow: http://www.tbray.org/ongoing/When/200x/2007/10/30/WF-Results ~ Myths ~ - Perl is dead - Perl is hard to read / test / maintain - Perl 6 is killing Perl 5 7 Perl 5 - Perl 5 isn’t the new kid on the block - Perl is 21 years old - Perl 5 is 14 years old - A mature language with a mature culture 8 How many times Microsoft has changed developer technologies in the last 14 years... 9 10 You can guess where thatʼs leading... From “The State of the Onion 10” by Larry Wall, 2006 http://www.perl.com/pub/a/2006/09/21/onion.html?page=3 Buzz != Jobs - Perl5 hasn’t been generating buzz recently - It’s just getting on with the job - Lots of jobs - just not all in web development 11 Web developers tend to have a narrow focus.
    [Show full text]
  • (12) Patent Application Publication (10) Pub. No.: US 2014/0019847 A1 Osmak (43) Pub
    US 20140019847A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2014/0019847 A1 OSmak (43) Pub. Date: Jan. 16, 2014 (54) CONTENT MANAGEMENT SYSTEM (52) U.S. Cl. EMPLOYINGA HYBRD WEB APPLICATION CPC .................................. G06F 17/2247 (2013.01) FRAMEWORK USPC .......................................................... 71.5/234 (71) Applicant: Telerik, AD, Sofia (BG) (57) ABSTRACT A method may include receiving, via a network, a request for (72) Inventor: Ivan Osmak, Sofia (BG) browser-renderable content, and determining, by a processor of a computing device, a web framework, where the web (21) Appl. No.: 13/799,431 framework includes at least one ASP.NETTM control and at least one ASP.NETTM MVC controller. The method may (22) Filed: Mar 13, 2013 include determining, by the processor, first instructions, where the first instructions correspond to the at least one Related U.S. Application Data ASP.NETTM control, and the first instructions include a browser-renderable language. The method may include deter (60) Provisional application No. 61/669,930, filed on Jul. mining, by the processor, second instructions, where the sec 10, 2012. ond instructions correspond to the at least one ASP.NETTM MVC controller, and the second instructions include the Publication Classification browser-renderable language The method may include com bining, by the processor, the first instructions and the second (51) Int. Cl. instructions to determine the browser-renderable content, and G06F 7/22 (2006.01) providing, via the network, the browser-renderable content. Routing Engine Ric Presentation Media Fies : Fies 22 Applications 28 Patent Application Publication Jan. 16, 2014 Sheet 1 of 8 US 2014/001.9847 A1 Patent Application Publication Jan.
    [Show full text]
  • A Call-By-Need Lambda Calculus
    A CallByNeed Lamb da Calculus Zena M Ariola Matthias Fel leisen Computer Information Science Department Department of Computer Science University of Oregon Rice University Eugene Oregon Houston Texas John Maraist and Martin Odersky Philip Wad ler Institut fur Programmstrukturen Department of Computing Science Universitat Karlsruhe UniversityofGlasgow Karlsruhe Germany Glasgow Scotland Abstract arguments value when it is rst evaluated More pre cisely lazy languages only reduce an argument if the The mismatchbetween the op erational semantics of the value of the corresp onding formal parameter is needed lamb da calculus and the actual b ehavior of implemen for the evaluation of the pro cedure b o dy Moreover af tations is a ma jor obstacle for compiler writers They ter reducing the argument the evaluator will remember cannot explain the b ehavior of their evaluator in terms the resulting value for future references to that formal of source level syntax and they cannot easily com parameter This technique of evaluating pro cedure pa pare distinct implementations of dierent lazy strate rameters is called cal lbyneed or lazy evaluation gies In this pap er we derive an equational characteri A simple observation justies callbyneed the re zation of callbyneed and prove it correct with resp ect sult of reducing an expression if any is indistinguish to the original lamb da calculus The theory is a strictly able from the expression itself in all p ossible contexts smaller theory than the lamb da calculus Immediate Some implementations attempt
    [Show full text]
  • Chemplugin™ User's Guide
    The Geochemist’s Workbench® Release 15 ChemPlugin™ User’s Guide The Geochemist’s Workbench® Release 15 ChemPlugin™ User’s Guide Craig M. Bethke Aqueous Solutions, LLC Champaign, Illinois Printed August 31, 2021 This document © Copyright 2021 by Aqueous Solutions LLC. All rights reserved. Earlier editions copyright 2000–2020. This document may be reproduced freely to support any licensed use of the GWB software package. Software copyright notice: Programs GSS, Rxn, Act2, Tact, SpecE8, Gtplot, TEdit, React, Phase2, P2plot, X1t, X2t, Xtplot, and ChemPlugin © Copyright 1983–2021 by Aqueous Solutions LLC. An unpublished work distributed via trade secrecy license. All rights reserved under the copyright laws. The Geochemist’s Workbench®, ChemPlugin, We put bugs in our software, and The Geochemist’s Spreadsheet are a registered trademark and trademarks of Aqueous Solutions LLC; Microsoft®, MS®, Windows XP®, Windows Vista®, Windows 7®, Windows 8®, and Windows 10® are registered trademarks of Microsoft Corporation; PostScript® is a registered trademark of Adobe Systems, Inc. Other products mentioned in this document are identified by the trademarks of their respective companies; the authors disclaim responsibility for specifying which marks are owned by which companies. The software uses zlib © 1995-2005 Jean-Loup Gailly and Mark Adler, and Expat © 1998-2006 Thai Open Source Center Ltd. and Clark Cooper. The GWB software was originally developed by the students, staff, and faculty of the Hydrogeology Program in the Department of Geology at the University of Illinois Urbana-Champaign. The package is currently developed and maintained by Aqueous Solutions LLC at the University of Illinois Research Park. Address inquiries to Aqueous Solutions LLC 301 North Neil Street, Suite 400 Champaign, IL 61820 USA Warranty: The Aqueous Solutions LLC warrants only that it has the right to convey license to the GWB software.
    [Show full text]
  • NU-Prolog Reference Manual
    NU-Prolog Reference Manual Version 1.5.24 edited by James A. Thom & Justin Zobel Technical Report 86/10 Machine Intelligence Project Department of Computer Science University of Melbourne (Revised November 1990) Copyright 1986, 1987, 1988, Machine Intelligence Project, The University of Melbourne. All rights reserved. The Technical Report edition of this publication is given away free subject to the condition that it shall not, by the way of trade or otherwise, be lent, resold, hired out, or otherwise circulated, without the prior consent of the Machine Intelligence Project at the University of Melbourne, in any form or cover other than that in which it is published and without a similar condition including this condition being imposed on the subsequent user. The Machine Intelligence Project makes no representations or warranties with respect to the contents of this document and specifically disclaims any implied warranties of merchantability or fitness for any particular purpose. Furthermore, the Machine Intelligence Project reserves the right to revise this document and to make changes from time to time in its content without being obligated to notify any person or body of such revisions or changes. The usual codicil that no part of this publication may be reproduced, stored in a retrieval system, used for wrapping fish, or transmitted, in any form or by any means, electronic, mechanical, photocopying, paper dart, recording, or otherwise, without someone's express permission, is not imposed. Enquiries relating to the acquisition of NU-Prolog should be made to NU-Prolog Distribution Manager Machine Intelligence Project Department of Computer Science The University of Melbourne Parkville, Victoria 3052 Australia Telephone: (03) 344 5229.
    [Show full text]
  • 3.0 Installation Guide
    Oratio® 3.0 installation Guide Summary • Requirements • Installation o Installation of files o Configurating Apache o Permission on files • Installing and configurating PostgreSQL database • Installing Perl modules • Configurating the environment for JasperReports • Configurating Oratio® o First installation o Launch the Software Requirements Oratio® is an ERP distributed with GPL licence. Oratio® uses PostgresSQL database and works in CGI modality, therefore it is accessible through an internet browser. Therefore, before the use of Oratio® it is necessary to make sure yourself that the instruments used by Oratio® are present on the server where Oratio® will be installed. List of programs 1. Perl, version 5 or above (Perl) 2. An http server Apache 3. A database system PostgreSQL, version 7.4 or above 4. The following Perl Libraries: DBD-Pg and DBI, downloadable from CPAN website 5. The following Perl Libraries downloadable from CPAN website XML::Parser XML::Writer XML::Writer::String XML::Encoding HTML::Template Text::Template CGI::session Unicode::String 6. For ready to print documents: - Java JDK version 1.5 and above - "Inline" and "Inline-Java" modules - JasperReports and related libraries (included in Oratio® download) - Optional: iReport for creating and editing reports in graphic modality Installation File installation: • Decompress .tar.gz file in /usr/local folder of your Linux server: tar xzvf oratio-x.x.x.tar.gz • you can find all files in /usr/local/oratio/ folder or /var/www/oratio/ Windows only • Download oratio3-windows.zip
    [Show full text]
  • Bull System Manager Server Add-Ons Installation and Administrator's Guide
    BSM 2.1 Server Add-ons Installation and Administrator's Guide REFERENCE 86 A2 59FA 07 BSM 2.1 Server Add-ons Installation and Administrator's Guide Software June 2012 BULL CEDOC 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE REFERENCE 86 A2 59FA 07 The following copyright notice protects this book under Copyright laws which prohibit such actions as, but not limited to, copying, distributing, modifying, and making derivative works. Copyright © Bull SAS 2008-2012 Printed in France Trademarks and Acknowledgements We acknowledge the rights of the proprietors of the trademarks mentioned in this manual. All brand names and software and hardware product names are subject to trademark and/or patent protection. Quoting of brand and product names is for information purposes only and does not represent trademark misuse. The information in this document is subject to change without notice. Bull will not be liable for errors contained herein, or for incidental or consequential damages in connection with the use of this material. Table of Contents Preface.........................................................................................................................................................ix Intended Readers.........................................................................................................................ix Highlighting Conventions .............................................................................................................ix Related Publications......................................................................................................................x
    [Show full text]
  • End-To-End Perl Solutions
    END-TO-END PERL SOLUTIONS: ACTIVEPERL AND KOMODO IDE FOR PERL MILLIONS OF DEVELOPERS TRUST PERL FOR COMPUTATIONAL AND INTEGRATION TASKS— SYSTEM ADMINISTRATION, SCRIPTING, RUNNING DATABASE APPLICATIONS, AND MORE As an open source programming language, Perl immedi- FAIL-SAFE ACTIVEPERL FOR BUSINESS AND ately reduces up-front project costs. However, Perl alone MISSION-CRITICAL APPLICATIONS may not help you meet your business goals. With ActiveState commercial-grade technical support and consulting you don’t need to depend on overworked Like most open source projects, Perl isn’t quality assured internal resources or public Perl communities to solve or commercially supported. So, it may not be safe for development issue. business or mission-critical applications that must run effectively daily, weekly, even hourly. Don’t let Perl be a ActivePerl Enterprise Edition is designed for busi- point of failure for your internal systems and cost your nesses with large Perl deployments in essential, mission- business in lost revenue. Or worse, don’t let it compro- critical applications that, when down, could cost your mise relationships with your customers. CA, Siemens and business in lost revenue and a damaged reputation. Boeing are just a few Fortune 1000 companies that trust Deploy Perl with confidence knowing you’re using the ActiveState for end-to-end development, management most secure, enterprise-grade builds for platforms like and distribution solutions for fail-safe Perl. WORLD’S BEST PERL DISTRIBUTION “ActiveState’s trusted version of Perl has allowed us ActivePerl is the industry-standard, commercial-grade to continuously raise the bar on quality as well as Perl distribution used by millions of developers around cut the cost of expanding our product matrix.” the world for easy Perl installation and quality-assured Lawrence Backman, VP at CA code.
    [Show full text]
  • Bachelorarbeit
    BACHELORARBEIT Realisierung von verzögerungsfreien Mehrbenutzer Webapplikationen auf Basis von HTML5 WebSockets Hochschule Harz University of Applied Sciences Wernigerode Fachbereich Automatisierung und Informatik im Fach Medieninformatik Erstprüfer: Prof. Jürgen K. Singer, Ph.D. Zweitprüfer: Prof. Dr. Olaf Drögehorn Erstellt von: Lars Häuser Datum: 16.06.2011 Einleitung Inhaltsverzeichnis 1 Einleitung ................................................................................................................. 5 1.1 Zielsetzung ..................................................................................................... 5 1.2 Aufbau der Arbeit ........................................................................................... 6 2 Grundlagen .............................................................................................................. 8 2.1 TCP/IP ............................................................................................................ 8 2.2 HTTP .............................................................................................................. 9 2.3 Request-Response-Paradigma (HTTP-Request-Cycle) .............................. 10 2.4 Klassische Webanwendung: Synchrone Datenübertragung ....................... 11 2.5 Asynchrone Webapplikationen .................................................................... 11 2.6 HTML5 ......................................................................................................... 12 3 HTML5 WebSockets .............................................................................................
    [Show full text]