Changes between Version 15 and Version 16 of PerlInitiation


Ignore:
Timestamp:
Jul 3, 2006, 1:05:10 AM (14 years ago)
Author:
Vincent Caron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PerlInitiation

    v15 v16  
    5858 * Expressions, blocs, commentaires
    5959 * Quoting: guillemets, apostrophes
     60 * Heredocs
    6061
    6162
     
    127128print foreach @hello;
    128129}}}
     130 * Trier une liste:
     131{{{
     132@triee = sort @liste;
     133@triee = sort { ! $a <=> $b } @liste;
     134}}}
     135 * Filtrer une liste:
     136{{{
     137@selection = grep { $_ > 10 } @liste;
     138}}}
     139 * Transformer les éléments d'une liste (vers une autre liste):
     140{{{
     141@resultat = map { $_ * 2 } @liste;
     142}}}
    129143
    130144=== Manipulation des hashes ===
     
    163177foreach (@lines) { last if $_ eq ''; print; }
    164178}}}
     179
     180
     181== 7. Gestion des fichiers ==
     182
     183 * Numéroter les lignes d'un fichier:
     184{{{
     185$line = 0;
     186$line++, print "$line $_" while (<STDIN>);
     187}}}
     188 * Ouvrir un fichier explicitement (en lecture):
     189{{{
     190open(SOURCE, "<source.txt");
     191while (<SOURCE>) { ... }
     192close(SOURCE);
     193}}}
     194 * Ouvrir un fichier explicitement (en écriture):
     195{{{
     196open(SORTIE, ">sortie.txt");
     197print SORTIE "Contenu du fichier ...";
     198close(SORTIE);
     199}}}
     200 * Influence de la variable ```$/``` sur ```<FILE>```
     201 * PerlIO avancé (important sous Windows): binmode, CRLF
     202
     203
     204== 8. Expressions régulières ==
     205
     206* Recherche d'un mot dans la chaîne:
     207{{{
     208print "Trouvé" if $a =~ m/hello/;
     209}}}
     210* Recherche d'un mot dans la chaîne (insensible à la casse):
     211{{{
     212print "Trouvé" if $a =~ m/hello/i;
     213}}}
     214* Egalité simple sur toute la chaîne:
     215{{{
     216print "Egal" if $a =~ m/^Hello world!$/;
     217}}}
     218* Extraction d'un nombre:
     219{{{
     220print "Premier nombre lu: $1" if /([0-9]+)/;
     221print "Premier nombre lu: $1" if /(\d+)/;
     222}}}
     223* Remplacer un mot par un autre (plusieurs fois si nécessaire):
     224{{{
     225$a =~ s/un mot/par un autre/g;
     226}}}
     227* Règles générales
     228* Expressions régulières 'Perl' et 'POSIX' (sed, awk, etc.)
     229
     230
     231== 10. Quelques programmes ==
     232
     233 * Le corps d'un programme respectant les canons d'une comande Unix:
     234{{{
     235#!/usr/bin/perl -w
     236
     237# Savebox, a backup tool dedicated to SMB share backup.
     238# Copyright (C) 2005,2006 Bearstech - http://www.bearstech.com
     239#
     240# This program is free software; you can redistribute it and/or modify
     241# it under the terms of the GNU General Public License as published by
     242# the Free Software Foundation; either version 2 of the License, or
     243# (at your option) any later version.
     244#
     245# This program is distributed in the hope that it will be useful,
     246# but WITHOUT ANY WARRANTY; without even the implied warranty of
     247# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     248# GNU General Public License for more details.
     249#
     250# You should have received a copy of the GNU General Public License
     251# along with this program; if not, write to the Free Software
     252# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     253
     254use Getopt::Long;
     255use strict;
     256
     257my $program = "perl_template";
     258my $version = "3.1416-beta";
     259
     260my $opt_help    = 0;
     261my $opt_version = 0;
     262
     263GetOptions(
     264  'help|h'        => \$opt_help,
     265  'version|v'     => \$opt_version,
     266) || print_short_help();
     267
     268print_help() if $opt_help;
     269print_version() if $opt_version;
     270
     271print "You should program something useful here.\n";
     272exit(0);
     273
     274sub print_help {
     275  print <<EOF;
     276This is a template program which does actually nothing.
     277
     278Usage: $program [options]
     279
     280Options:
     281  -h, --help            Display this help and exit
     282  -v, --version         Display version information and exit
     283EOF
     284  exit 0;
     285}
     286
     287sub print_short_help {
     288  print STDERR "Try '$program --help' for more information.\n";
     289  exit 1;
     290}
     291
     292sub print_version {
     293  print "$program $version - Copyright 2005,2006 Bearstech\n";
     294  exit 0;
     295}
     296}}}
     297   * perl -w
     298   * use strict
     299   * Meta-information: nom du programme(!), version, auteur, date, licence
     300   * Utilisation du module Getopt::Long
     301   * Documentation