3

このコードの結果について混乱しています。

my @lines;
for (my $count = 0; $count < 3; $count++) {

    print "Give me input again ";
    chomp (my $line = <STDIN>);
    $lines[$count] = $line;
}

$" = "|";
print "@lines\n";

コードを実行すると、これはどのように機能し $" = "|";ますか?結果はOne|Two|Threeです。「|」を配置するようにコードはどのように機能しますか 各入力の間?

4

2 に答える 2

8

これは、配列を二重引用符で囲まれた文字列に補間することです。

"$foo\n"

と同じです

$foo . "\n"

"@lines\n"

と同じです

join($", @lines) . "\n"

これは、perldataおよびperlvarに文書化されています。

于 2012-09-03T03:03:07.443 に答える
3

$"は、二重引用符で囲まれた文字列コンテキストで配列要素を分離する方法をインタプリタに指示する、perlの単なる特別な変数名です。デフォルト値はスペースですが、上記のコードはperlに|代わりに使用するように指示しています。したがって、その行を省略した場合One|Two|Threeのデフォルトの代わりにOne Two Three

詳細については、 http://perldoc.perl.org/perlvar.html#General-Variablesを参照してください。

于 2012-09-03T02:51:09.213 に答える