Perl 学习笔记-标量数据

最近学习Perl, 准备看一遍入门指南,关键的东西还是记录下来,以便以后复习和查看参考.

笔记来自<<Perl语言入门第5版>>

1. 在Perl内部,不区分整数值和浮点数值,所有数字的内部格式都相同,采用"双精度浮点数"运算,自动转换.范围值(1e-100到 1e100)

2. 可以在一个很大的数中间插入下划线,便于阅读: 61_298_040_283_768,在取模运算时,如果其中一边或两边都是负数,则不同的Perl版本可能会有不同结果.不能计算负数的负数次方,因为会得到复数,用复数可以用Math::Complex模块.

3. 字符串:

  1) 最长字符串没有长度限制,遵循"无内置限制"(no built-in limits)的原则

  2) 空字符(NULL)在Perl中没有特殊的意义,Perl会用其他方式记住字符串的长度.而不是用空字符来表示字符串的结尾.

  3) 可以将一个图形文件或编译过的可执行文件读到一个Perl字符串变量中,修改内容后再写回去.

  4) 字符串直接量两种形式:

    单引号内的字符串: 除了单引号和反斜线符,单引号内的所有字符都代表它们自己,包括换行符(注意:\n在单引号内不代表换行,而时反斜线和n两个字符.同时,只有在后面是另一个反斜线或者单引号时,前面的反斜线才有转义的含义)

    双引号内的字符串: 其中的反斜线可以用来表示控制字符,或是用八进制或十六进制写法来表示任何字符.用\n表示换行符.支持变量内插(variable interpolated).

  5) 字符串操作: 用 . 号连接;用小写字符 x 来计算重复,如: "roger" x 3,表示3个roger字符串相连,如果左边操作数是数字,则会先将其转换为字符串,右边操作数如果时小数,会先将其取整.

4.   声明警告信息

1 perl -w my_program #方法1
2
3 #! usr/bin/perl -w #方法2
4
5 #! usr/bin/perl
6 use warnings  #方法3
7
8 #! usr/bin/perl
9 use diagnostics  #方法4

5.   运算符.

  数值运算使用符号 == != < > <= >= 等等

  字符串中同样的运算采用 eq ne lt gt le ge等等

  undef == 0 返回1,undef eq ‘‘ 返回1,undef 既不是字符串,也不是数值,相当于null,当成数值使用时会被当成0,当成字符串使用时会被当成空字符串.Perl程序员常常根据需要,把新变量当成0或空字符串来使用.复制一个undef 变量到另一个变量美柚问题,但是用print 输出就会引发警告.

6. 控制结构

  1> 可选的程序块周围一定要加上花括号表示界限(在C语言中不一定)

  2> Perl 中没有专门的布尔数据类型,它是靠一些简单规则的判断的.

    a) 如果值为数字,则0为假,其他为真

    b) 如果值为字符串,空串为假,其他为真

    c) 非数值或字符串,会先转换成数字或字符串再判断

    d)特例:字符串 ‘0‘ 和数字0在Perl中指同一个标量,所以,‘0‘ 是唯一一个被当成假的非空字符串.

    e) 可以使用 ! 来取反

7.   获取用户输入

1 #! usr/bin/env perl
2 $line = <STDIN>; #行输入操作符
3 if($line eq "\n"){ #‘\n‘is wrong!
4     print "This is a blank line!\n";
5 }else{
6     print "The input is :${line}\n";
7 }

用户输入字符串之后再输入换行符‘\n‘,输入信息就保存在字符串$line中,但是‘\n‘也成了字符串的一部分,它并不会像C语言一样会将‘\n‘转换成‘\0‘.很多时候想去掉结尾的‘\n‘符,可以用chomp()处理.

1 #! usr/bin/env perl
2 $line = <STDIN>;
3 chomp($line);  #去掉换行符‘\n‘
4 #也可以 chomp($line = <STDIN>);
5 if($line eq "a"){ #如果没有去掉,那么就是: ($line eq "a\n")为真
6     print "yes\n";
7 }else{
8     print "$line";
9 }

chomp的括号也可以去掉,遵循Perl的惯例,除非去掉括号会改变表达式的意义,否则括号用不用都可以.chomp函数返回的是去掉的字符数 ,如果字符串后面有多个换行符,chomp()只会去掉最后一个.

时间: 2024-10-12 23:05:14

Perl 学习笔记-标量数据的相关文章

Perl学习笔记(一)--简介

1. 查看当前所用Perl版本号 ? 1 perl –v 2.  一个简单的Perl程序 ? 1 2 3 print "hello world"; #这是注释 执行它: ? 1 Perl helloWorld.txt 文件名后缀可以是pl可以是txt 3. 一个稍微复杂点的Perl程序 ? 1 2 3 4 5 6 @line = `perldoc -u -f atan2`; //运行一个外部命令,通过反引号来调用,将输出结果一行行依次存储在@line这个数组变量中 foreach(@l

PERL学习笔记---正则表达式的应用

使用m//匹配 //这是m//(模式匹配)的一种简写.同qw//操作一样,可以使用任何成对的分隔符.因此,可以使用m(fred), m<fred>, m{fred}, m[fred],或者m,fred,, m!fred!, m^fred^,其它非成对的分隔符也可以 不区分大小写:/i if(/yes/i) {#大小写无关 print “In that case, I recommend that you go bowling.\n”;} 匹配任何字符:/s 默认情况下,点(.)不匹配换行符,这

python 学习笔记 3 -- 数据结构篇上

数据结构是可以处理一些 数据 的 结构 .或者说,它们是用来存储一组相关数据的.在Python中有三种内建的数据结构--列表.元组和字典.本文主要对这三种数据类型以及相关的使用做介绍,以例子的形式演示更加容易理解! 1.列表(List) 列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.在Python中,你在每个项目之间用逗号分割. 列表中的项目应该包括在**方括号**中,这样Python就知道你是在指明一个列表.一旦你创建了一个列表,你可以添加.删除或是搜索列表中的

python 学习笔记 3 -- 数据结构篇下

5.引用 当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 引用 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存.这被称作名称到对象的绑定.eg. [python] view plaincopy # -*- coding: utf-8 -*- shoplist = ['apple', 'mango', 'carrot', 'banana'] print "we copy the shoplist to mylist directly \"with

springmvc学习笔记(15)-数据回显

springmvc学习笔记(15)-数据回显 springmvc学习笔记15-数据回显 pojo数据回显方法 简单类型数据回显 本文介绍springmvc中数据回显的几种实现方法 数据回显:提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面. pojo数据回显方法 1.springmvc默认对pojo数据进行回显. pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写) 使用@ModelAttribute

Android开发学习笔记:数据存取之SQLite浅析

一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的

perl学习笔记--搭建开发环境

windows下perl开发环境搭建 perl下载地址:http://www.activestate.com/developer-tools 各个插件的安装方法:(通过代理上网的方法) 方法一:padwalker的安装步骤 1. padwalker下载地址: http://www.bribes.org/perl/ppm/ 2. 解压下载的文件 4. 拷贝 blib/lib/PadWalker.pm 到 Perl/lib(你的安装路径)5. 拷贝 blib/arch/auto/PadWalker

Symfony2学习笔记之数据校验

校验在web应用程序中是一个常见的任务.数据输入到表单需要被校验.数据在被写入数据库之前或者传入一个webservice时也需要被校验. Symfony2 配备了一个Validator 组件,它让校验工作变得简单易懂.该组件是基于JSR303 Bean校验规范.一个Java规范用在PHP中. 基本验证理解校验的最好方法是看它的表现.首先,假设你已经创建了一个用于你应用程序某个地方的PHP对象. //src/Acme/BlogBundle/Entity/Author.php namespace A

Windows phone 8 学习笔记(2) 数据文件操作(转)

Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方.本节主要讲解它们的用法以及相关限制性.另外包括本地数据库的使用方式. 快速导航:一.分析各类数据文件存储方式二.安装文件夹三.本地文件夹(独立存储空间)四.媒体库操作五.本地数据库 一.分析各类数据文件存储方式 1)安装文件夹 安装文件夹即应用安装以后的磁盘根文件夹,它提供只读的访问权限.它在手机中对应的路径为" C:\Data\Programs\{XXXXXXX

#学习笔记#JSP数据交互

#学习笔记#JSP数据交互 数据库的使用方式: 当用户在第一个页面的查询框输入查询语句点提交的时候我们是用什么样的方式完成这个查询的? 答:我们通过在第一个页面提交表单的形式,真正的数据库查询时在第二个服务器页面进行的,第一个request对象里面放置了查询的内容,我们可以通过request.getParameter()方法获得,在服务器内我们之间把所有的查询直接用html语句输出是很困难的,所以我们把查询的结果赋给request的Attribute,使用request.sex`x`x``tAt