2017-11-02 19 views
-3

私はいくつかのデータを含むテキストファイル(sample.txt)を持っています。私は、テキストファイルを読み込み、各行を配列または変数に格納したいと思います。私は、配列やPerlスクリプトを使用して変数にこれらの線のそれぞれを保存するにはどうすればよいテキストファイルを読み込み、perlを使って各行を変数に格納します

にsample.txt

ab1234 
str:abcd 
pq4567 

答えて

2

簡単です。ファイルを開き、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; 
+0

注意。 'chop'や' chomp'はしばしば便利です。 – jcaron

+0

字句ファイルハンドルと 'open()'の3引数バージョンが「ファイルを開くより良い方法」であることを知っていれば、それをあなたのすべてのサンプルコードに使ってみませんか? –

0
# 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); 
0

あなたは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 
+0

'Tie :: File'はPerlで配布されるコアモジュールです。 – toolic

関連する問題