系统学习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。
原创文章如转载,请注明:转载自[]
本文链接: