Ответ 1
Используйте substr
с длиной 1, как в:
$nth = substr($string, n-1, 1);
Также найдите perlmonks для других решений.
Если у меня есть строка Perl:
$str = "Hello";
как я могу получить символ с заданным индексом, похожим на charAt (index)?
Используйте substr
с длиной 1, как в:
$nth = substr($string, n-1, 1);
Также найдите perlmonks для других решений.
$char = substr( $mainstring, $i , 1 );
Один из способов сделать это, возможно, самый ясный.
Если то, что вы хотели, было числовым значением, и вы намеревались сделать это:
unpack("W*","hello")
Возвращает массив значений Char:
print join ",", unpack("W*","hello") ;
# 104,101,108,108,111
Для правильного материала Unicode/Utf8 вы можете использовать
use utf8;
unpack("U*","hello\0ƀ\n")
# 104,101,108,108,111,0,384,10
Следствием других ответов substr() является то, что вы также можете использовать его для установки значений в индексе. Он поддерживает это как lvalue или с дополнительными аргументами. Он также очень похож на сращивание, что то же самое, но для массивов.
$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);