私はいくつかのデータを含むテキストファイル(sample.txt)を持っています。私は、テキストファイルを読み込み、各行を配列または変数に格納したいと思います。私は、配列やPerlスクリプトを使用して変数にこれらの線のそれぞれを保存するにはどうすればよいテキストファイルを読み込み、perlを使って各行を変数に格納します
にsample.txt
ab1234
str:abcd
pq4567
。
私はいくつかのデータを含むテキストファイル(sample.txt)を持っています。私は、テキストファイルを読み込み、各行を配列または変数に格納したいと思います。私は、配列やPerlスクリプトを使用して変数にこれらの線のそれぞれを保存するにはどうすればよいテキストファイルを読み込み、perlを使って各行を変数に格納します
にsample.txt
ab1234
str:abcd
pq4567
。
簡単です。ファイルを開き、chomped
\n
(改行文字)の後にファイルの各行を配列にプッシュしてテストし、配列を出力します。 ここで$_
は、@lines
がそれぞれ$_
を配列に格納するファイルから読み取られた各行です。
さらに簡単な方法は、コンテンツを配列に保存することです。
use strict;
use warnings
my $file = "sample.txt";
open(my $fh, "<", "sample.txt") or die "Unable to open < sample.txt: $!";
my @lines = <$fh>;
chomp(@lines);
print @lines;
# open the file
open my $fh, '<', 'sample.txt'
or die "Could not open sample.txt: $!";
# Read the file into an array
my @lines = <$fh>;
# Optionally, remove newlines from all lines in the array
chomp(@lines);
あなたはCPANモジュールを使用することができます場合は、Tie::File
はあなたの助けのためにそこにあります。 このモジュールを使用すると、ファイルの内容を変更、追加、または削除できます。
以下はスクリプトです。
#!/usr/bin/perl
use strict;
use warnings;
use Tie::File;
my @contents=();
tie @contents, 'Tie::File','sample.txt' or die "Not able to Tie sample.txt\n";
my $count=1;
foreach (@contents)
{
print "line $count:$_\n";
$count++;
}
untie @contents;
出力:これは各行の末尾に改行を維持すること
line 1: ab1234
line 2: str:abcd
line 3: pq4567
'Tie :: File'はPerlで配布されるコアモジュールです。 – toolic
注意。 'chop'や' chomp'はしばしば便利です。 – jcaron
字句ファイルハンドルと 'open()'の3引数バージョンが「ファイルを開くより良い方法」であることを知っていれば、それをあなたのすべてのサンプルコードに使ってみませんか? –