在Perl中将字符串转换为字符数组的最短方法是什么?

在Perl中将字符串转换为字符数组的最短方法是什么?,perl,Perl,如果我有字符串“abcd”,那么在含有qw(a b c d)的@arr中转换的最短方法是什么?最简单的方法是使用匹配任何内容的正则表达式进行拆分 my @arr = split //, "abcd"; 另一个问题可能是,为什么需要将字符串拆分为字符数组?对于其他语言中需要字符数组的大多数内容,有一个函数可以避开Perl中需要的步骤。我想在索引中提取任何字符,就像在任何表达式中提取数组一样使用substr,但是要小心抓取整个图形而不是单个代码点。您需要的函数称为substr(长度为1):subs

如果我有字符串“abcd”,那么在含有qw(a b c d)的@arr中转换的最短方法是什么?

最简单的方法是使用匹配任何内容的正则表达式进行拆分

my @arr = split //, "abcd";

另一个问题可能是,为什么需要将字符串拆分为字符数组?对于其他语言中需要字符数组的大多数内容,有一个函数可以避开Perl中需要的步骤。我想在索引中提取任何字符,就像在任何表达式中提取数组一样使用substr,但是要小心抓取整个图形而不是单个代码点。您需要的函数称为substr(长度为1):
substr(STRING,INDEX,1)
谢谢,但是如果我想要字符串“abcd”中的第二个字符,那么我将在表达式中编写:((split/.“abcd”)[1])。能比这简单吗?在函数的情况下:to_arr($str)[2]可能稍短一些?@user656848,
substr(“abcd”,1,1)
@user656848,
to_arr($str)[2]
无效,使用了错误的索引。你需要
(to_arr($str))[1]
。它被称为“列表片”。@user656848:如果您只需要第二个字符,那么为什么要询问如何将字符串转换为字符数组?@user656848:使用
substr
可以在任何索引中获得单个字符,而无需将字符串转换为数组。这也比将字符串切碎,将单个字符存储在内存中,然后扔掉除一个字符以外的所有字符要有效得多。然后,我需要像你的例子科林一样,用偏执论进行大量的包装。我认为使用像to_arr($str)[index]这样的函数会更简单。
my @arr = split //, "abcd";