有时候,我们需要将一个字符串或一行文本通过某种方式转换为单个的元素存储在数组中,或者将许多元素通过某种分割符,将他们组合成一个字符串。perl刚好就提供了这样的功能,通过split或者join分割或组合元素,下面我们来看一个例子:

  1. #! /usr/bin/perl -w
  2.  
  3. my $str1 = "1,2,3,4,5,6,7,8,9,0";
  4. my @array = split(/,/,$str1);
  5. print "@array\n";
  6. my $str2 = join('-',@array);
  7. print "$str2\n";

程序的执行结果如下:

  1. D:\perl>perl split.pl
  2. 1 2 3 4 5 6 7 8 9 0
  3. 1-2-3-4-5-6-7-8-9-0

在上面的程序中,我们定义了一个字符串str1,我们想将字符串中连接符“,”替换为“-”。我们首先通过split将字符串中的元素分割开,存储在数组array中,然后再通过join将数组中的元素通过“-”组合为一个新的字符串。
呵呵,这个地方我们只是通过这个例子简单的介绍一个split和join的使用,其实如果你对正则表达式很清楚的话,直接替换就可以了,根本不用这么复杂。
另外我们也可以将这个例子再简化一下,用一条语句来实现:

  1. $str2 = join('-',split(/,/,$str1));

当然,使用split函数你需要对正则表达式有一点了解,因为split中/,/就是一个正则表达式,通过这个正则表达式来匹配后面的$str1中的分隔符。

三、对数组元素进行排序——使用sort函数

程序:

my @line=qw /12 34 9 12 44 3 11 67 23 1 4 1 7 3 0/;
print "The sorted number is : ";
foreach my $item(sort {$a <=> $b} @line){
 print "$item ";
}

结果:

The sorted number is : 0 1 1 3 3 4 7 9 11 12 12 23 34 44 67

通过改变$a与$b的位置可以降序排序,若将<=>换为cmp,则可以进行以ASCII进行排序。

perl的一些小函数——split、join、sort的更多相关文章

  1. js字符串函数(split、join、indexOf、substring)

    1,函数:split()功能:使用一个指定的分隔符把一个字符串分割存储到数组示例: str="jpg|bmp|gif|ico|png";arr= str .split(" ...

  2. Java中使用split、sort函数

    public static void main(String[] args) { // TODO Auto-generated method stub String str = null ; Scan ...

  3. perl学习之:函数总结

    一.进程处理函数 1.进程启动函数 函数名 eval 调用语法 eval(string) 解说 将string看作Perl语句执行.正确执行后,系统变量$@为空串,如果有错误,$@中为错误信息. 例子 ...

  4. JS_ECMA基本语法中的几种封装的小函数-2

    大家好!今天继续给大家写一下ECMA中的剩下的小函数以及实用的实例: 首先先给大家说一下字符串.数组.数学方法以及json的一点小知识点: 字符串方法: str.length str.charAt(i ...

  5. JS_ECMA基本语法中的几种封装的小函数

      先来回顾一下我们的字符串: 字符串方法: str.length str.charAt(i):取字符串中的某一个; str.indexOf('e');找第一个出现的位置;找不到返回-1; str.l ...

  6. NESTED LOOPS & HASH JOIN & SORT MERGE JOIN

    表连接方式及使用场合 NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择.nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查 ...

  7. python3.x 匿名函数lambda_扩展sort

    #匿名函数lambda 参数: 表达式关键字 lambda 说明它是一个匿名函数,冒号 : 前面的变量是该匿名函数的参数,冒号后面是函数的返回值,注意这里不需使用 return 关键字. ambda只 ...

  8. C++常见问题: 字符串分割函数 split

    C++标准库里面没有字符分割函数split ,这可太不方便了,我已经遇到>3次如何对字符串快速分割这个问题了.列几个常用方法以备不时之需. 方法一: 利用STL自己实现split 函数(常用,简 ...

  9. 使用getopt_long来解析参数的小函数模板

    getopt_long原型 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct o ...

随机推荐

  1. Go在windows10 64位上安装

    一.安装 1.下载安装包http://www.golangtc.com/download,这是国内的地址,也直接去官网下载. 2.选择适合自己的版本,这里我选择安64位装版go1.9.2.window ...

  2. .netCore2.0 配置文件

    之前的asp.net 的配置文件都是xml格式,而.netCore的配置文件则采用Json键值对的格式来存储,具体获取如下 var config = new ConfigurationBuilder( ...

  3. cs端调用webApi

    public class Httphelper { public static string Post1(string url, string postString) { using (WebClie ...

  4. win10-查看wifi密码

    1:查看pc连接的wifi名称:netsh wlan show profile 2:生成xml文件:  netsh wlan export profile name= YJ-PC_Network fo ...

  5. 通过winmm.dll控制声音播放

    介绍如何通过winmm.dll播放声音 首先导入两个函数 /// <summary> /// 向媒体控制接口发送控制命令 /// </summary> /// <para ...

  6. [android] 安卓自定义样式和主题

    简单练习自定义样式和主题,样式是加在View上,主题是加在Application或者Activity上 styles.xml <?xml version="1.0" enco ...

  7. dategrid快速录入一行数据的一波操作

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. servlet开发(四)之ServletContext

    接上一篇. 2.3.4 利用ServletContext对象读取资源文件 比如我们要读取web项目中的配置文件. 项目目录结构如下: 使用ServletContext对象读取资源文件的示例代码如下: ...

  9. Nginx 502错误总结

    http请求流程:一般情况下,提交动态请求的时候,nginx会直接把 请求转交给php-fpm,而php-fpm再分配php-cgi进程来处理相关的请求,之后再依次返回,最后由nginx把结果反馈给客 ...

  10. ccf-201609-2 火车购票

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...