1

したがって、perlファイルに2行を含むファイルを読み取らせたいと思います。

1 10 4
6 4

最初の行を@setAにし、2番目の行を@setBにします。ハードコーディングせずにそれを行うにはどうすればよいですか?

4

3 に答える 3

2

ファイルを開いて、いわゆるファイルハンドル(通常は$fh)を取得し、内容を読み取り、ファイルハンドルを閉じます。これを行うには、、、およびを呼び出す必要がopenありreadlineますclose

readlineにも。のような特別な構文があることに注意してください<$fh>。行の読み方は通常、イディオムに従います。

while ( <$fh> ) {
    # the line is in the $_ variable now
}

次に、各行に取り組むには、split関数を使用します。

時々役立つもう1つのものはですchomp

それはあなたが始めるはずです。

于 2012-05-17T08:11:30.253 に答える
1
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 )
于 2012-05-17T16:59:47.307 に答える
0
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;
于 2012-05-17T08:22:44.890 に答える