标量数据

标量:数字、字符。可以存储在标量变量中也可以从文件和设备中读取。

数字:所有数字内部格式相同——双精度浮点数。

浮点数直接量:程序员在程序中直接键入的数字。

整数直接量:61298040283768==61_298_040_283_768;

操作:

字符串:字符串长度没有限制。

usr utf8;

单引号内的字符串直接量:除了单引号和反斜线字符外,单引号内的所有字符都表示自身。

双引号内的字符串直接量:

字符串操作符:连接操作.  特殊的字符串重复操作符——x。

"fred" x 3=="fredfredfred"。

perl内置警告功能:用use warning;或者 $perl -w my_program或者#!/usr/bin/perl-w。

更加详细的问题描述:use diagnostics;在perldiag文档中列有简要警告信息和详细诊断说明。

如果把'12fred34'当数字用,perl就会发出警报 'Argument "12fred" isn't numeric.'

虽然发出了警报,但perl仍然会按照默认规则把'12fred34'转换成12。

内插问题:进行内插时,Perl会尽可能使用最长且合法的变量名称。要是你想在内插的值后直接输出字母 数字 下划线,可能会碰上麻烦。

解决方法比较简单,和shell脚本一样,Perl里面我们可以用一对花括号将变量名括起来避免歧义,也可以将字符串拆分成两半,在利用链接操作符拼接起来。

代码点(code point)???

操作符:

布尔值:

上面还隐藏着一个技巧,字符串'0'和数字0是同一个标量值,所以Perl会将他们一视同仁。也就是说,字符串'0'是唯一被当成假的非空字符串。

获取用户输入

<STDIN>

<STDIN>读入时会将最后的回车也读进去。如果需要去掉可以用:chomp()操作去掉。

chomp()操作符:将字符串末尾的换行符去掉。chomp()一般用作连用如:

chomp($text=<STDIN>);

undef值:将undef当作数字用,则其为0;如果把其当作字符串来用,则其值为空字符串。

既然undef作为数字时会被视为0,我们的累加器可以构造成如下(sum不需要初值):

同理也可以做一个字符串累加器。

defined函数:行输入操作符<STDIN>有时会返回undef。在一般情况下返回一行文本,但若没有更多输入,比如读到文件尾(end_of_file)时,就需要用undef来表示这个状况。要判断某个字符串是不是空串需要用defined函数。

#!/usr/bin/perl
$madonna=<STDIN>;
if(defined($madonna)){
print "The input was $madonna.\n";
}
else{
print "NO input available.\n";
}

perl学习笔记一的更多相关文章

  1. Perl 学习笔记-标量数据

    最近学习Perl, 准备看一遍入门指南,关键的东西还是记录下来,以便以后复习和查看参考. 笔记来自<<Perl语言入门第5版>> 1. 在Perl内部,不区分整数值和浮点数值, ...

  2. Perl 学习笔记-高级控制结构

    1.unless控制结构 类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码;  unless(<condition>){code...;} 等价于  if(<con ...

  3. Perl 学习笔记-列表和数组

    笔记来自<<Perl语言入门第5版>> 1. Perl中列表指标量的有序集合,数组则是存储列表的变量, 这两个术语经常混用,不过更精确地说,列表指数据,而数组指变量.数组的表示 ...

  4. perl学习笔记

    一.正则表达式 匹配一个文件中的某个单词,并打印出来 #!/usr/bin/perl use strict; use warnings; ; open(FILE, "< temp.pl ...

  5. perl学习笔记(4)——动态加载

    在写perl的时候,如果要应用到各种平台的话,比如linux 和windows,会遇到各种问题,有时就是要根据系统类型来加载各种库,之前写的就是这样的, if($^O eq 'linux'){ use ...

  6. perl学习笔记(3)—— 坑

    (1)用perl来ls一个目录: 写perl的时候,经常要调用到系统命令,perl有很多等价的函数可以用,但是,不小心任性了,就想用system来实现了,好吧,来个ls把,列出指定的一个目录,直接上代 ...

  7. perl学习笔记(2)

    1)记得刚开始写perl的时候,对于一个功能,总是拿目前能用的数据类型来解决问题,不想想有没有更好的,能用能解决问题就好,这就导致了后期,要在函数里面添加功能的时候,函数要添加很多参数,一个函数有7. ...

  8. perl 学习笔记

    一:基础 1:安装perl      centos: yum -y install perl       官网:https://www.perl.org/      升级到5.22:先下载,执行./i ...

  9. 【Perl学习笔记】2. perl中的bless理解

    bless有两个参数:对象的引用.类的名称. 类的名称是一个字符串,代表了类的类型信息,这是理解bless的关键. 所谓bless就是把 类型信息 赋予 实例变量. 程序包括5个文件:person.p ...

  10. 【Perl学习笔记】1.perl的ref 函数

    perl有引用的概念:一组数据实际上是另一组数据的引用.这些引用称为指针,第一组数据中存放的是第二组数据的头地址.引用的方式被用得相当普遍,特别是在面向对象的模块.函数的参数传递等常见.但perl对每 ...

随机推荐

  1. js实景题

    测天然气流量的仪器每5分钟向数据库插入一条数据,[{time:18:05,value:222},{time:18:10,value:333},{time:18:15,value:444}....... ...

  2. 水(NOIP模拟赛Round #10)

    题目描述: 小Z有一个长度为的数列.他有次令人窒息的操作,每次操作可以使某个数字或.他当然是希望这些数字的乘积尽量小了.为了简化题目,你只需输出操作完成后的数列即可. ———————————————— ...

  3. vifx.y-emu 和 vifx.y 和 tapx.y

    xen 启动虚拟机后,domain0 可以看到虚拟网卡设备,但是有几种显示 tapx.y , vifx.y 或者 vifx.y-emu . 在我的实验里,同样的配置,如 vif = ["ty ...

  4. linux题目整理(二)

    1.如何过滤出已知当前目录下oldboy中的所有一级目录(不包含子目录,即只能是一级目录) 方法1:find ./ -type d -maxdepth 1方法2:ls -F方法3:ls -l  | g ...

  5. python的tips:字符和字符串的问题

    今天,自己建立了一个redis,python去访问的时候, 设置可以key以后,再读取key,返回的是字符, 和字符串比较,需要做一个转换, 信息如下: import redisr=redis.Red ...

  6. 【转载】SSIS 64位环境访问Oracle11g

    转载博客:http://www.dotblogs.com.tw/allanyiin/archive/2010/11/21/19585.aspx SSIS 为了要能够在64位的机器上面让SSIS存取Or ...

  7. 【转载】SQL server connection KeepAlive

    1.什么是SQL server TCP连接的keep Alive? 简单说,keep alive 是SQL server在建立每一个TCP 连接的时候,指定了TCP 协议的keepaliveinter ...

  8. Javascript"怪异"现象

    下面给大家看个例子,这个毫无疑问打印出10 var a = 10; function test() { console.log(a); } test(); 下面我改动一下 var a = 10; fu ...

  9. JDK7集合框架源码阅读(七) ArrayDeque

    基于版本jdk1.7.0_80 java.util.ArrayDeque 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to li ...

  10. Netty源码学习(一)Netty线程模型

    给你一台4路E7-4820V2(32核心64线程),512G内存的服务器,你该如何编程才能支持百万长连接? 最直接的想法是采用BIO的模式,为每个连接新建一个线程,在一一对应的线程中直接处理连接上的数 ...