Dans tous les scripts il y a une ligne en haut du document qui indique le type d'interpréteur qui doit être chargé au lancement du programme. Voici concernant Perl :
#!/usr/bin/perl use warnings; use strict;
print @tab; # Avec des espaces : print "@tab";
my $saisie = <STDIN>; # Supprimer le retour à la ligne : print chomp($saisie);
my $var = "string"; my @tab = ("un", 2, $var);
shift(@tab);
push(@tab, "nouveau");
pop(@tab);
scalar(@tab);
my %hash = ( "cle1" => "valeur", "cle2" => "valeur", ); print $hash{"cle2"};
for (my $i = 0; $i < @tab; $i++) { print "@tab[$i]\n"; }
foreach my $e (keys(%hash) { print "$e\n"; print "$hash{$e}\n"; }
sub ùa_fonction { print "$_[0] : $_[1]\n"; } ma_fonction("p1","p2");
open (Fichier, "<", "fichier.txt"); # Pour enregistrer tout le contenu du fichier dans une variable : my $fichier <Fichier>; # Pour analyser ligne par ligne son contenu : while(<Fichier>) { print "$_"; }
la fonction close() est facultative.
open (Fichier, ">", "fichier.txt"); print Fichier "insertion";
# Si c'est un répertoire : if ( -d "fichier.txt") {} # Si le fichier existe : if ( -e "fichier.txt") {} # Si le fichier est utilisé régulièrement : if ( -f "fichier.txt") {}
On peut s'aider du site http://Regex101/ pour créer les patterns.
my $chaine = "ma chaine"; if ($chaine =~ /ma/) { print "la chaine contient ma"; }
my $chaine = "Hellène a poussée Éléonore"; $chaine =~ s/(?!-)[[:punct::]]//g; print $chaine; Sortie> Hellne a pousse lonore
Organison notre code en deux fichiers. L'un contenant la classe et l'autre le programme principal. Ainsi on obtient quelque chose comme suit :
nano Vehicule.pm
package Vehicule; sub new { return "Nouveauté!"; } 1;
nano main.pl
#!/usr/bin/perl use warngins; use strict; use Vehicule; my $var = Vehicule->new(); print $var;
Puis en exécutant le programme on obtient :
./main.pl Nouveauté!