《Perl语言编程》-- CH01 概述

  • 一个变量就是用来保存一些东西的地方。这个地方有一个名字,这样当你需要使用这些东西
    的时候就知道从哪里找到它。

  • 一个区分变量类型最直接的方法是看变量里面保存了何种数据。Perl变量分类如下:

    • 标量($), 一个独立的数值(数字或字串),$cents
    • 数组(@), 一组有序列值表并且用编号做关键字,@large
    • 散列(%), 一组无序标量值并且用字符串做关键字, %interest
    • 子过程(&), 一段可以调用的Perl代码,&how
    • 类型团(*), 所有叫stuck的东西, *struck
  • 如果你使用了一个尚未赋值的变量,这个未初始化的变量会在需要的时候自动存在.

  • 从某种意义上来说,使用单引号和双引号也是另外一种提供不同环境方法.

  • 数组的脚标可以被看作是偏移量,也就是它前面的元素个数第一个元素前面没有任何元素,因此偏移量是0

  • 散列, 也称 关联数组

    • 是一种特殊的数组,你可以通过 {} 来获取单个的散列元素.
    • 散列包含的关系是所有格的,象英文里面的 of 或者 ‘s.
    • 例如 Adam 的妻子是 Eve,所以我们用下面的表达式:$wife{"Adam"} = "Eve";
    • 散列与数组可以互相的以元素值得形式来使用。
  • Perl 的三种基本数据类型:

    • 标量
    • 标量数组
    • 标量散列/标量联合数组
  • 计算机科学家称之为一个 package 建立了一个名字空间

  • 文件句柄

    文件句柄只是你给文件,设备,网络套接字或管道起的一个名字。这样可以帮助你分清你正在和那个文件或设备通讯,同时掩藏了如缓冲等复杂性。

    使用 open 创建并关联一个文件。 open 函数需要至少两个参数:文件句柄和你希望与文件句柄关联的文件名。

    • open(SESAME, "filename") # 从现存文件中读取
    • open(SESAME, "<filename") # 一样的东西,明确地做
    • open(SESAME, ">filename") # 创建文件并写入
    • open(SESAME, ">>filename") # 附加在现存文件后面
    • open(SESAME, "| output-pipe-command ") # 设置一个输出过滤器
    • open(SESAME, "input-pipe-command | ") # 设置一个输入过滤器

    • 注:打开一个已经打开的文件句柄隐含地关闭第一个文件,让它不能用该文件句柄访问,然后再打开另外一个文件

    使用读行操作符 <> 来读入一行,也称为尖角操作符

  • 什么是真值

    • 除了 “” 和 “0”, 所有字符串为真
    • 除了 0,所有数字为真
    • 所有引用为真
    • 所有未定义的值为假
  • 一个代码段是由一对花括弧括在一起的一些语句。

  • if条件语句,当发现其中的一个条件是真的,就执行它的代码段,然后跳过所有其余的分支。

  • 如果在一个标量环境中使用一个数组,就会返回数组的长度。

    while(@ARGV)
    {
    process(shift @ARGV)
    }
  • for循环在园括弧中有三个表达式:初始化循环变量,对循环变量进行条件判断,修改条件变量。

    • > 当一个 for 循环开始时,设置初始状态并且检查条件判断,如果条件判断为真,就执行循环体。
    • > 执行完毕循环体中的语句,修改表达式执行。并且再次检查条件判断,如果为真,循环体再次执行。
    • > 如果条件判断值一直为真,循环体和修改表达式将一直执行。
    • > 注意只有中间的条件判断才求值,第一个和第三个表达式只是修改了变量的值,并将结果直接丢弃!
  • 使用 next 和 last 跳出控制结构

    • > 基本的用法可以类比于 C 语言中的 continuebreak
    • > 当在循环中做上标记,并且指定了希望退出的循环, next 和 last 就能退出多重循环
  • 正则表达式(regexes/regexps/Res)

    • > 一个正则表达式就是一种方法,这种方法能够描述一组字符串,但不用列出所有的字符串
    • 正则表达式的三种用途:
    • 确定一个字符串中是否匹配某个模式,因为在一个布尔环境中它们返回真或假。
    • 如果你能将一个模式在字符串中定位,你就可以用别的东西来替换它
    • 模式不仅可以声明某地方是什么,同样也可以声明某地方不是什么。例如: split 操作符使用了一个正则表达式来声明哪些地方不能匹配。

    ($good, $bad, $ugly) = split(/,/, "vi,emacs,teco");

  • 我们能教你我们怎么画,但是我们不能教你该画什么。 – 明智的画家的教学理念

  • 猜你喜欢

    转载自blog.csdn.net/liudglink/article/details/81510912
    今日推荐