0

在工作中,我们会收到一个大型文本文件,该文件的宽度由第三方分隔。我想使用 perl 脚本只获取我们关心的文件的片段,因为这些片段最终将被放入数据库中。我对perl很陌生,今天才开始。

提供给我们的文件包含客户信息,我需要选择其中的某些部分并最终将它们加载到数据库中,即名称、日期、信息。我正在尝试使用此脚本,但出现错误“在使用“严格引用”时无法使用字符串(第二个)作为符号引用”

如果我取消严格限制,我猜这不是一个好习惯,那么我会收到错误“print<> on unopened filehandle (Second)”

test.txt 的内容是“第一第二第三第四”,所以我看到 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视为文件句柄的名称。)

于 2012-08-27T23:49:50.603 回答