免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3076 | 回复: 5
打印 上一主题 下一主题

[新手发问]如何从一个文件里读入一个二维数组 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-15 14:22 |只看该作者 |倒序浏览
近来接到个任务处理一些数据,首先将Excel文件里的数据存入TXT文件如下:
ROLE        role01        role02        role03        role04
xu                x               
qian        x                x       
li                x               
yue                        x        x
ming        x                       
想把上面这个表按Tab划分转化为一个含undef元素的二维数组,应该怎么读取文件呢?
小弟的Perl刚学到开个文件句柄用$_整行读取,哪位大侠有空就给指点一下吧    :)

数据处理的最终目的是要得到一个name role的对应表,我是想把数据转化为二维数组后For循环判断去做,方法如果不合适的话也给我点出来吧,谢谢大家    :)

论坛徽章:
0
2 [报告]
发表于 2006-10-15 17:52 |只看该作者
open IN, "testbook01.txt";
$i = 0;
while (<IN>) {
    @tmp = split /\t/;
    $want[$i] = ([@tmp]);
    $i += 1;
}

自己搞定了    呵呵

论坛徽章:
0
3 [报告]
发表于 2006-10-15 19:04 |只看该作者
原帖由 sainux 于 2006-10-15 17:52 发表
open IN, "testbook01.txt";
$i = 0;
while (<IN>) {
    @tmp = split /\t/;
    $want[$i] = ([@tmp]);
    $i += 1;
}

自己搞定了    呵呵



yes,自己动手,丰衣足食。
你这里还可以再简洁点:

my @want = map { [split/\t/] } <IN>;


Hope it helps.

论坛徽章:
0
4 [报告]
发表于 2006-10-15 20:13 |只看该作者
谢谢版主    呵呵
再来个后续问题:在后来的使用中发现数组每行的最后一个元素会带换行符,我那个段子里面改了句
    chomp ( @tmp = split /\t/ );
问题就解决了,仙子的这句应该怎么加chomp呢?我试了好几个位置都没有搞定。。。。

论坛徽章:
0
5 [报告]
发表于 2006-10-15 20:29 |只看该作者
原帖由 sainux 于 2006-10-15 20:13 发表
谢谢版主    呵呵
再来个后续问题:在后来的使用中发现数组每行的最后一个元素会带换行符,我那个段子里面改了句
    chomp ( @tmp = split /\t/ );
问题就解决了,仙子的这句应该怎么加chomp呢?我试了好几 ...


  1. my @want = map { chomp;[split/\t/] } <IN>;
复制代码

论坛徽章:
0
6 [报告]
发表于 2006-10-16 08:24 |只看该作者
五体投地。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP