+ -
当前位置:首页 → 问答吧 → 关于使用从文件保存到数列的数据的问题

关于使用从文件保存到数列的数据的问题

时间:2010-07-30

来源:互联网

我现在有个文件:
1      2
3     4
5      6
7      8
。。。。

我把它保存为数列,我现在想使用每一个单独的数字,比如要计算1 + 2:
但是不行,大家帮我看看有什么问题吗?
怎么弄都是一整行或一整列一起输出的。
open (FILE, "<", "number");
my @arr;
while (<FILE>){
chomp;
@arr =(@arr, [split(/\s+/)]);
close (FILE);

foreach (@array){
printf ($_->[0], $_->[1]);
}
或者:
foreach (@array){
printf "$arr[0][0]\n";
}


怎么试都不行,怎么提取他们单独一个一个的数字啊?

作者: pp-zz   发布时间: 2010-07-30

楼主需要巩固perl基础知识。

作者: longbow0   发布时间: 2010-07-30

#!/usr/bin/perl -w
use strict;
my @arry;
open (HAND,"txt") || die "$!";
while (<HAND>) {
    chomp;
    push @arry,[split(/\s+/)];
}
close(HAND);
print "$_->[0],$_->[1]\n"  foreach (@arry) ;

作者: 99超人   发布时间: 2010-07-30



QUOTE:
#!/usr/bin/perl -w
use strict;
my @arry;
open (HAND,"txt" || die "$!";
while () {
    chomp
...
99超人 发表于 2010-07-30 07:58




    这样有点局限,如果改成push @array,split(/[\s\t]+/);  这样不用知道文件中每一行的元素数量,而且空白处不一定就是空格

作者: OnlyForStudy   发布时间: 2010-07-30

回复 pp-zz


    我改成 @array = (@array,split(/[\s\t]+/)); 就好了
  [split(/[\s\t]+/)]  返回的是一个匿名数组,可能是不行吧  不懂  有谁能讲解一下吗

作者: OnlyForStudy   发布时间: 2010-07-30