分享好友 编程语言首页 频道列表

perl脚本语言学习 perl脚本调用perl脚本

perl  2023-02-09 10:270

来公司的第二个星期便看了一下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 可以用这种方式将所有匹配的字段全部替换

 

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

查看更多关于【perl】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
Linux下安装Perl和Perl的DBI模块
今天在虚拟机测试shell脚本的时候,有些命令使用不了。比如说 mysqlhotcopy ,它提示Perl的版本太低。我用的 RedHat9 的Perl才5.8.0版本。。。(2002年以前的)严重过时。所以重新安装了新版本的 Perl,过程记录如下: 1、在官方网站下载新版本的源码包:http:

0评论2023-03-16464

Perl 与Form
说明事项: 這個範例用來說明如何經由網頁上的HTML form 表單元件來呼叫伺服器端的perl 程式。这个范例用来说明如何经由网页上的HTML form 表单元件来呼叫伺服器端的perl 程式。首先在網頁上設計表單元件,這個範例是設計一個按鈕,其原始碼如下:首先在网页

0评论2023-02-10545

Perl学习 perl培训
http://www.sun126.com/perl5/perl5-1.htm翻译: flamephoenix 第一章 概述一、Perl是什么?二、Perl在哪里?三、运行四、注释一、Perl是什么?  Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用

0评论2023-02-10506

- calm_水手">Perl中的箭头符-> - calm_水手
Perl中的箭头符-2012-05-21 17:14 calm_水手 阅读(623) 评论(0) 编辑 收藏 举报  有两种用法,都和解引用有关。第一种用法,就是解引用。根据 - 后面跟的符号的不同,解不同类型的引用,-[] 表示解数组引用,-{} 表示解散列引用,-() 表示解子程序引

0评论2023-02-09731

Perl模块的安装方法 perl 安装模块
1. 下载离线安装包 *.tar.gz的形式解包后,#perl Makefile.PL#make#make install2. 在联网的情况下,通过CPAN安装# perl -MCPAN -e shellcpan install PAR::Packer 

0评论2023-02-09909

Perl像C一样强大,像awk、sed等脚本描述语言一样方便。
Perl是由Larry Wall设计的,并由他不断更新和维护的编程语言。Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。Perl与 脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl

0评论2023-02-09370

27-Perl 进程管理
1.Perl 进程管理Perl 中你可以以不同的方法来创建进程。本教程将讨论一些进程的管理方法。你可以使用特殊变量 $$ 或 $PROCESS_ID 来获取进程 ID。%ENV 哈希存放了父进程,也就是shell中的环境变量,在Perl中可以修改这些变量。exit() 通常用于退出子进程,主

0评论2023-02-09436

在perl中简单的正则匹配 正则匹配或的使用
(一)、在perl中关于元字符的匹配元字符代表含义点号( .)匹配处换行符以外的任何单字符星号(*)匹配前面的内容零次或多次反斜线屏蔽元字符的特殊含义。\\代表\,\.匹配点号.*匹配所有的字符串加号(+)匹配前一个条目一次以上问号(?)表示前面一个条目可

0评论2023-02-09908

Perl WEB 开发之 Template
由于工作需要, 最近开始使用Perl来作为服务器脚本来处理Web 请求。系统采用的Template 来做Web page 的模板,用来简化繁琐但并不困难的HTML标签的编写。Question 1: Template Toolkit 是啥?Template Toolkit是一组Perl Module的集合, 它实现了一种快速的

0评论2023-02-09418

Perl到底是什么意思? perpol意思
学习perl也有一段时间了,如果连perl是什么意思都不知道,那就太汗颜了,听好啦!perl == Practical Exstraction and Report Language,中文叫做实用抽取和报表语言。

0评论2023-02-09437

perl-cgi-form2
代码:         #!/usr/local/bin/perl        use CGI ':standard';        print header;        print start_html("Example CGI.pm Form");        print "h1 Example CGI.pm Form/h1\n";      

0评论2023-02-09501

Perl实战(一) perl进阶
在Perl中,我们可以通过uc,lc,\U,\L来修改变量的值。其中uc,\U可以将变量中的字母全部转换为大写。              lc,\L可以将变量中的字母全部转换为小写。              $big = "\U$var";       $big = uc($var);  

0评论2023-02-09685

Perl多线程(2):数据共享和线程安全 多线程epoll
线程数据共享在介绍Perl解释器线程的时候一直强调,Perl解释器线程在被创建出来的时候,将从父线程中拷贝数据到子线程中,使得数据是线程私有的,并且数据是线程隔离的。如果真的想要在线程间共享数据,需要显式使用threads::shared模块来扩展threads模块的功

0评论2023-02-09683

Linux下安装与使用本地的perl模块 centos安装perl
在使用Linux或是unix时,perl是一个非常有用的脚本的语言。关于perl的模块安装,网上也有很多介绍,一方面可以通过不同套件自带的软件安装工具安装,一方面可以通过cpan安装,再者就是可以直接编译源代码。 这样,对于拥有root权限的用户来说,没有任何问题

0评论2023-02-09497

Perl_Tkx_Canvas绘图功能函数介绍
1.画画布:     $canvas = $mw-new_tk__canvas;2.画线:         $canvas-create_line(10,10,200,50,-fill=”red”,-width=3);配置item参数:       $canvas-itemconfigure($id, -fill = "blue", -width = 2);3.画椭圆         “ova

0评论2023-02-09658

perl: warning: Falling back to the standard locale ("C").
/********************************************************************************** *perl: warning: Falling back to the standard locale ("C"). * 说明: * 使用debootstrap的时候,遇到这个问题,记录解决方法。 **2017-2-18 深圳 南山平山村 曾剑锋

0评论2023-02-09574

Perl操作Mysql数据库 perl操作excel
一. 安装DBI模块步骤1:从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:ReadmeDBI.ppdDBI.tar.gz步骤2: 在DOS窗口下,temp目录中运行下面的DOS命令:ppm install DBI.ppd 如果提示无效命令,可在perl/bin目录下运行 二. 安装DBD

0评论2023-02-09348

更多推荐