来公司的第二个星期便看了一下perl语言,发现掌握一门脚本语言还是非常有用的。到现在为止已经入职两个月,用perl脚本做了这些活:

1. 修改了公司的一个爬取网页源代码的脚本

2. 改进了一个出特征库的脚本,根据svn status的状态,来优化,将只需要添加的DB的数据进行处理。

3. 编写了一个脚本,用于比对两个文件夹的文件(文件数量大约在+),之后选择需要处理的文件。用perl强大的正则匹配获取对应的字段,并将数据全部放入到excel当中。其中有部分字段需要进行英中文对应,此时创建了两个文件夹进行存放对应的中英文字段,让脚本读取两个文件来进行正确匹配,这样易于后期的维护。此外,由于文件夹的路径可能会发生更改,又用一个bash脚本来连接几个perl脚本,并将常用的参数直接写入到bash脚本中,这样亦可能对应单独使用perl,又可能在不更改参数的情况下,使用bash脚本快速执行脚本功能。后续会将代码贴上来做个分享。

以下为刚开始看perl语言入门的一些基础小笔记,之后在改写脚本和自己编写脚本的时候也积累了一些东西,并没有记录进去,以后应该会做整理补充进去。因为这是最开始的记录,可能会显得非常基础的东西。

# 为注释

#! 则表示执行下面文件的程序

反引号 `......` 表示运行外部程序

下划线可以用来分割数据,并不会改变原数据

如 98908008080 为了方便阅读,可以写成

98_908_008_080

perl 中的NULL没有特殊含义

单引号字符串内,除了单引号或者反斜杠之外的字符都表示自身

双引号字符串内,反斜杠可以用来表示控制字符

用 . 能够连接字符串

x可以表示字符串重复操作符

perl -w my_program

的 -w 参数可以在执行的时候看到警告

-X 可以忽略所有警告

在perl程序内加上

use diagnostics; 将可以看到更详细得警告说明

命令行加上 -M 参数能决定是否激活diagnostics

$变量名

{} 分隔符, 可以用于分隔字符串

数字      0 为 false

字符串 空串 为 false

undef 为 false

比较特殊的是, 字符串 '0' 也为false

<STDIN> 可用于标准输入流

如 $line=<STDIN>;

chomp() 可以用来去掉换行符 (很常用)

结合使用: chomp($line=<STDIN>) 读入且不包含换行符

defined 函数可以用来判断是否为undef

$define ($text)                  text为undef时返回false,否则返回true

perl 数组没有长度限制,未赋值的数组元素值为undef

$#array 表示array数组最后一个元素得索引

array[-1] 表示最后一个数组元素

@array 表示 all of the array 即可以对所有元素进行整体操作

@array = (1 .. 5) 将1,2,3,4,5赋值给array 赋值是括号可以不加

@array = qw (qwe wer ert rty); 将字符串"qwe", "wer", "ert", "rty"赋值给array

qw可以允许使用任何标点符号作为分界符

push/pop (数组从尾部压栈出栈), shift/unshift (从开头压栈出栈)

foreach $rocks (@rocks) 可以遍历数组

$_ 可以代表 foreach 循环中省略的控制变量

1 foreach (1 .. 10) {

2     print "I can count to $_!\n";

3 }

reverse 逆转, sort 排序

@lines = <STDIN>;

CTRL+D来表明输入结束 (UNIX) CTRL+Z (WINDOWS)

@_ 是程序得私有变量

使用my可以在子程序里创建私有变量

程序开头加上 use strict; 将会使程序检查更加严谨

$! 表示系统会提供一些有用的可读信息, 比如在打开文件失败得时候

@array = split (//, $string); 函数可以将字符串拆分,//内表示按空格来拆分,/\./表示按小数点拆分。

@ARGV 表示命令行的参数列表

=~ 表示匹配绑定,成功返回true。$& 表示成功匹配的值 $` 表示匹配前 $' 表示匹配后

=~ s/正则/替换内容/g 可以用这种方式将所有匹配的字段全部替换

第一篇博客,就先这样,之后应该还会将工作中和学习中积累的点点滴滴都写进去,多总结,多积累。

转载于:https://www.cnblogs.com/viroyiheng/p/3965977.html

perl脚本语言学习相关推荐

  1. Ink脚本语言学习笔记(四)

    目前想要基于Ink脚本语言和Unity新的UIToolkit做一套对话系统,本文对Ink脚本语言的使用方式做一下介绍和总结 Ink脚本语言学习笔记(三) 四.进阶故事流控制(Advanced Flow ...

  2. Ink脚本语言学习笔记(二)

    目前想要基于Ink脚本语言和Unity新的UIToolkit做一套对话系统,本文对Ink脚本语言的使用方式做一下介绍和总结 Ink脚本语言学习笔记(一) 二.缝合(Weave) 目前没想好怎么翻译这个 ...

  3. Perl脚本语言(一)

    一.简介 1.全称:Practical Extraction and Report Language(实用报表提取语言) 2.特点:简单快速开发,使用最广泛的脚本语言. 3.报表:向上级报告的表格. ...

  4. java脚本语言学习心得

    第一篇技术博客,一定要认真! 第一篇技术博客,一定要认真! 第一篇技术博客,一定要认真! 好了,进入正题: 一 什么是脚本语言? 程序的运行方式有两种:编译运行和解释运行 1.1 前者的典型代表是ja ...

  5. 使用perl脚本语言处理文本文件

    前段时间,因为工作需要,使用perl脚本对一个txt文件做了一些处理. 需要处理的txt文件inputfile.txt结构是: #col1 col2 col3 col4 col5 1_1   1_2  ...

  6. Lua脚本语言学习总结 入门、复习Lua语言看这一篇就够了

    文章目录 Lua 概念 特性 应用场景 Lua的安装 Lua的语法 第一个Lua程序 Lua的注释 标识符 关键字 运算符 全局变量&局部变量 Lua数据类型 nil boolean numb ...

  7. VBScript脚本语言学习(持续更新)

    这个语言非常简单...花了我几个小时就基本上掌握了.由于它比批处理强大很多,所以我很喜欢.用于日常管理我的Windows操作系统.下面是我的学习记录下来的重点和总结. A. 基础知识 1. Cbool ...

  8. Ink脚本语言学习笔记(小结)

    在之前的四个部分中已经基本了解了Ink的语法和功能,这里就个人的理解作一下小结 一.基础内容 文本--分为默认/注释/提醒/标签文本,如果没有经过特殊标记,所有默认文本会显示在输出内容中 选项--分为 ...

  9. Perl,Python,Ruby,Javascript 四种脚本语言比较

    Perl 为了选择一个合适的脚本语言学习,今天查了不少有关Perl,Python,Ruby,Javascript的东西,可是发现各大阵营的人都在吹捧自己喜欢的语言,不过最没有争议的应该是Javascr ...

最新文章

  1. html怎么把图片放到数组,HTML5中的图像数组
  2. oracle新建用户和授权及其删除
  3. Windows程序设计:MFC 、Winform 和 WPF 比较
  4. Python3转义字符
  5. 软件问题造成的经济损失案例_公司印章管理使用哪些行为会造成法律风险隐患...
  6. [BZOJ]1023: [SHOI2008]cactus仙人掌图
  7. 2021中考高考成绩查询,2021中考
  8. 栈的top指针指向哪里_数据结构-栈
  9. 26个适用于VMware管理员的强大工具,收藏了!
  10. tensorflow单变量线性回归
  11. Axios和Ajax处理后台返回文件流实现文件下载(图片和Excel)
  12. 简约清新二次元引导个人主页源码
  13. JTXQ、JTT部标模拟终端使用说明 --3 报警及报警附件
  14. java双层list扁平化,浅谈java8 stream flatMap流的扁平化操作
  15. Unity3D游戏开发从零单排(六) - 人物运动及攻击连击
  16. Scrapy框架整合英雄缩略图(APP)
  17. [解读] GTN: Generative Teaching Networks
  18. 自控重点整理5.控制系统的频带宽度
  19. 不使用strcpy()函数实现字符串复制功能
  20. 机器学习实战之朴素贝叶斯

热门文章

  1. dell服务器装独立显卡无显示输出,dell服务器设置独立显卡(dell服务器加显卡)...
  2. ADDA: Adversarial Discriminative Domain Adaptation
  3. php获取证书编号没有serialNumberHex只有serialNumber处理方法
  4. linux中磁盘清理方法(简单好用)
  5. 解决图片按顺序加载问题
  6. 乐游TGapi接口平台(接口商)
  7. transition详解
  8. mysql 汉字一排序规则_MySQL 的字符集与排序规则
  9. MySQL表中的联合查询
  10. oracle form 6i菜单模块,利用DDE技术实现ORACLE FORMS 6i 中打开文件(如:EXCEL、WORD、图片、网页)的功能...