0

職場では、サードパーティから幅が区切られた大きなテキストファイルが送信されます。私はperlスクリプトを使用して、関心のあるファイルの一部のみを取得したいと考えています。これらの部分は最終的にデータベースに配置されるためです。私はperlを初めて使用し、今日始めたばかりです。

私たちに届くファイルには顧客情報が含まれているので、その特定の部分を選択して、最終的にそれらをデータベースにロードする必要があります。つまり、名前、日付、情報です。このスクリプトを使用しようとしていますが、「 "strict refs"が使用されている間、文字列(Second)をシンボルrefとして使用できません」というエラーが表示されます。

厳密を外すと、これは良い習慣ではないと思いますが、「開いていないファイルハンドルでprint <>(2番目)」というエラーが表示されます。

test.txtの内容は「FirstSecondThirdFour」なので、substrが取得したいものを取得していることがわかります。私は何を間違っているのですか、そして私は正しい方向に進んでいますか?

use strict;
use warnings;


open FILE, "<", "test.txt" or die $!;

#get the contents of the file
#my @a_Lines = <FILE>;
my $entireFile = <FILE>;

#close it I don't need it any more
close FILE or die "Cannot close the file because - $!";


#print @a_Lines ;
print $entireFile;
print "\n";

my $firstName = substr $entireFile, 6, 6;
print $firstName

print "\n";
4

1 に答える 1

6

セミコロンがありません。これを変える:

print $firstName

これに:

print $firstName;

(エラー メッセージが非常に奇妙である理由は、セミコロンが欠落しているために、Perl がどのよう$firstNameに解釈されたいかを誤解しているためです$firstName。Perl は、ファイルハンドルの名前として扱われる内容を望んでいると考えています。)

于 2012-08-27T23:49:50.603 に答える