没有使用chomp:

  1. #!/bin/perl
  2. print  "Please input an string and a number by order!n";  
  3. $the_string= <>;  
  4. $the_numb= <>;  
  5. print  "The result is n";  
  6. print  "$the_string"x "$the_numb";

结果:
The result is
my
my
my
my
my

加入chomp的情况:

  1. #!/bin/perl
  2. print  "Please input an string and a number by order!n";  
  3. chomp ( $the_string= <> );  
  4. chomp ( $the_numb= <> );  
  5. print  "The result is n";  
  6. print  "$the_string"x "$the_numb";

结果:
The result is
mymymymymy

如果字符串结尾有换行符,chomp 可以去掉它。这基本上就是它能完成的所有功能,如下例:
$text = “a line of text/n”; #也可以由输入
chomp($text); #去掉换行符(/n)。
它非常有用,基本上你的每一个程序都会用到它。如你将知道,这是将字符串末尾换行符去掉的最好方法。基于Perl 中的一条基本原则:在需要使用变量的地方,可以使用赋值表达式来代替。我们有更简单的使用chomp 的方法。Perl 首先做赋值运算,再使用这个变量。因此使用chomp 的最常用方法是:

  1. chomp  ( $text =  <STDIN> );  #读入,但不含换行符
  2. $text =  <STDIN>;
  3. chomp  ( $text );  #同上,但用两步完成

第一眼见到时,第一种组合的方法看起来复杂些。如果把上述其看成两步操作,读一行再chomp,那写成两个语句的方法
看起来自然些。如果将其看作一个操作,读入一行但不包括换行符,那写成一个语句的方法更恰当。由于绝大多数Perl 程序员使用第一种写法,你也应该使用它。
chomp 是一个函数。作为一个函数,它有一个返回值,为移除的字符的个数。这个数字基本上没什么用:

  1. $food =  <STDIN>;
  2. $betty =  chomp  $food;  #得到值1

如上,在使用chomp 时,可以使用或不使用括号()。这又是Perl 中的一条通用规则:除非移除它们时含义会变,否则括号是可以省略的。
如果结尾有两个或两个以上的换行符,chomp 仅去掉一个。如果没有,那什么也不做,返回0。

chop和chomp函数区别

chop函数负责删除标量型标量的最后一个字符或数组中每个元素的最后一个字符,并返回修改后的值。chop一般用于删除程序接收到的输入行末尾的换行符,这些输入行可以来自STDIN、文件或者命令置换结果。
chomp函数,负责删除标量型变量中的最后一个字符,或者数组中每个字的最后一个字符,并保证只有该行末字符是换行符时才进行删除操作。它会返回删除后的字符数目。使用chomp函数来代替chop,能避免删除换行符之外的其它字符。
例1:chop

  1. #!/usr/bin/perl
  2. $v =  'Flowers';
  3. $r =  chop ( $v );
  4. print  "$v (without $r)n";

运行结果
[root@localhost per]# ./1-16.pl
Flower (without s)
例2:chomp

  1. #!/usr/bin/perl
  2. print  "User name: ";
  3. $name =  <  STDIN  >;
  4. chomp  $name;
  5. print  "Your user name is : $namen";

运行结果
[root@localhost per]# ./1-18.pl
User name: Bill
Your user name is : Bill

本文转载自:http://www.perlcn.com/perlbc/perljc/1655.html

perl chop和chomp函数区别相关推荐

  1. Perl中chomp和chop的用法和区别介绍

    一.chomp是用来删除换行符. 代码: #!/usr/bin/perl $ a = "abcdef\n"; chomp($a); print $a; 结果: [briup@loc ...

  2. Ruby中的chop和chomp用法辨析

    还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...

  3. perl学习之:函数总结

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

  4. python时间函数报错_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  5. python获取系统时间函数_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  6. 多线程编程:return、pthread_exit()、exit()函数区别

    多线程编程:return.pthread_exit().exit()函数区别: return:                 返回到调用者那里去 pthread_exit():    将调用该函数的 ...

  7. C++中重载与重写函数区别及虚函数(转载)

    C++中重载与重写函数区别及虚函数 C++中的虚函数(virtual function) 1.简介 虚函数是C++中用于实现多态(polymorphism)的机制.核心理念就是通过基类访问派生类定义的 ...

  8. js箭头函数和普通函数区别

    js箭头函数和普通函数区别 实验环境:nodejs v12.16.1 箭头函数不能作为构造函数,而普通函数可以 箭头函数没有原型,而普通函数有 箭头函数return可以省略语句块.(如果=>右边 ...

  9. C语言 vprintf 函数和 printf 函数区别 - C语言零基础入门教程

    目录 一.vprintf 函数和 printf 函数声明简介 1.printf 函数声明 2.vprintf 函数声明 二.vprintf 函数和 printf 函数使用 三.猜你喜欢 零基础 C/C ...

最新文章

  1. linux无法联网使用yum提示cannot find a valid baseurl for repobase7x86_64
  2. NVIDIA向交通运输行业开源其自动驾驶汽车深度神经网络
  3. 如何将DB2数据库转换成Oracle数据库,这一篇告诉你
  4. Percona 成为 MariaDB 基金会铜牌赞助商
  5. python在工作中怎么用_在Python中调用是如何工作的?
  6. N个结点不同结构的二叉树个数
  7. ansys命令流力磁耦合仿真
  8. MS17-010 永恒之蓝漏洞利用方式
  9. 已知两个向量的坐标求夹角的大小_两个向量的夹角怎么算
  10. 机器人计算机技术,机器人技术与应用
  11. Kubernetes网络自学系列 | 千呼万唤始出来:veth pair
  12. 超算优化重在存储,DAOS助力瑞金打造先进的生信大数据平台
  13. 名帖86 蔡襄 行楷《谢赐御书诗表》
  14. [git] fatal: Exiting because of an unresolved conflict.
  15. BodyContent揭秘及定制复杂的JSP标签
  16. hashcat学习笔记0 安装与例子
  17. 没有人会告诉你的小技巧,自学视频剪辑第一步要做什么?
  18. 如何将低版本的CAD转换器转换成高版本
  19. 九段刀客 vue-router实现原理
  20. 公开课发布:《SQL开发中容易被忽略的BUG》by郑老师

热门文章

  1. Python就业前景如何?培训后好找工作吗?
  2. html文章分栏显示,PPT文章如何进行分栏显示?
  3. 2012毕业找工作记录点滴
  4. oracle查询收到请求信息,Oracle EBS中快速查看某个请求的Output File或log File等信息(转载)...
  5. 还在为程序乱码烦恼?看看这篇文章吧,程序乱码大集合
  6. 天下谁人不识君:当IPv6+成为千行百业的朋友
  7. 提升办公技能 :9张超实用的计划表,帮你实现高效时间管理!
  8. 珠宝配饰行业的进销存软件有哪些好用的?
  9. android 字体选中加粗,Android——TabLayout设置选中字体变大,加粗,透明度
  10. 配置lenovo G400 + Ubuntu 13.04无线网卡BCM43142