爱若晨风 发表于 2018-9-1 06:41:12

perl中数组函数详解:join和split和splice

在perl中,join()和split()的功能是相反的。  一.join函数
  1.作用:把数组元素或者几个字符串通过分隔符连接成单个字符串
  2.格式:join(DELIMITER,ARRAY或string)
  3.实例:#join
  $name="Tom";
  $birth="01/02/86";
  $addr="chengdu.sichuan";
  $info=join(":",$name,$birth,$addr);
  print "1.$info"."\n";
  @list=("Tom","Joe","Tonny","chris");
  @array=join("\n",@list);
  $str=join("-",@list);
  print "2.$str\n";
  print "3.@array";
  4.结果:
  1.Tom:01/02/86:chengdu.sichuan
  2.Tom-Joe-Tonny-chris
  3.Tom
  Joe
  Tonny
  chris
  二、split函数
  1.作用:与上面的join函数功能恰好相反,是通过指定的分隔符把字符串分割成一个一个的字段,形成一个数组返回
  2.格式:split(DELIMITER,STRING);
         split(DELIMITER,STRING,LIMIT);   
         split(DELIMITER);
  3.1.实例:#split(DELIMITER,STRING);
  $char="a/b/c/d/e/f";
  @letters=split("/",$char);
  print "1.@letters\n";
  3.2.输出结果:
   1.a b c d e f
  4.1实例:#split(DELIMITER);
  while(){
     @ch=split(":");
     print "$ch\n";
  }
  __DATA__
  a:2:3:5
  2:s:f:s
  e:r:t:y
  4.2输出结果:
  2
  s
  r
  5.1实例:#split(DELIMITER,STRING,LIMIT);   
  $string="Tom Joe Tonny chris";
  @names=split(" ",$string,2);
  print "1.$names\n";
  print "2.$names\n";
  print "3.$names\n";
  5.2输出结果:
  1.Tom
  2.Joe Tonny chris
  3.
  6总结:
  (1)在第三种格式中,LIMIT是用来指定需要拆分的字段数目。若LIMIT的值小雨STRING中的字段数,则拆分后最后一个数组元素将包含所以剩余的。
  (2)在第二种格式中,使用的变量其实是默认的$_
splice  splice函数有三个作用。第一个作用是向数组中间的一部分插入内容。例如:
  @d=(1..9);
  my @e=("a".."f");
  splice(@d,2,2,@e); #目标数组, 插入起始位置, 覆盖长度, 插入数组
  将会得到12abcdef56789,注意这里是从第二个开始插入,不是从下标为2的元素开始插入的。
  splice的第二个功能是删除,例如在刚才的代码上面再加上:
  splice(@d,2,6); #目标数组, 起始位置,删除长度
  将可以得到1256789;
  splice的第三个功能就是删除到末尾。语法为:
  splice(@d,2);
  就是从第二个开始,删除到末尾。
  
  我们还应该有一个可以把整个数组合并成一个标量的函数。这个函数就是join,join有两个参数,第一个参数是合并时放在元素之间的分割符,第二个是进行操作的数组。 例如:
  my @g=(1,2,3);
  join(" ",@g);
  将可以得到“1 2 3”.
  undef(@a); # 作用是把@a的内容清空。
  chop(@a); #作用是把数组内每个元素的末尾去一个字符。
  chomp(@a); #作用则是把数组内的每一个元素的末尾的换行符去掉。
  

页: [1]
查看完整版本: perl中数组函数详解:join和split和splice