Si j'ai une chaîne Perl:
$str = "Hello";
comment puis-je obtenir un caractère à un index donné similaire à charAt (index)?
Utilisez substr
de longueur 1 comme dans:
$nth = substr($string, n-1, 1);
Recherchez également perlmonks pour d'autres solutions.
$char = substr( $mainstring, $i , 1 );
Est-ce une façon de le faire, probablement la plus claire.
Si ce que vous vouliez était la valeur numérique et que vous aviez l'intention de faire ceci:
unpack("W*","hello")
Renvoie un tableau de valeurs Char:
print join ",", unpack("W*","hello") ;
# 104,101,108,108,111
Pour des trucs Unicode/Utf8 appropriés que vous voudrez peut-être utiliser
use utf8;
unpack("U*","hello\0ƀ\n")
# 104,101,108,108,111,0,384,10
Le corollaire des autres réponses substr () est que vous pouvez également l'utiliser pour définir les valeurs d'un index. Il prend cela en charge comme lvalue ou avec des arguments supplémentaires. Il est également très similaire à l'épissure, qui est la même chose, mais pour les tableaux.
$string = "hello";
substr($string, 2, 2) = "this works?";
substr($string, 2, 2, "same thing basically");
@a = qw(s t r i n g s a n d t h i n g s);
@cut_out = splice(@a, 2, 2);
@cut_out = splice(@a, 2, 2, @replacement);