したがって、perlファイルに2行を含むファイルを読み取らせたいと思います。
1 10 4
6 4
最初の行を@setAにし、2番目の行を@setBにします。ハードコーディングせずにそれを行うにはどうすればよいですか?
ファイルを開いて、いわゆるファイルハンドル(通常は$fh
)を取得し、内容を読み取り、ファイルハンドルを閉じます。これを行うには、、、およびを呼び出す必要がopen
ありreadline
ますclose
。
readlineにも。のような特別な構文があることに注意してください<$fh>
。行の読み方は通常、イディオムに従います。
while ( <$fh> ) {
# the line is in the $_ variable now
}
次に、各行に取り組むには、split
関数を使用します。
時々役立つもう1つのものはですchomp
。
それはあなたが始めるはずです。
my $setA = <$fh>; # "1 10 4"
my $setB = <$fh>; # "6 4"
または
my @setA = split ' ', scalar(<$fh>); # ( 1, 10, 4 )
my @setB = split ' ', scalar(<$fh>); # ( 6, 4 )
use strict;
use warnings;
use autodie qw(:all);
open my $file, '<', 'file.txt';
my @lines = <$file>;
my @setA = $lines[0];
my @setB = $lines[1];
print("@setA");
print("@setB");
close $file;