Bloc-Notes dédié à perl
UTF-8
Forcer l'UTF-8 sur un scalaire :
if (! utf8::is_utf8($message)) {
utf8::decode($message);
}
Créer un fichier en UTF8
open FILE
, ">:utf8", $filename;
Ecrire dans la console en UTF8
Référence d'un scalaire
Type d'une variable
Trimming
#!/usr/bin/perl
# Declare the subroutines
sub trim($);
sub ltrim($);
sub rtrim($);
# Create a test string
my $string = " \t Hello world! ";
# Here is how to output the trimmed text "Hello world!"
print trim
($string).
"\n";
print ltrim
($string).
"\n";
print rtrim
($string).
"\n";
# Perl trim function to remove whitespace from the start and end of the string
sub trim($)
{
$string =~ s/^\s+//;
$string =~ s/\s+$//;
}
# Left trim function to remove leading whitespace
sub ltrim($)
{
$string =~ s/^\s+//;
}
# Right trim function to remove trailing whitespace
sub rtrim($)
{
$string =~ s/\s+$//;
}
Méthode AUTOLOAD
{
sub new {
...
}
sub AUTOLOAD {
my $name = $AUTOLOAD;
$name =~ s/.*:://;
if (@_) {
}
}
}
my $test=new Test;
$test->toto(12); # Créé automatiquement par l'autload
Exportation de constantes
use strict;
use warnings;
use constant C1 => 1;
use constant C2 => "coucou";
our(@ISA, @EXPORT);
1;
Et à l'extérieur, utilisation des constantes :
La ligne @ISA = qw(Exporter) définit un héritage (au sens objet) de la classe Exporter vers la classe constante. Donc si l'on joue à cela dans un objet qui hérite d'une autre classe on a un héritage multiple. Pour éviter les conflits avec SUPER, placer le "véritable" héritage en tête de liste qw(MonHeritage Exporter).
Chargement dynamique d'un module
my @modules=("Module1","Module2");
my @instances={};
for (@modules) {
$instances[scalar(@instances)]=$_->new;
}
Flush stdout
....
STDOUT->flush();
STDOUT->flush();
Poster un nouveau commentaire