- 论坛徽章:
- 0
|
文本文件格式
$type1\t$type2\t\n等等,若干行。
读取程序
- $filetoopen = "文件名字";
- if (-e $filetoopen) {
- open(FILE, "$filetoopen");
- flock(FILE, 2);
- sysseek(FILE, 0, 0);
- sysread(FILE, my $myfiledata,(stat(FILE))[7]);
- flock(FILE, 8);
- close(FILE);
- chomp $myfiledata;
- $myfiledata = "$myfiledata\n";
-
- my $key =0;
- $key =1 if ($myfiledata =~s/(.+?)\t(.+?)\t\n/);
- print $key;
- print $myfiledata;
- }
复制代码
$key 的数值居然是0!!! 文件不含\n吗?
换成 $key =1 if ($myfiledata =~s/(.+?)\t(.+?)\t/); 倒是可以。。
但是可以print 出来 $myfiledata 的数值。
代码
- $filetoopen = "文件名字";
- if (-e $filetoopen) {
- open(FILE, "$filetoopen");
- flock(FILE, 2);
- sysseek(FILE, 0, 0);
- sysread(FILE, my $myfiledata,(stat(FILE))[7]);
- flock(FILE, 8);
- close(FILE);
- chomp $myfiledata;
- my @myfiledata=split(/\n/,$myfiledata); # 添加的
- $myfiledata = join("\n",@myfiledata); # 添加的
- $myfiledata = "$myfiledata\n";
-
- my $key =0;
- $key =1 if ($myfiledata =~s/(.+?)\t(.+?)\t\n/);
- print $key;
- print $myfiledata;
- }
复制代码
居然就一切正常??为什么?汗。。
难道sysread出来的数值不能用正则判断? |
|