Simon Cozens の Beginning Perl によると、\n は Windows の Perl でサイレント プリントを追加することになっています。これは、私が見つけたほとんどのスクリプトで当てはまります。ただし、私にはわからない理由により、Perl は次の例で \n を認識できません。どうやら括弧の使用法と関係があるようですが、違いを理解するための情報はあまり見つかりませんでした。
スクリプト1
#!usr/bin/perl
#ranges.pl
use warnings;
use strict;
print reverse (1 .. 6), "\n";
出力は
654321
<--
c:\Users\Brenden\desktop\begperl
私にとって \n は Perl によって読み取られ、新しいスペースに導かれました。今
スクリプト2
#!usr/bin/perl
#ranges.pl
use warnings;
use strict;
print reverse (1 .. 6), "\n";
print reverse qw(1 2 3 4 5 6), "\n";
出力は
654321
<--
654321
C:Users\Brenden\Desktop\Begperl>
私には、2 つの「\n」引数があるため、2 つのスペースが必要です。1つしか見えません。
スクリプト3
#!usr/bin/perl
#ranges.pl
use warnings;
use strict;
print reverse (1 .. 6), "\n";
print "\n";
出力は
654321
<--
<--
C:\\Users\Brenden\Desktop\Begperl
2 つのスペースが作成されるため、Perl は 2 つのスペースを 1 つに絞りません。したがって、script2 で 2 つの「654321」の間に作成されたスペースは、最初の「\n」が原因で、2 番目の「\n」は無視された可能性があります。スクリプト 2 で 2 番目の「\n」が無視されない場合、出力は次のいずれかになります。
654321
<--
654321
<--
C:\\Users\Brenden\Desktop\Begperl
また
654321
<--
<--
654321
C:\\Users\Brenden\Desktop\Begperl
ここで、2 番目の印刷にブラケットを追加するとします。
スクリプト4
#!usr/bin/perl
#ranges.pl
use warnings;
use strict;
print reverse (1 .. 6), "\n";
print reverse (qw(1 2 3 4 5 6)), "\n";
出力が表示されます
654321
654321
<--
C:Users\Brenden\Desktop\Begperl>
この出力の最初の「\n」はどうなりますか?? 私への唯一の説明は、「654321」とスペース(順序に関係なく)を含む次のプリントアウトによってスペースが占有されることです。しかし、この説明は正しくないようです。私には、それが qw( 1 2 3 4 5 6 ) または (qw(1 2 3 4 5 6),"\n") が逆に渡されたかどうかにかかわらず、スクリプト 2,3,4 ではまだ 2 が表示されないはずです「\n」が反転しているかどうかに関係なく、スペースはありますか?