我有一個包含一個元素的陣列
我正在嘗試將該陣列元素轉換為在字串之前添加點的字串
my $string = [ 'text' ];
my $convert_str = join(".", @$string);
print $convert_str;
預期的輸出應該是
.text
我得到沒有點的輸出:
text
uj5u.com熱心網友回復:
如果我有什么問題,我自己不知道 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]用于訪問陣列的第一個元素.并將點連接起來并將其放在字串的前面。
uj5u.com熱心網友回復:
的檔案是join()這樣說的:
join EXPR,LIST
將 LIST 的單獨字串連接成一個字串,其中欄位由 EXPR 的值分隔,并回傳該新字串。
所以你需要給它傳遞一個字串串列,它會在串列的元素之間插入 EXPR。你有一個包含一個專案的串列,所以 EXPR 無處可去,你的字串也沒有改變。
您可以通過將點添加到字串來添加點。
my $convert_str = ".$string->[0]";
print $convert_str;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425565.html
