chop是去掉字符串的最后一个字符
chomp是去掉“$/”指定的结尾符号

测试程序一:

[perl]
#!/bin/perl

$tmp = "sincere";
chop($tmp);
print "$tmp";
$tmp = "sincere";
chomp($tmp);
print "$tmp";
[/perl]

输出:

[code]
[sincerefly@localhost perl]$ perl chop-chomp
sinceresincere[sincerefly@localhost perl]$
[/code]

测试程序二:

[perl]
#!/bin/perl

$tmp = "sincere\n\n\n";
chop($tmp);
print "$tmp";
$tmp = "sincere\n\n\n";
chomp($tmp);
print "$tmp";
[/perl]

输出:

[code]
[sincerefly@localhost perl]$ perl chop-chomp2
sincere

sincere

[sincerefly@localhost perl]$
[/code]

结论:chop去掉了最后一个字符,chomp去掉了最后一个换行符号

测试程序三:

[perl]
#!/bin/perl

$/ = "";
$tmp = "sincere\n\n\n";
chop($tmp);
print "$tmp";
$tmp = "sincere\n\n\n";
chomp($tmp);
print "$tmp";
[/perl]

输出:

[code]
[sincerefly@localhost perl]$ perl chop-chomp3
sincere

sincere[sincerefly@localhost perl]$
[/code]

结论:当变量“$/”为空串时,chomp函数删除所有的换行标志

测试程序四:

[perl]
#!/bin/perl

$/ = "cere";
$tmp = "sincere\n";
chop($tmp);
print "$tmp";
$tmp = "sincere\n";
chomp($tmp);
print "$tmp";
[/perl]

输出:

[code]
[sincerefly@localhost perl]$ perl chop-chomp4
sincer
sin
[sincerefly@localhost perl]$
[/code]

输出时在print中加入换行,方便观察
结论:成功删除了变量“$/”指定的换行

注:
1,chomp($text=); 一般这样写来从终端读入不带换行的数据
2,“$/”不应该全局更改,并且在文件中使用完成后恢复原值是一个好习惯

Perl基础(1)chop与chomp的区别的更多相关文章

  1. Perl基础速成

    本文是针对没有Perl基础,但想用perl一行式命令取代grep/awk/sed的人,用于速学Perl基础知识. Perl一行式系列文章:Perl一行式程序 perl的-e选项 perl命令的-e选项 ...

  2. Perl基础语法

    一.脚本文件perl 代码可以写在一个文本文件中,以 .pl..PL 作为后缀.文件名可以包含数字,符号和字母,但不能包含空格,可以使用下划线(_)来替代空格.一个简单的Perl 文件名:rurun_ ...

  3. Java基础之comparator和comparable的区别以及使用

    Java基础之comparator和comparable的区别以及使用 1: 区别:  .Comparable类需要实现此接口,定义在类内,不利于扩展 2 .Comparator更灵活,可以随时自定义 ...

  4. Perl 基础语法

    Perl 基础语法 Perl借用了C.sed.awk.shell脚本以及很多其他编程语言的特性,语法与这些语言有些类似,也有自己的特点. Perl 程序有声明与语句组成,程序自上而下执行,包含了循环, ...

  5. python 基础-文件读写'r' 和 'rb'区别

    原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...

  6. Perl exists 函数和defined函数的区别

    Perl exists 函数和defined函数的区别

  7. Perl 中 `cmd` 和system"cmd"的区别

    在perl中,调用系统命令有两种形势,`cmd` 和system"cmd",他们主要的区别是`cmd`会获取返回结果,而system"cmd"会直接将结果输出到 ...

  8. chop 与 chomp 的对比

    chop       截去最后一个字符,无论是什么字符 chomp   截去末尾的分隔符(\n),行分隔符由$/决定 $a="ab\n\n\n"; #截去多个空行. $/=&quo ...

  9. 2.Perl基础系列之入门

    官网提供的入门链接:http://perldoc.perl.org/perlintro.html 语法概述 Perl的安装步骤省略,直接去官网下载并按照提示安装即可. 如果Perl安装没问题,那么运行 ...

随机推荐

  1. error LNK2019: 解析的外部符号 __imp__DispatchMessageW@4,在函数的符号 _WinMain@16 据引述

    错误: 1>WinMain.obj : error LNK2019: 解析的外部符号 __imp__DispatchMessageW@4,在函数的符号 _WinMain@16 据引述 1> ...

  2. Google调试技巧总结

    工欲善其事 工欲善其事,必先利器. Google调试面板一一介绍:F12回想一下大家都应该知道,哈哈 element面板 这个面板显示了页面所有html代码.用于调试css代码.右側展示左側相应选择元 ...

  3. IOS计划 分析

    1.基本介绍 IOS苹果公司iPhone.iPod touch和iPad操作系统和其他设备的发展. 2.知识点 1.IOS系统 iPhone OS(现在所谓的iOS)这是iPhone, iPod to ...

  4. 网站的SEO以及它和站长工具的之间秘密(转)

    博客迁移没有注意 URL 地址的变化,导致百度和 google 这两只爬虫引擎短时间内找不到路.近段时间研究了下国内最大搜索引擎百度和国际最大搜索引擎google的站长工具,说下感受. 百度的站长工具 ...

  5. Codeforces 514 D R2D2 and Droid Army(RMQ+二分法)

    An army of n droids is lined up in one row. Each droid is described by m integers a1, a2, ..., am, w ...

  6. QtQuick桌面应用程序开发指导 3)达到UI而功能_B 4)动态管理Note物_A

    3.2 把Page Item和Marker Item绑定 之前我们实现了PagePanel组件, 使用了三个state来切换Page组件的opacity属性; 这一步我们会使用Marker和Marke ...

  7. vimer

    vimer 第1.0章.统一概念   不管学什么技术,我都深信概念是最重要的.是影响整个学习轨迹,决定能在这个技术领域高度. 当然如果你现在的目的不是在学习而在于解决问题(很多人不愿意承认,或者没发现 ...

  8. android 环境使用smack 必须注冊的组件

    // Private Data Storage pm.addIQProvider("query", "jabber:iq:private",new Privat ...

  9. 一个奇怪的注意事项TNS-12545 TNS-12560 TNS-00515

    近来的reportDB无法从一开始就与系统收听,比较奇怪的现象. 由于server有听众的一个实例上正常启动,这是不是从开始监听器的实例手动启动是正常的.所以写下来未能找到离奇写的原因. 1.故障现象 ...

  10. hdu 统计难题(map)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 map的强大之处,但是运行时间太长. 代码: #include <stdio.h> ...