De la tâche. Dans le code Perl programme, il ya un tableau de @arr
(les trois premières lettres du mot "array"). Dans ce tableau ont des valeurs.
Besoin de savoir combien dans ce tableau contient des éléments.
Il ya plusieurs façons de résoudre ce problème.
Si utiliser un tableau dans скалярном le contexte, c'est la valeur qu'à être le nombre d'éléments dans le tableau:
my $number_of_elements = scalar(@arr);
▶ Run
my @arr = ('one', 'two', 'three');
print scalar(@arr);
Le programme affiche le nombre de 3.
Scalaire contexte, vous pouvez obtenir non seulement avec l'aide de scalar()
, mais avec quelque chose en plus, l'opération arithmétique, ce qui ne change pas le nombre, par exemple, d'ajouter/enlever un zéro ou de multiplier/diviser par unité:
my $number1 = @arr + 0;
my $number2 = @arr - 0;
my $number3 = @arr * 1;
my $number4 = @arr / 1;
Une autre façon de déterminer la longueur du tableau est d'utiliser une variable qui est associée à ce tableau et qui contient le numéro du dernier élément. Si le tableau est appelé à @arr
, cette variable sera appelé $#arr
. Le premier élément en Perl tableau porte le numéro 0, de sorte que pour obtenir le nombre d'éléments, vous avez besoin de cette variable ajouter 1.
my $number_of_elements = $#arr + 1;
N'importe quelles valeurs contenues dans le tableau. Il ya peut-être comme une simple chaîne de caractères et des nombres, et des structures complexes.
Si le tableau contient la valeur undef, ils sont également considérés. Voici un exemple d'un tableau dans lequel se trouvent les 4 éléments:
my @arr = (1, undef, 3, undef);
Voici un exemple de programme. Le programme affiche le nombre de 1 et peut être faux de supposer que length()
appliqué à un tableau et renvoie le nombre d'éléments qu'il contient.
▶ Run
my @arr = ('one');
print length(@arr);
Mais c'est une hypothèse erronée. Pour le vérifier, vous pouvez vérifier que pour le tableau my @arr = ('one', 'two', 'three')
length()
tout retourne 1.
length()
appliquée à un tableau renvoie le nombre d'éléments et le nombre de chiffres dans le nombre d'éléments. Si le tableau contient 9 ou moins d'éléments, length(@arr)
retourne 1 si le tableau contient de 10 à 99 éléments, length(@arr)
sera de retour 2 et ainsi de suite.