首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

初学Perl,有一个有C/C++里面非常容易的有关问题

2012-02-25 
初学Perl,有一个有C/C++里面非常容易的问题就是perl可以用来读入一行的数据,但是如果我那行的数据是用空

初学Perl,有一个有C/C++里面非常容易的问题
就是perl可以用<>来读入一行的数据,但是如果我那行的数据是用空格隔开的,如3个隔开的数字,我怎样可以一个个地读出来呢?

perl的文档是要上网查的吗? 像我一面所问题的问题一般怎样可以查到? 谢谢

[解决办法]
我觉得楼上的方法有两个问题:1、 print出来的结果是abc+空格;2、如果abc与def中间有多个空格,会将空格作为数据读入。
个人认为最好的办法还是先读整行进来,然后再split。

Perl code
my $str="11      22  33 44";my @array = split (/\s+/, $str);
[解决办法]
方法很多
简单的用split,像2楼那样
还可以用类似C语言中字符串处理函数那个,先找到分割符,如空格的位置,然后用substr从中提取子串
[解决办法]
探讨
我觉得楼上的方法有两个问题:1、 print出来的结果是abc+空格;2、如果abc与def中间有多个空格,会将空格作为数据读入。
个人认为最好的办法还是先读整行进来,然后再split。

Perl code
my $str="11 22 33 44";
my @array = split (/\s+/, $str);

[解决办法]
你可以使用perldoc命令来查帮助,ActivePerl也带了html的文档,你可以先熟悉一下文档结构,通过ActivePerl的文档左边的树能够在一定程度上了解文档的结构.
[解决办法]
我也觉得这种方法会比较好。
方法真的有好多种的,比如 你用正则表达式来匹配数字,用于分隔,也是可以的。
探讨
我觉得楼上的方法有两个问题:1、 print出来的结果是abc+空格;2、如果abc与def中间有多个空格,会将空格作为数据读入。
个人认为最好的办法还是先读整行进来,然后再split。

Perl code
my $str="11 22 33 44";
my @array = split (/\s+/, $str);

热点排行