发表于 2018-9-1 10:08:14

Perl脚本学习笔记(四)

  29.    一旦我们将模块载入,无论是否引入特定的函数,我们均可以使用全名进行引用。
  如:
  use File:Basename qw/ /; #没有引入函数
  my $dirname = File::Basename::dirname $name; #使用模块中的dirname
  30.    散列:
  %表示进行散列,
  引用《Perl语言编程_3rd》(Larry Wall等人合著)的话:
  “散列是一组无序标量,可以通过和每个标量关联的字符串进行访问.因为这个原因,散列经常被称为关联数组.但是这个名字太长了,因为会经常提到它,我们决定给它起一个简短的名字.我们称之为散列的另外一个原因是为了强调它们是无序的.(在 Perl 的内部实现中,散列的操作是通过对一个散列表查找完成的,这就是散列为什么这么快的原因,而且无论你在散列中存储多少数据,它总是很快).然而你不能 push 或 pop 一个散列,因为这样做没有意义.一个散列没有开始也没有结束.不管怎么样,散列的确非常有用而且强大.如果你不能理解散列的概念,那你还不能算真正的了解 Perl.
  ......
  因为散列是一种特殊的数组,你可以通过 {} 来获取单个的散列元素.比如,如果你想找出与关键字 Wed 对应的值,你应该使用 $longday{"Wed"}.
  ......
  注意这个例子:
  $wife{"Jacob"} = ["Leah", "Rachel", "Bilhah", "Zilpah"];
  $wife{"Jacob"} = "Leah";
  $wife{"Jacob"} = "Rachel";
  $wife{"Jacob"} = "Bilhah";
  $wife{"Jacob"} = "Zilpah";
  $kids_of_wife{"Jacob"} = {
  "Leah"   => ["Reuben", "Simeon", "Levi", "Judah", "Issachar", "Zebulun"],
  "Rachel" => ["Joseph", "Benjamin"],
  "Bilhah" => ["Dan", "Naphtali"],
  "Zilpah" => ["Gad", "Asher"],};
  $kids_of_wife{"Jacob"}{"Leah"}   = "Reuben";
  $kids_of_wife{"Jacob"}{"Leah"}   = "Simeon";
  $kids_of_wife{"Jacob"}{"Leah"}   = "Levi";
  $kids_of_wife{"Jacob"}{"Leah"}   = "Judah";
  $kids_of_wife{"Jacob"}{"Leah"}   = "Issachar";
  $kids_of_wife{"Jacob"}{"Leah"}   = "Zebulun";
  $kids_of_wife{"Jacob"}{"Rachel"} = "Joseph";
  $kids_of_wife{"Jacob"}{"Rachel"} = "Benjamin";
  $kids_of_wife{"Jacob"}{"Bilhah"} = "Dan";
  $kids_of_wife{"Jacob"}{"Bilhah"} = "Naphtali";
  $kids_of_wife{"Jacob"}{"Zilpah"} = "Gad";
  $kids_of_wife{"Jacob"}{"Zilpah"} = "Asher";”
  31.    每个嵌套的 my 会生成一个新变量,每个嵌套的 local 也生成一个新变量。但是每次你使用 our 的时候,你实际上是说同一个变量,不管你有没有嵌套。

页: [1]
查看完整版本: Perl脚本学习笔记(四)