Some parts of this page were machine translated.
Powered by Yandex.Translate
http://translate.yandex.com/
課題です。 あるテキストファイルです。 必要な負荷がそのコンテンツを、スカラーの変数は、Perlプログラム。
課題です。 あるテキストファイルです。 必要な負荷がそのコンテンツを、スカラーの変数は、Perlプログラム。
そのような問題が非常に多発します。 例えば、このような問題が起こるの読み設定ファイルまたは小さなデータファイルです。 が必要な場合過程に大きなファイルなので、わせないようにこのメソッドを使用し、ストリームから読み込むファイルです。
のって簡単で便利なソリューションを使用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で入れてください。 通常、この原因になることがありませんの問題がある状況ではこのソリューションが適しています。
このソリューションはあまり便利ではないとしてライブラリを利用路::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の
白線 ''
. このために必要があのコードは正常に動作する場合は空のファイルの場合は割り当てないでください空の文字列の場合、空のファイル変数 $content
ま undef
).
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 /
のほか、ファイルの読み込みが実行され、安全でない行為です。