将单个元素数组转换为字符串,并在 Perl 中的字符串之前添加点
Convert single element array to string with dot added before the string in Perl
我有一个只有一个元素的数组
我正在尝试将该数组元素转换为字符串,并在字符串前添加一个点
my $string = [ 'text' ];
my $convert_str = join(".", @$string);
print $convert_str;
预期的输出应该是
.text
我得到的输出没有点:
text
我本人不了解 Perl,如有错误,请提前致歉。
使用 join 仅对 2 个或更多元素的数组“起作用”,并且分隔符将插入元素之间。例如
my $string = [ 'text', 'another' ];
my $convert_str = join(".", @$string);
print $convert_str;
会给出结果text.another
如果数组中只有 1 个元素,并且想在其前面添加一个点,则可以按如下方式完成
my $string = [ 'text' ];
my $convert_str = "." . $string->[0];
print $convert_str;
在这里,我使用 $string->[0]
访问数组的第一个元素,并使用 .
连接点并将其放在字符串前面。
documentation for join()
是这样说的:
join EXPR,LIST
Joins the separate strings of LIST into a single string with fields separated by the value of EXPR, and returns that new string.
因此您需要向它传递一个字符串列表,它会在列表的元素之间插入 EXPR。您有一个包含一项的列表,因此 EXPR 无处可去,您的字符串未更改。
您可以通过在字符串中添加点来添加点。
my $convert_str = ".$string->[0]";
print $convert_str;
我有一个只有一个元素的数组
我正在尝试将该数组元素转换为字符串,并在字符串前添加一个点
my $string = [ 'text' ];
my $convert_str = join(".", @$string);
print $convert_str;
预期的输出应该是
.text
我得到的输出没有点:
text
我本人不了解 Perl,如有错误,请提前致歉。
使用 join 仅对 2 个或更多元素的数组“起作用”,并且分隔符将插入元素之间。例如
my $string = [ 'text', 'another' ];
my $convert_str = join(".", @$string);
print $convert_str;
会给出结果text.another
如果数组中只有 1 个元素,并且想在其前面添加一个点,则可以按如下方式完成
my $string = [ 'text' ];
my $convert_str = "." . $string->[0];
print $convert_str;
在这里,我使用 $string->[0]
访问数组的第一个元素,并使用 .
连接点并将其放在字符串前面。
documentation for join()
是这样说的:
join EXPR,LIST
Joins the separate strings of LIST into a single string with fields separated by the value of EXPR, and returns that new string.
因此您需要向它传递一个字符串列表,它会在列表的元素之间插入 EXPR。您有一个包含一项的列表,因此 EXPR 无处可去,您的字符串未更改。
您可以通过在字符串中添加点来添加点。
my $convert_str = ".$string->[0]";
print $convert_str;