Quel est l'équivalent Perl de strlen()
?
perldoc -f longueur longueur EXPR longueur Renvoie la longueur en caractères de la valeur de EXPR. Si EXPR est Omis, renvoie la longueur de $ _. Notez que cela ne peut pas être utilisé sur un tableau ou un hachage entier de Pour connaître le nombre d'éléments. Pour , Utilisez respectivement "scalar @array" et "scalar keys% hash". Notez les caractères: si l'EXPR est en Unicode, vous obtiendrez le numéro nombre de caractères, pas le nombre d'octets. Pour obtenir la longueur en Octets, utilisez "do {use bytes; length (EXPR)}", voir octets.
Bien que 'length ()' soit la bonne réponse qui devrait être utilisée dans n'importe quel code sain d'esprit, horreur de la longueur d'Abigail doit être mentionné, ne serait-ce que pour le bien de Perl.
Fondamentalement, l'astuce consiste à utiliser la valeur de retour de l'opérateur de translittération fourre-tout:
print "foo" =~ y===c; # prints 3
y /// c remplace tous les caractères par eux-mêmes (grâce à l'option complémentaire 'c'), et renvoie le nombre de caractères remplacés (donc, effectivement, la longueur de la chaîne).
length($string)
La fonction length()
:
$string ='String Name';
$size=length($string);
Vous ne devriez pas utiliser cela, car la longueur ($ string) est plus simple et plus lisible, mais je suis tombé sur certains d'entre eux en parcourant le code et j'étais confus, donc au cas où quelqu'un d'autre le ferait, ceux-ci obtiennent également la longueur d'une chaîne:
my $length = map $_, $str =~ /(.)/gs;
my $length = () = $str =~ /(.)/gs;
my $length = split '', $str;
Les deux premiers fonctionnent en utilisant l'indicateur global pour faire correspondre chaque caractère de la chaîne, puis en utilisant la liste de correspondances retournée dans un contexte scalaire pour obtenir le nombre de caractères. Le troisième fonctionne de la même manière en divisant chaque caractère au lieu de correspondre à des expressions rationnelles et en utilisant la liste résultante dans un contexte scalaire