$nombre = 1;
1
$nombre = $nombre + 10;
11
$chaine = "nombre : ";
nombre :
$chaine = $chaine.$nombre;
nombre : 11
chop($chaine);
1
print $chaine
nombre : 1
1
Explication des différentes réponses possibles pour le MCQ
nombre : 11
: pas de prise en compte de chop
nombre : 1
: réponse correcteombre : 11
: mauvaise interprétation de chop
nombre :
: pas de prise en compte de la concaténation des chaines de caractères et des nombres$nombre= 12;
12
$chaine = ($nombre+1)." ".($nombre+2);
13 14
@tab = ($nombre, ($chaine,$chaine));
1213 1413 14
print $tab[1];
13 14
1
Explication des différentes réponses possibles pour le MCQ
$chaine
: pas de prise en compte de l'applatissement des tableaux imbriqués$chaine
: réponse correcte$nombre
: oubli du début des index d'un tableau à 0%hash = ("id1" => 1, "id2" => "chaine");
id11id2chaine
$id = "id";
id
$hash{$id} = "je ne sais pas";
je ne sais pas
@tab = each(%hash);
id11
@tab = each(%hash);
id2chaine
print $tab[1];
chaine
1
Explication des différentes réponses possibles pour le MCQ
id2
: mauvaise interprétation de each
1
: pas prise en compte du changement d'état à chaque fois que each
est appeléchaine
: réponse correct$c1 = "chaine";
chaine
$t = $c1 eq "chaine2";
if ( $t ){
print "1";
}elsif ( 1 < 10 & 2 > 3 ){
print "2";
}elsif ( 2 | "0" ){
print "3";
}else{
print "4";
}
3
1
Explication des différentes réponses possibles pour le MCQ:
1
: mauvaise interprétation du test d'égalité de 2 chaines2
: mauvaise interprétation du &
3
: bonne réponse4
: mauvaise interprétation du |
ou des booléens@liste = ("2","22", "10", "100")
22210100
foreach $_ (@liste)
{
print $_;
if ( $_ lt "20"){
$_ = $_ + 1;
}
print " ".$_;
print "\n";
}
2 3 22 22 10 11 100 101
Explication des différentes réponses possibles pour le MCQ:
2 22 11 100
: pas compréhension de 100
< 20
3 22 11 101
: bonne réponse2 22 10 100
: pas d'ajout de 1 aux valeurs inférieures à 202 23 10 100
: pas bonne interprétation de lt
Explication des différentes réponses possibles pour le MCQ:
if -s file {open(FILE, ">file"); write("text"); close(FILE) }
: >>
pour ajouter à un fichierif -z file {open(FILE, ">>file"); write("text"); close(FILE) }
: z
teste si un fichier est videif -w file {open(FILE, ">>file"); write("text"); close(FILE) }
: w
teste les droits en écritureif -s file {open(FILE, ">>file"); write("text"); close(FILE) }
: réponse correctemy $v = '"cette" chaine';
if( $v =~ m/^"([a-z]{4,})",/ ) {
print "$1\n";
}
my $v = '"celle",ci';
if( $v =~ m/^"([a-z]{4,})",/ ) {
print "$1\n";
}
celle
1
my $v = 'et "celle",la';
if( $v =~ m/^"([a-z]{4,})",/ ) {
print "$1\n";
}
my $v = '"ou",elle';
if( $v =~ m/^"([a-z]{4,})",/ ) {
print "$1\n";
}
Explication des différentes réponses possibles pour le MCQ:
"cette" chaine
: oubli de la ,
"celle",ci
: réponse correctecelle",la
: "
pas en première position"ou",elle
: pas 4 lettresmy $a = 3;
sub fonction{
my ($a) = @_;
return ($a+2,$a+1);
}
my ($b,$a) = fonction($a+2);
76
Explication des différentes réponses possibles pour le MCQ:
3
: pas de prise en compte de la fonction4
: pas de prise en compte de $a+2
dans l'appel5
: pas de prise en compte de $a+1
dans return6
: réponse correcte7
: récupération de la mauvaise variable de sortie