帮我看看这条语句错在哪里?

帮我看看这条语句错在哪里?

my $tmp=`ls -l BALANCE012008.dat|awk '{print   $5/77}'`;  这种写法错在哪里?  #  77是一条记录长度,我的文件没条记录长度一定
   
另外,谁有很高效的得到一个文件的行数的方法?

我的文件很大很大,很多300多G的,一般方法都特别慢,或者干脆内存益处了。
wc -l /path/to/foo
如果是定长的话,

my $n = -s $file / 77; 就可以了。

谢谢flw斑竹,

那我上面那条语句哪里不对呢?  是不是管道功能这里不支持 ?
我觉得这些基础问题你应该去看书。
my $tmp=`ls -l BALANCE012008.dat|awk '{print  \$5/77}'`;


QUOTE:
原帖由 starB6 于 2008-2-28 15:57 发表
my $tmp=`ls -l BALANCE012008.dat|awk '{print   $5/77}'`;  这种写法错在哪里?  #  77是一条记录长度,我的文件没条记录长度一定
   
另外,谁有很高效的得到一个文件的行数的方法?

我的文件很大很大 ...

可以使用管道
别把整个文件一下子全读进去了
照你上面的读法文件一大肯定挂了


QUOTE:
原帖由 churchmice 于 2008-2-28 18:46 发表

可以使用管道
别把整个文件一下子全读进去了
照你上面的读法文件一大肯定挂了

人家也没干啥嘛,只不过取了一下 ls 出来的文件大小罢了。
貌似很多人都喜欢取 ls 的输出,而不是直接用 stat 命令。
实际上我本来用了stat命令,可是文件大,一般都几个G  , 处理出错啊,我没办法了,才这么办的。




  对哈,我想起来怎么做了,用stat做去了。。。。。。。