$/="" は、Perl に段落を読み取るように指示するために使用されます。段落は、2 つ以上の改行で構成されるテキストのブロックです。これは、2 行からなるテキストのブロックのみを読み取る「nn」への設定とは異なります。この場合、問題が発生します。「textnnnn」などの連続した空白行がある場合、それを 1 つの段落 (「text」) または 2 つの段落 (「text」 " の後に 2 つの改行と 1 つの段落が続く) として解釈できます。空の段落、その後に 2 つの空白行が続きます。)
2 番目の説明は、テキストを読むときにはほとんど役に立ちません。読んでいる段落が上記の状況に該当する場合、「空の」段落をフィルターで除外する必要はありません。
$/="nn";
while(){
chomp;
nextunlesslength;#空のセグメントをスキップ
#...
}
$/ を undef に設定でき、読み取りに使用します2 つ以上の改行文字が続く段落: undef$/;
while(){
chomp;
#...
}
ファイル全体を読み取ります
$/ 他の興味深い値は undef です。この値に設定すると、読み取りコマンドがファイルの残りの部分を文字列として返すように Perl に指示します:
undef$/;
$file=;
$/ の値を変更すると将来に影響するため次の読み取り操作だけでなく、各読み取り操作に対しても。通常、この操作はローカルな操作に限定する必要があります。次の例では、ファイル ハンドルの内容を文字列として読み取ることができます:
{
local$/=undef;
$file=;
}
覚えておいてください: Perl 変数は非常に長い文字列を読み取ることができます。 。ファイル サイズは仮想メモリの制限を超えることはできませんが、可能な限り多くのデータを読み込むことができます。
上記は Perl の古典的な使用法です: 段落の内容を読む その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。