Perl 字符串处理备忘录_perl

1. chop和chomp函数

 两个函数都以字符串作为参数,并去除其末尾最后一个字符。区别是,无论最后一个字符是什么,chop都会去除,并在返回值中返回;而仅当字符串最后一个字符与特殊变量$/保存的字符一样时,chomp才会将其去除。默认情况下$/保存换行字符,当然可以重设。
  1)如果函数参数是一个字符串数组,那么函数会分别对数组中的每个元素调用。
  2)如果函数参数是一个符合列表(即列表中还有其他列表或HASH表),则可以认为保存在参数列表中的是每个复合容器的地址(指针),而此时chop会将地址作为一个字符串处理,从而破坏整个复合列表。
  顺带一提,如果一个变量是保存数值类型,而非字符串,该函数会把变量保存的数值解释成字符串。

2. getc函数

 getc函数的参数只有一个,就是文件句柄,如果要从标准输入流读入,就使用STDIN。该函数返回读取的字节,要注意的是,如果读取的是文件流,则在EOF处函数返回空字符串,即'';如果读取标准输入流,则会一直阻塞。

3.拼接字符串

 使用join函数可以拼接各个字符串,签名为join(delmiter, list)。其中delimiter是一个分隔字符串,在拼接结果中各个分离字符串以该delimiter分隔;list则是各个分离的字符串,也可以是一个保存着若干字符串的数组。

复制代码 代码如下:

  $str1 = "stringA" ;  $str2 = "stringB";
  $combine = join '::' , $str1 , $str2 ;  #$combine值为::stringA::stringB
  @list1 = ( $str1 , $str2 );  @list2 = qw ( stringC  stringD );
  $combine = join '_' , @list1 , @list2 , $str1 ;  #$combine值为_stringA_stringB_stringC_stringD_stringA

分隔符使用"\n"时,就可以拼接成垂直列表了。

4.分割字符串

使用split函数进行字符串分割。
split(delimiter , string , count)
delimiter是分隔符,默认是空格(以tab,空格等进行分割)
string是被分割的字符串,不指定该参数时,对$_进行分割
count允许分割的最大份数,当实际可以分割的份数超过该值时,第count份子串将保存剩余的字符串
函数返回一个数组,里面保存分割的所有字串

5.重复拼接字符串

Perl中的 x 操作符,注意操作数必须左边可解析成字符串,右边可解析成数值。

复制代码 代码如下:

$str1 = "abc";
$str2 = $str1 x 5;   # $str2的值为 "abcabcabcabcabc"

6.字串替换

substr(string, offset, length):
string:原字符串 , offset:字串所在原字符串中的起始位置,length:字串长度
该函数有两种用法:
1)获取子串

复制代码 代码如下:

$str = "abcdefghijk";
$sstr = substr( $str , 5 , 3 );   # $sstr的值为"efg"

2)替换子串

复制代码 代码如下:

$str = "1234567890";
substr( $str , 4 ,  3) = "xxxxx" ; # $str的值为"123xxxxx7890"

函数的第三个参数指定的是被替换子串的长度,因此不影响新替换的字串的长度。

时间: 2024-07-31 14:34:44

Perl 字符串处理备忘录_perl的相关文章

Perl学习基本备忘录_perl

1.Perl数组(1): 1) 初始化数组 @array = ( "stringA" , "stringB" , "stringC" );2) 使用负索引循环检索 print $array[-1];  #输出索引为(-1 + 3) % 3 = 2 的 stringC3) 动态增长 $array[4] = "stringD"; #虽然$array[3]还没有使用,但在动态赋值$array[4]的使用,已经对$array[3]赋空

perl 文件操作总结_perl

一.打开.关闭文件     open的返回值用来确定打开文件的操作是否成功,当其成功时返回非零值,失败时返回零,因此可以如下判断:    if (open(MYFILE, "myfile"))     {        # here is what to do if the file opened successfully    }    当文件操作完毕后,用close(MYFILE); 关闭文件.    读:open(文件句柄,"<文件名")  open(文

Perl数组排序学习笔记_perl

本文我们学习如何用Perl对字符串或者数字数组进行排序. Perl有个内置函数叫做sort毫无疑问的可以排序一个数组. 其最简单的形式是传递一个数组,它会返回排序后的元素组成的数组.@sorted = sort @original. 基于ASCII码排序 复制代码 代码如下: #!/usr/bin/perl use strict; use warnings; use 5.010;   use Data::Dumper qw(Dumper);   my @words = qw(foo bar zo

FTP自动上传文件的perl脚本以及配置文件_perl

<?XML:NAMESPACE PREFIX = O /> 本应用程序设计的几个基本理念是:工具箱再利用:尽可能利用已有的工具:简化运行步骤:不引入过多的业务逻辑,满足的需求越简单越好. 所以,我们定义了本应用程序依赖于以下几个工具的运行:ActivePerl-5.8.4.810-MSWin32-x86Upload.plUpload.config 我们将主要的执行逻辑都放在Perl源文件Upload.pl中了,配置文件为Upload.config. 这个perl文件将执行的任务是, 按照指定的

Perl 函数集小结_perl

一.进程处理函数 1.进程启动函数 函数名 eval 调用语法 eval(string) 解说 将string看作Perl语句执行.正确执行后,系统变量$@为空串,如果有错误,$@中为错误信息. 例子 $print = "print (\"hello,world\\n\");";eval ($print); 结果输出 hello, world 函数名 system 调用语法 system(list) 解说 list中第一个元素为程序名,其余为参数.system启动一

cpanm安装及Perl模块安装教程_perl

cpanm是安装Perl模块的最方便的方法.自动下载安装依赖包.使用CPAN shell或下载源码包安装模块,遇到大量依赖关系,非常头痛.下面就是一例: 安装MongoDB模块 复制代码 代码如下: # perl Makefile.PL Warning: prerequisite Class::Method::Modifiers 0 not found. Warning: prerequisite Data::Types 0 not found. Warning: prerequisite Da

在EditPlus中配置Perl开发编译环境_perl

偶尔写写Perl脚本,用Eclipse打开太慢,NotePad吧,色彩又太单调了,NotePad++无疑是不一个不错的选择,但当要输入中文注释时,经常卡壳非常不爽,最后还是选择用用Editplus, 写写Perl或Python脚本,非常不错. 1. 下载安装Perl URL: http://www.activestate.com/  下载与操作系统匹配的Version,Next>>逐步安装,再用perl -v验证是否安装成功 2. 下载安装Editplus https://www.editpl

perl中heredoc使用说明_perl

格式 print <<EOFyou text go hereEOF 复制代码 代码如下: sub usage{    print <<EOF;Usage: test.pl -c config, -f file -l lines    -c config file    -f file name    -l number of linesEOF} NOTE: the last EOF must start at the beginning of the line!!!you can

Perl中的正则表达式介绍

正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握他,就可以轻易地用正则表达式来完成字符串处理的任务,当然在 CGI 程序设计中就更能得心应手了   感谢AKA及作者. Perl 中的正则表达式正则表达式的三种形式 正则表达式中的常用模式 正则表达式的 8 大原则       正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握他,就可以轻易地用正则表达式来完成字符串处理的任务,当然在 CGI 程序