読めるようにテキストファイルが含

課題です。 あるテキストファイルです。 必要な負荷がそのコンテンツを、スカラーの変数は、Perlプログラム。

そのような問題が非常に多発します。 例えば、このような問題が起こるの読み設定ファイルまたは小さなデータファイルです。 が必要な場合過程に大きなファイルなので、わせないようにこのメソッドを使用し、ストリームから読み込むファイルです。

ます。 ライブラリーを使路::Tiny

のって簡単で便利なソリューションを使用Perl図書館パス::Tiny

#!/usr/bin/perl

use strict;
use warnings FATAL => 'all';
use utf8;
use open qw(:std :utf8);

use Path::Tiny;

my $file_name = 'a.txt';

my $content = path($file_name)->slurp_utf8();

print $content;

こちら path('a.txt') を作成しますオブジェクトのクラスパス::Tinyは、 ->slurp_utf8() メソッドを呼び出す slurp_utf8 このオブジェクトです。 その結果、変数 $content POPsの全てのコンテンツのファイルです。

このソリューションが多いですが、繊細さですね。 図書館パス::TinyはPerlで入れてください。 通常、この原因になることがありませんの問題がある状況ではこのソリューションが適しています。

ます。 ファイルを読み取る標準ツールのPerl

このソリューションはあまり便利ではないとしてライブラリを利用路::Tinyとあいまって、ものを必要としない増設します。

#!/usr/bin/perl

use strict;
use warnings FATAL => 'all';
use utf8;
use open qw(:std :utf8);

my $file_name = 'a.txt';

my $content = '';

open FILE, '<', $file_name or die $!;

while (<FILE>) {
    $content .= $_;
}

print $content;

使用 open を作成したファイルハンドルまたはファイル FILE. が open を使うことが大切で三つの引数をすることは非常に重要書 or die|| die. その while (<FILE>) また周辺に ファイルの行を収集すべてのコンテンツの変動 $content.

当初は、新しい変数 $contentの 白線 ''. このために必要があのコードは正常に動作する場合は空のファイルの場合は割り当てないでください空の文字列の場合、空のファイル変数 $contentundef).

非常に危険です。 利用 cat

ここに別の方法で読み込むファイルコンテンツは可変となります。 このソリューションを必要としない追加的な図書館を必要としない書多数行のコードがこのスパイク溶液とする。 ではないことを書き出します。 けないということは、プロジェクトは Path::Tany,に積極的に取り組んでおり、チェックその他の部品プログラムの必要にあるアットホームなコードを読み込みファイルです。 この場合、次にどうぞコメント # TODO の機会を取り除きます。

#!/usr/bin/perl

use strict;
use warnings FATAL => 'all';
use utf8;
use open qw(:std :utf8);

my $file_name = 'a.txt';

my $content = `cat $file_name`;

print $content;

なぜこれが悪い。 最初はありません。 の場合はファイルは、STDERRを受ける警告 cat: asdf: No such file or directoryが、プログラムで行けます。 次に、動作しない場合はファイル名にスペース。 第三に、内容を変 $file_name を外する可能性がありますように a.txt; rm -rf / のほか、ファイルの読み込みが実行され、安全でない行為です。

その他の記事