Quattor Documentation Release 0.0.1

Total Page:16

File Type:pdf, Size:1020Kb

Quattor Documentation Release 0.0.1 Quattor Documentation Release 0.0.1 Quattor Community Oct 30, 2018 Contents 1 Content 3 i ii Quattor Documentation, Release 0.0.1 This is the official documentation for Quattor: • configuration-modules-core • configuration-modules-grid • CAF • CCM • Unit Testing Also see the Quattor homepage for more information. Contents 1 Quattor Documentation, Release 0.0.1 2 Contents CHAPTER 1 Content 1.1 CAF 1.1.1 Common Application Framework This is the Perl Common Application Framework (CAF) for Quattor. It is a library encapsulating most annoying details like reporting, file handling or command executions. It gives a unified way of doing potentially dangerous things in the right way. 1.1.2 Applicability Quattor developers must use modules here for: • Executing commands (see CAF::Process). • Manipulating files (see CAF::FileWriter and CAF::FileEditor). • Reporting. Most likely, your code receives a $self object that provided CAF’s interfaces. 1.1.3 Content Application NAME CAF::Application - Common Application Framework core class 3 Quattor Documentation, Release 0.0.1 SYNOPSIS package example; use strict; use warnings; use LC::Exception qw (SUCCESS throw_error); use parent qw(CAF::Application); <extend/overwrite default methods here...> # Main loop package main; use strict; use warnings; use LC::Exception qw (SUCCESS throw_error); use vars ($this_app%SIG); unless ($this_app= example->new($0,@ARGV)) { throw_error (...); } $this_app->report("Hello"); ... DESCRIPTION CAF::Application is the core class which provides command line and configuration file parsing, and general applica- tion methods. Applications can extend or overwrite the default methods. Public methods name(): string Return the application name (basename) version(): string Returns the version number as defined in $self->{‘VERSION’}, or <unknown> if not defined. hostname(): string Returns the machine’s hostname. username(): string Returns the name of the user. option_exists($opt): boolean Returns true if the option exists, false otherwhise. Option can be defined either in the application config- uration file or on the command line (based on AppConfig module). option($opt): scalar|undef 4 Chapter 1. Content Quattor Documentation, Release 0.0.1 Returns the option value coming from the command line and/or configuration file. Scalar can be a string, or a reference to a hash or an array containing the option’s value. option() is a wrapper on top of AppConfig->get($opt). If the option doesn’t exist, returns undef, except if the defaultargument has been specified: in this case this value is returned but the option remains undefined. set_option($opt, $val): SUCCESS Defines an option and sets its value. If the option was previously defined, its value is overwritten. This is a wrapper over AppConfigmethods to hide the internal implementation of a CAF::Application. This method always returns SUCCESS. show_usage(): boolean Prints the usage message of the command based on options and help text. show_version(): boolean prints the version number of the Application. app_options(): ref(array) to be overloaded by the application with application specific options. This function has to return a reference to an array. Every element in the array must be a reference to a hash with the following structure: NAME=> option name specification in the Getopt::Long(3pm) format "name|altname1|altname2|..[argument_type]" DEFAULT=> [optional] default value (string). If not specified: undef HELP=> help text (string) example: push(@array, {NAME=>'M|myoption=s', DEFAULT=>'defaultvalue', HELP=>'do somewhat on something'}); return \@array; see also _app_default_options() Private methods _initialize Initialize the Application. Arguments $command Name of the script/command/. (typically $0). Remaining arguments @argv Typically this is the perl builtin variable @ARGV, but can be any array of options/arguments, or a single arrayref (in which case all elements of the arrayref are handled as options/arguments). Any arguments that are not handled by the options, can be retrieved either via @ARGV or by passing an arrayref holding the options/arguments. In these 2 cases, the contents is modified, 1.1. CAF 5 Quattor Documentation, Release 0.0.1 removing all handled options, leaving the non-option arguments in place. (In particular, using a regular array will leave the original array unmodified). _app_default_options This method specifies a number of default options, with the same format as app_options. The options are: debug <debuglevel> : sets debug level (1 to5) help : prints out help message quiet : no output verbose : verbose output version : print out version number& exit The ‘noaction’, ‘cfgfile’ and ‘logfile’ options are not enabled by default but recognized (they have to be added to the application specific code - see the ‘example’ file): noaction : execute no operations cfgfile <string>: use configuration file <string> logfile <string>: use log file <string> _add_options add options coming from _app_default_options() and app_options() Download :: LWP NAME CAF::Download::LWP class to use LWP (and Net::HTTPS). DESCRIPTION CAF::Download::LWP prepares LWP (and Net::HTTPS) and provides interface to LWP::UserAgent. Remarks wrt SSL/TLS: If LWP is recent enough (v8.333, e.g. on EL6+), the choice of SSL module will be the system default (typically IO::Socket::SSL when available, Net::SSL otherwise). The usual environment variable will not be honoured (this module will typically be executed in a minimal environment anyway). When LWP is too old, Net::SSL will be forced (e.g. on EL5). If LWP is recent enough and IO::Socket::SSL is the default, hostname verification is forced. METHODS _initialize Initialize the object. Optional arguments: log A CAF::Reporter object to log to. 6 Chapter 1. Content Quattor Documentation, Release 0.0.1 _get_ua Prepare the environment and initialise LWP::UserAgent. Best-effort to handle ssl setup, Net::SSL vs IO::Socket::SSLand verify_hostname. Example usage . my $ua = $self->_get_ua(%opts); local%ENV=%ENV; $self->update_env(\%ENV); ... Returns the LWP::UserAgent instance or undef. Options cacert: the CA file cadir: the CA path cert: the client certificate filename key: the client certificate private key filename ccache: the kerberos crednetial cache timeout: set timeout _do_ua Initialise LWP::UserAgent using _get_ua method and run method with arrayref args. All named options are passed to _get_ua. Exception NAME CAF::Exception - provides basic methods for failure and exception handling Private methods _get_noaction Return NoAction setting: Return 0 is keeps_state is true Any other value of keeps_state is ignored. (In particular, you cannot use keeps_state to enable NoAction). Return value of noAction method (when defined) CAF::Object::NoAction otherwise Supports an optional msg that is prefixed to reporter. _reset_exception_fail Reset previous fail attribute and/or exception. msg is a suffix when reporting the old fail attribute and/or exception error (with debug level 1). 1.1. CAF 7 Quattor Documentation, Release 0.0.1 EC is a LC::Exception::Context instance that is checked for an existing error, which is set to ignore if it exists. Always returns SUCCESS. _function_catch Execute function reference funcref with arrayref $args and hashref $opts. Method resets any existing fail attribute and error from LC::Exception::Context instance EC. When an exception thrown is thrown, it is catched and reset. No error is reported and undef is returned in this case and the fail attribute is set with the exception error text. _safe_eval Run function reference funcref with arrayref argsref and hashref optsref. Return and set fail attribute with failmsg ($@ is added when set) on die or in case of an error (undef returned by funcref). In case of success, report msg (stringified result is added unless sensitive attribute is set) at verbose level. Note that _safe_eval doesn’t work with functions that don’t return a defined value when they succeed. Resets previous fail attribute and or exceptions (via the LC::Exception::Context instance EC). FileEditor NAME CAF::FileEditor - Class for securely making minor changes in CAF applications. DESCRIPTION This class should be used whenever a file is to be opened for modifying its existing contents. For instance, if you want to add a single line at the beginning or the end of the file. As usual, all operations may be logged by passing a log argument to the class constructor. Public methods new Returns a new object it accepts the same arguments as the constructor for CAF::FileWriter with one additional option: source This option, when present, must be a file name whose contents will be used as the initial contents for the edited file if the source modification time is more recent than the edited file modification time. This allows to rebuild the file contents based on a new version of the reference file. The source can be a pipe: in this case, it is always considered more recent than the edited file. open Synonym for new() 8 Chapter 1. Content Quattor Documentation, Release 0.0.1 set_contents Sets the contents of the file to the given argument. Usually, it doesn’t make sense to use this method directly. Just use a CAF::FileWriter object instead. head_print Appends a line to the very beginning of the file. seek_begin Seek to the beginning of the file. seek_end Seek to the end of the file. replace_lines(re, goodre, newvalue) Replace any lines matching re but *not* goodre with newvalue. If there is no match, nothing will be done. For instance, $fh->replace(qr(hello.*), qr(hello.*world), 'hello and good bye, world!') Will replace all lines containing ‘hello’ but not world by the string ‘hello and good bye, world!’. But if the file contents are There was Eru, who in Arda is called Iluvatar it will be kept as is. This is useful when we want to change a given configuration directive only if it exists and it’s wrong. The regular expressions can be expressed with the qr operator, thus allowing for modification flags such as i. add_or_replace_sysconfig_lines(key, value, whence) Replace the value in lines matching the key.
Recommended publications
  • Minimal Perl for UNIX and Linux People
    Minimal Perl For UNIX and Linux People BY TIM MAHER MANNING Greenwich (74° w. long.) For online information and ordering of this and other Manning books, please visit 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. Cherokee Station PO Box 20386 Fax: (609) 877-8256 New York, NY 10021 email: [email protected] ©2007 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. Manning Publications Co. Copyeditor: Tiffany Taylor 209 Bruce Park Avenue Typesetters: Denis Dalinnik, Dottie Marsico Greenwich, CT 06830 Cover designer: Leslie Haimes ISBN 1-932394-50-8 Printed in the United States of America 12345678910–VHG–1009080706 To Yeshe Dolma Sherpa, whose fortitude, endurance, and many sacrifices made this book possible. To my parents, Gloria Grady Washington and William N. Maher, who indulged my early interests in literature. To my limbic system, with gratitude for all the good times we’ve had together.
    [Show full text]
  • Suse Linux Enterprise Server 10 Mail Scanning Gateway Build Guide
    SuSE Linux Enterprise Server 10 Mail Scanning Gateway Build Guide Written By: Stephen Carter [email protected] Last Modified 9. May. 2007 Page 1 of 96 Table of Contents Due credit.......................................................................................................................................................4 Overview........................................................................................................................................................5 System Requirements.....................................................................................................................................6 SLES10 DVD............................................................................................................................................6 An existing e-mail server..........................................................................................................................6 A Pentium class PC...................................................................................................................................6 Internet Access..........................................................................................................................................6 Internet Firewall Modifications.................................................................................................................7 Installation Summary.....................................................................................................................................8 How
    [Show full text]
  • What Is Perl
    AdvancedAdvanced PerlPerl TechniquesTechniques DayDay 22 Dave Cross Magnum Solutions Ltd [email protected] Schedule 09:45 – Begin 11:15 – Coffee break (15 mins) 13:00 – Lunch (60 mins) 14:00 – Begin 15:30 – Coffee break (15 mins) 17:00 – End FlossUK 24th February 2012 Resources Slides available on-line − http://mag-sol.com/train/public/2012-02/ukuug Also see Slideshare − http://www.slideshare.net/davorg/slideshows Get Satisfaction − http://getsatisfaction.com/magnum FlossUK 24th February 2012 What We Will Cover Modern Core Perl − What's new in Perl 5.10, 5.12 & 5.14 Advanced Testing Database access with DBIx::Class Handling Exceptions FlossUK 24th February 2012 What We Will Cover Profiling and Benchmarking Object oriented programming with Moose MVC Frameworks − Catalyst PSGI and Plack FlossUK 24th February 2012 BenchmarkingBenchmarking && ProfilingProfiling Benchmarking Ensure that your program is fast enough But how fast is fast enough? premature optimization is the root of all evil − Donald Knuth − paraphrasing Tony Hoare Don't optimise until you know what to optimise FlossUK 24th February 2012 Benchmark.pm Standard Perl module for benchmarking Simple usage use Benchmark; my %methods = ( method1 => sub { ... }, method2 => sub { ... }, ); timethese(10_000, \%methods); Times 10,000 iterations of each method FlossUK 24th February 2012 Benchmark.pm Output Benchmark: timing 10000 iterations of method1, method2... method1: 6 wallclock secs \ ( 2.12 usr + 3.47 sys = 5.59 CPU) \ @ 1788.91/s (n=10000) method2: 3 wallclock secs \ ( 0.85 usr + 1.70 sys = 2.55 CPU) \ @ 3921.57/s (n=10000) FlossUK 24th February 2012 Timed Benchmarks Passing timethese a positive number runs each piece of code a certain number of times Passing timethese a negative number runs each piece of code for a certain number of seconds FlossUK 24th February 2012 Timed Benchmarks use Benchmark; my %methods = ( method1 => sub { ..
    [Show full text]
  • Effective Perl Programming
    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]
  • Compiling Your Own Perl
    APPENDIX A Compiling Your Own Perl Compiling Perl on a Unix-like system is simple. First, obtain the source for Perl from CPAN (dppl6++_l]j*lanh*knc+on_+NA=@IA*dpih). Then input the following sequence of commands: p]nvtrblanh)1*4*4*p]n*cv _`lanh)1*4*4 od?kjbecqna)`ao i]ga i]gapaop oq`ki]gaejop]hh On most Unix systems, this code will result in your lanh being installed into the +qon+ hk_]h+ directory tree. If you want it installed elsewhere—for example, in the local directory in your home directory—then replace od?kjbecqna)`a with the following: od?kjbecqna)`ao)@lnabet9z+hk_]h+ which should enable you to install Perl on your computer without root access. Note that the )`ao flag uses all the default options for compiling Perl. If you know that you want nonstandard configuration, just use the flag )`a instead to be prompted for your requirements. Be aware that the source for Perl 5.10.0 requires a patch to work properly with Catalyst. This is fixed in subsequent versions of Perl 5.10. If you need to test code guaranteed to run on a wide range of systems, you should con- sider using Perl version 5.8.7. Perl versions greater than 5.8.7 contain features that were not available in earlier versions of Perl, so Perl 5.8.7 is feature complete for all versions of Perl that Catalyst will run on (version 5.8.1 and later). Put another way, versions 5.8.8 and later have new features that you can’t rely on in earlier releases.
    [Show full text]
  • Overview Postfix Is a Mail Transport Agent Written by Security Researcher
    Internet Mail Local Mail Web Based smtpd Anti - Spam Control Panel on port 25 pickup (Apache - PHP) with Anti UCE MySQL smtpd Interface cleanup on port 1025 Postfix LMTP Queue qmgr Perl DBI Amavisd-new on port 1024 smtp local Unix Socket mailbox Perl Module Cal Clamav LMTP=Local Mail Transfer Protocol SMTP=Simple Mail Transfer Protocol smtpd=Simple Mail Transfer Protocol Daemon qmgr=Queue Manager Overview Postfix is a mail transport agent written by security researcher Wietse Venema. Not surprisingly, Postfix is designed from the ground up to be a highly secure system. It consists of several components, each of which runs with least privilege and none of which trust data from the other without validating it themselves. Despite the extensive security emphasis in the system's architecture, Postfix is capable of very good performance in normal conditions; because of architectural decisions, it is also fault tolerant and capable of good performance under adverse conditions such as resource starvation. Postfix supports three content inspection methods, ranging from light - weight one-line-at-a-time scanning before mail is queued, to heavy duty machinery that does sophisticated content analysis after mail is queued. Each approach serves a different purpose. The method shown in this article inspects mail AFTER it is stored in the queue, and uses standard protocols such as SMTP. After-queue inspection allows you to use content filters of arbitrary complexity without causing timeouts while receiving mail, and without running out of memory resources under a peak load. The SpamAssassin system is software for analyzing email messages, determining how likely they are to be spam, and reporting its conclusions.
    [Show full text]
  • Open Abrown Thesis May2012.Pdf
    The Pennsylvania State University The Graduate School Department of Computer Science and Engineering AN ENGINEERING APPROACH TO PERL AND RUBY OBJECT ORIENTED PROGRAMMING LANGUAGES A Thesis in Computer Science and Engineering by Angeline Brown © 2012 Angeline Brown Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science May 2012 ii The thesis of Angeline Brown was reviewed and approved* by the following: Mahmut Kandemir Professor of Computer Science and Engineering Thesis Advisor Yuan Xie Associate Professor of Computer Science and Engineering Raj Acharya Professor of Computer Science and Engineering Head of the Department of Computer Science and Engineering *Signatures are on file in the Graduate School iii ABSTRACT This study compares two object oriented programming languages, Perl and Ruby. Perl and Ruby are both extensively used scripting languages that are applied in a wide scope of modern software applications. Applications that use Perl are Amazon.com, TicketMaster.com, and Priceline.com. Applications that use Ruby are Twitter.com, YellowPages.com, and LivingSocial.com. The purpose of discussing these languages is two-fold. First, the available quantitative comparison of these languages is limited. This paper provides essential quantitative as well as qualitative analysis that can be used as a tool for future references. Secondly, this work was performed as a trade study for the implementation of a real world database application known as PennData SpecEd Application. PennData SpecEd is used to collect records of special education students from the Commonwealth of Pennsylvania student census. This comparative study focuses first on the performance and ease of programming software components using object oriented features of both Perl and Ruby.
    [Show full text]
  • Tutorials Table of Contents
    Tutorials Table of Contents: Tutorials mod_perl related tutorials, teaching you things not only about mod_perl, but also about any related topics of great interest to mod_perl programmers. Last modified Sun Feb 16 01:37:13 2014 GMT 15 Feb 2014 1 Table of Contents: Part I: Application Design - 1. Building a Large-Scale E-commerce site with Apache and mod_perl mod_perl’s speed and Perl’s flexibility make them very attractive for large-scale sites. Through careful planning from the start, powerful application servers can be created for sites requiring excel- lent response times for dynamic content, such as eToys.com, all by using mod_perl. Part II: Templating - 2. Choosing a Templating System Everything you wanted to know about templating systems and didn’t dare to ask. Well, not every- thing.... Part III: Tips and Tricks - 3. Cute Tricks With Perl and Apache Perl and Apache play very well together, both for administration and coding. However, adding mod_perl to the mix creates a heaven for an administrator/programmer wanting to do cool things in no time! Part IV: Client side facts and bugs - 4. Workarounds for some known bugs in browsers. Unfortunately for web programmers, browser bugs are not uncommon, and sometimes we have to deal with them; refer to this chapter for some known bugs and how you can work around them. - 5. Web Content Compression FAQ Everything you wanted to know about web content compression 2 15 Feb 2014 Building a Large-Scale E-commerce site with Apache and mod_perl 1 Building a Large-Scale E-commerce site with Apache and mod_perl 1 Building a Large-Scale E-commerce site with Apache and mod_perl 15 Feb 2014 3 1.1 Description 1.1 Description mod_perl’s speed and Perl’s flexibility make them very attractive for large-scale sites.
    [Show full text]
  • Packetfence Developer's Guide
    PacketFence Developer's Guide for version 3.0.2 PacketFence Developer's Guide Olivier Bilodeau Dominik Gehl Version 3.0.2 - October 2011 Copyright © 2008-2011 Inverse inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Revision History Revision 2.6 2011-10-19 OBU New documentation section points to POD doc. New Authentication modules section. Minor references that were out of date. Revision 2.5 2011-09-21 OBU Content updated to reflect latest captive portal improvements: Better templating, XHTML/CSS and streamlined reme- diation pages. Updated translation information including contributing translations. How-to develop support for Float- ing Network Devices in switches and documented controllerIp feature. Revision 2.4 2011-03-31 OBU Updated wireless hardware support instructions and checklist. Added clarifications to the MAC Auth and 802.1X support development. Revision 2.3 2011-02-10 OBU Template improvements Revision 2.2 2011-02-02 OBU Reworked new switch support into a more general new network devices support. New content: Wireless Access-Points and Controllers, Switch support for MAC Auth and 802.1X, a new "add a network device to PacketFence" checklist and new exception handling techniques. Revision 2.1 2011-02-01 OBU New content: a chapter on contributing, one on code conventions and one on developer recipes (run devel env., debug grammar).
    [Show full text]
  • Products Table of Contents
    Products Table of Contents: Products There is a lot of software out there ready to run with mod_perl and/or help you with your programming project. Last modified Sun Feb 16 01:37:58 2014 GMT 15 Feb 2014 1 Table of Contents: - 1. Apache/Perl Modules On CPAN you will be able to find a number of Perl modules created to run under mod_perl. We will give a presentation of them here and ways to get at these modules. - 2. Application Servers and Toolkits based on mod_perl There are several application servers and toolkits available designed to run under mod_perl, which might provide you with inline-Perl coding, or MVC (Model/View/Controller) frameworks. - 3. mod_perl Related Software A short list of some software, open source and commercial, based on or compatible with mod_perl, which might be interesting for anyone using mod_perl 2 15 Feb 2014 Apache/Perl Modules 1 Apache/Perl Modules 1 Apache/Perl Modules 15 Feb 2014 3 1.1 Description 1.1 Description On CPAN you will be able to find a number of Perl modules created to run under mod_perl. We will give a presentation of them here and ways to get at these modules. Apache/Perl modules are somewhat different from the many others found on CPAN (http://www.cpan.org/). Most Perl modules are "building blocks"; developers use them to build applica- tions or even more building blocks. It just so happens that Apache/Perl modules are encapsulated inside a namespace and .pm file. However, this does not make them all building blocks, many are just like Apache modules written in C: you install them, edit the server configuration files and you’re done.
    [Show full text]
  • Unless Statement in Perl
    Unless Statement In Perl Zerk remains freehold: she dematerialized her gemologists fraternizes too presciently? Countervailing and admirative Silvester still mollycoddled his anatomist deceptively. Is Piotr auditive or operculated when perplexes some grandees rejuvenized peristaltically? Syntax The syntax of concrete unless statement in Perl programming language is unlessbooleanexpression statements will slow if the human condition is. As possible to the condition is false, optionally preceded by the. Do not exists, in unless perl! Perl syntax. Perl next Statement Tutorialspoint. Perl If chaos-else and Switch Statements Tutorial Unless Statement unless-else statement if statement if-else statement and switch statements with example. This section presents a label for in unless statement can also plays hell with unless. I lord a Perl user and steel'd just never to pursuit up some confusion about Perl syntax. Perl Parse A Csv File. Do damage unless EXPR is true butcher BLOCK if EXPR is false but use elsif and abide with unless their well whileuntil loops. An array using the unless statement in perl origins of this topic variable for certain rules? One to substitution, in another email is evaluated first block will try it could execute at compile time a statement in unless to referential equality. This modifier evaluates an expression unless a has is true. The backticks around the echo JOBID tell Perl to prove the specified command in a subshell and return the output area the invoked command. This privacy notice that delimits the swiss army knife of. Perl is an iterative language in wild control flows from name first statement in the program to let last statement unless something interrupts Some show the things.
    [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]