IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

perl中神奇的split

扶凯 2009-10-26 08:49:18 累计浏览 2,643 次
本机暂存

    今天和群中的朋友聊到perl的split,感觉它还是很容易让新人误会.但有很多时候,如果数据是固定标记来分隔,用他比使用正则可是方便多了.

    为什么讲perl的第三个参数很神奇啦.主要在于split的第三个参数.

    我们知道split是工作在列表的环境,他会装输入的数据,多分割几次,在建立结果列表,然后返回.接着,会返回第三个参数内的数据,其它的都扔弃.

    第三个参数一定要非常小心,为什么,如下的程序,我们只需要前二个参数.我们注意第三个参数2

以下是代码片段:
#!/usr/bin/perl
while(<DATA>){
  my ($aa, $dd) = split(/\s+/, $_, 2);
    print "$aa  || $dd ||\n";
 
}
 
__DATA__
1xxxxxxx  2xxxxxx 3xxxxxx 4xxxxx
1xxxxxxx  2xxxxxx 3xxxxxx 4xxxxx
1xxxxxxx  2xxxxxx 3xxxxxx 4xxxxx
1xxxxxxx  2xxxxxx 3xxxxxx 4xxxxx
1xxxxxxx  2xxxxxx 3xxxxxx 4xxxxx

    如果split第三个参数是写的2的话,输出如下结果

以下是代码片段:
1xxxxxxx  || 2xxxxxx 3xxxxxx 4xxxxx
 ||
1xxxxxxx  || 2xxxxxx 3xxxxxx 4xxxxx
 ||

    如果split是写的3的话,输出如下结果

以下是代码片段:
1xxxxxxx  || 2xxxxxx ||
1xxxxxxx  || 2xxxxxx ||

    这主要是因为,如果想取得前2个字段,字段记数为3.因为需要给文件切成3份.拿出前二份.不然都给最后面部分做一份了.

同分类推荐文章

  1. 科技爱好者周刊(第 401 期):如何赚到10亿美元 (2026-06-26 08:05:38)
  2. 如何做决策 - 从 Go 的一个 issue 说起 (2026-06-26 08:00:00)
  3. Seven Player:Windows上播放115网盘视频的增强工具 (2026-06-09 00:06:47)

查看更多 开发者 文章 →

建议继续学习

  1. vim几个小技巧(批量替换,列编辑) (累计阅读 37,515)
  2. perl更新/修改/删除文本文件内容 (累计阅读 10,646)
  3. AWK 简明教程 (累计阅读 9,365)
  4. perl大牛flw传说 (累计阅读 7,713)
  5. AWStats是一个基于Perl的WEB日志分析工具。 (累计阅读 7,172)
  6. perl模块Getopt::Std用法及实例-从命令行读取参数模块 (累计阅读 7,016)
  7. AWK介绍 (累计阅读 6,707)
  8. [Perl] Template::Toolkit 模板技术. (累计阅读 6,344)
  9. 正则表达式基础 (累计阅读 6,316)
  10. awk 实例之二维数组 (累计阅读 6,012)