Perl笔记

[文章作者:陈臻 本文版本:v1.2 最后修改:2008.11.5 转载请注明原文链接:http://www.54chen.com/c/75]

系统学习perl,基础问题复习期间,先提问题,再回答

1.@和$和%以及&的区别是什么?

@===

在数组名前加@(后没有中括号)来引用整个数;

$===

标量变量可以存放一个标量值。标量变量的名字由一个美圆符号($)后接Perl 标识符:由字母或下划线开头,后接字母,数字,或者下划线。或者说由字母,数字和下划线组成,但不能由数字开头。大小写是严格区分的:变量$Fred 和变量$fred是不同的;

%===

要引用整个hash,使用百分号(“%”)作为前缀。

%some_hash = (“foo”, 35, “bar”, 12.4, 2.5, “hello”, “wilma”, 1.72e30, “betty”, “bye\n”);

my %last_name = (
“fred” => “flintstone”,
“dino” => undef,
“barney”=> “rubble”;
“betty”=> “rubble”,
);

&===

可以使用子程序的名字(前面带&)来调用子程序.

2.qw()做什么用的?

qw 表示“quoted words”或者“quoted by whitespace”,作用是将一串包含空格的字符串以空格拆分为字符列表。

3.两种上下文环境分别是?

标量和列表上下文

4.$_等默认的变量名都有哪些及用处?

$_----------------

如果在foreach 循环中省略了控制变量,那Perl 会使用其默认的变量:$_。除了其不寻常的名字外,这和普通变量类似,如
下面代码所示:
foreach(1..10){ #使用默认的变量$_
print “I can count to $_!\n”;
}

@_---------------

这也就是说此子程序参数的第一个值存放在$_[0]中,第二个存放在$_[1],依次类推。但必须强调的是这些变量和$_这个变量没有任何关系,如$dino[3](数组@dino 的一个元素)和$dino 的关系一样。这些参数必须存放在某个数组变量中,而Perl存放在@_这个变量中。

5.chomp()的作用是什么?

去掉换行符(\n)

6.<>的作用是什么?(例如while(<>))

尖括号操作(<>)是一种特殊的行输入操作。其输入可由用户选择;由于<>通常被用来处理所有的输入,因此在同一个序中重复使用是不正确的。

7.print @array;和print "@array"的区别是什么?

前者输出@array的值,后者输出其个数。

8.my是什么意思?用和不用my有什么区别?

默认情况下,Perl 中所有变量都是全局的;也就是说,这些变量可以在程序的任意部分使用。你也可以任意时候使用my创建私有变量。

9.列出控制循环的几个关键字 next last等及作用?

last 会立刻结束循环。(这同C 语言或其它语言中的“break”语句类似);

有时还不希望结束循环,但本次循环已经结束。这种情况下,next 是非常适用的。它跳到当前循环块的最后面(块内)。next 之后,又会进入下一轮循环(这和C 或者类似语言的“continue”相似);

循环控制的第三个操作是redo。它会调到当前循环块的顶端,不进行条件表达式判断以及接着本次循环。(在C 或类似语言中没有这种操作。);

 

10.$#rocks是什么意思?

rocks 数组最后一个元素的索引为$#rocks,和数组中元素的
个数是不同的,因为数组中包含元素0。


原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]

捐款订阅54chen
捐赠说明

Comments