📜  Perl面试问题

📅  最后修改于: 2021-01-07 08:45:12             🧑  作者: Mango

Perl面试问题

1)什么是Perl?

Perl的代表对于P racticalËxtractionR eporting大号anguage。这是由Larry Wall编写的高级编程语言,专门用于处理文本。它支持面向对象的编程,并且其语法与C语言非常相似。使用起来更加灵活。由于其强大的文本处理能力,它已成为编写CGI脚本的最受欢迎的语言之一。

有关更多信息:单击此处。

2)是Perl编译器还是解释器?

据说Perl既是编译器又是解释器。它读取源代码,在执行之前将程序转换为字节码,然后运行它。因此,Perl有时被称为解释器/编译器。

3)Perl中的哪个运算符用于两个字符串的串联?

用于字符串的连接运算符(。)运算符。

4)什么是Perl中的CPAN?

CPAN代表综合Perl存档网络。它是一个包含数千个Perl模块的存储库。

5)Perl语言有哪些功能?

Perl的功能:

  • 它具有非常简单的面向对象的编程语法。
  • 它易于扩展,因为它支持25,000个开源模块。
  • 它支持Unicode。
  • 包括强大的工具来处理文本,使其与HTML,XML等标记语言兼容。
  • 它支持第三方数据库,包括Oracle,MySQL和许多其他数据库。
  • 它可以嵌入到其他系统中,例如Web服务器和数据库服务器。
  • 它是GNU许可的开源软件。
  • 许多框架都是用Perl编写的。
  • 它可以处理加密的Web数据,包括电子商务交易。
  • 它是一种跨平台的语言。
  • 它提供了可以转换任何文本的正则表达式引擎。

有关更多信息:单击此处。

6)Perl语言的优缺点是什么?

Perl的优点:

Perl的缺点

7)在Perl中定义print()函数?

Perl print()函数将得到的所有内容作为参数输出。

8)在Perl中定义say()函数?

Perl的较早版本不支持Perl say()函数。就像Perl print()函数,只有一个区别是它会在末尾自动添加新行。

9)定义动态范围。

将临时值分配给全局变量称为动态作用域。

10)解释词汇变量。

通过使用“ my”运算符创建的并且本质上为private的变量称为词法变量。

11)何时进行循环参照?

当两个引用也包含彼此的引用时,就会发生循环引用的情况。

12)取消引用会发生什么?

返回从参考点到位置的值。

13)read()命令有什么作用?

read()命令用于从缓冲的文件句柄中读取信息块。

14)“ ne”运算符什么用?

运算符将左字符串的值与右字符串的值进行比较,如果它们不相等,则返回true。

15)q {}运算符做什么?

运算符将字符串括在单引号中。

16)qq {}运算符做什么?

运算符将字符串括在双引号中。

17)qx {}运算符做什么?

运算符将字符串括在反引号中。

18)Perl中有几种数据类型?

Perl具有三种数据类型:

  • 标量
  • 数组
  • 散列

有关更多信息:单击此处。

19)什么是Perl变量?

变量是用于存储保留一些内存空间的值的位置。 Perl根据上下文对相同变量的处理不同。

Perl变量有三种类型:

  • 标量
  • 数组
  • 散列

有关更多信息:单击此处。

20)什么是标量?

标量包含单个数据单位。它们前面带有($)符号。标量包含数字,字符,引用或字符串。引用是变量的地址。

有关更多信息:单击此处。

21)Perl中的数组是什么?

数组包含标量值的有序列表。它前面带有(@)符号。要访问Perl数组($)中的单个元素,请使用符号。

有关更多信息:单击此处。

22)如何在Perl中找到数组的长度?

数组的大小由数组上的标量上下文确定。数组长度将始终大于其最大索引。

Perl大小= $#arrayName +

其中$#arrayName是数组的最大索引。

有关更多信息:单击此处。

23)什么是Perl数组函数?

Perl数组函数用于添加或删除数组中的某些元素。

Perl数组函数有四种类型:

  • 流行音乐
  • 转移
  • 换档

有关更多信息:单击此处。

24)什么是Perl推送数组函数?

Perl推入数组函数在数组的末尾追加一个新元素。

有关更多信息:单击此处。

25)什么是Perl pop数组函数?

Perl pop数组函数删除数组的最后一个元素。

有关更多信息:单击此处。

26)什么是Perl移位数组函数?

Perl shift数组函数从数组缩短数组中删除最左边的元素1。

有关更多信息:单击此处。

27)什么是Perl unshift数组函数?

Perl shift数组函数在数组的开头添加了一个新元素。

有关更多信息:单击此处。

28)如何替换Perl数组元素?

Perl拼接数组函数删除元素并将其替换为指定的元素列表。

有关更多信息:单击此处。

29)如何在Perl中将字符串转换为数组?

Perl的分裂数组函数分割字符串转换成字符串数组。从而将字符串转换为数组。

有关更多信息:单击此处。

30)如何在Perl中将数组转换为字符串?

Perl连接数组函数将多个数组组合成一个字符串。因此将数组转换为字符串。

有关更多信息:单击此处。

31)如何在Perl中合并两个数组?

Perl合并数组函数通过删除两个数组之间的所有逗号将它们合并为一个数组。

有关更多信息:单击此处。

32)如何在Perl中对数组排序?

Perl排序数组函数根据ASCII标准对数组的所有元素进行排序。

有关更多信息:单击此处。

33)哈希是什么?

Perl哈希是一组无序的键值对。键是唯一的字符串,值是标量值。它前面带有(%)符号。可以使用其键值对其进行访问。

有关更多信息:单击此处。

34)如何知道Perl中是否存在密钥?

使用Perl exist函数,可以检查哈希中是否存在键。如果密钥存在,则返回true。

有关更多信息:单击此处。

35)如何在Perl中的哈希中添加元素?

要在哈希中添加新的键值对,请将它们声明为哈希变量中的单个变量。

有关更多信息:单击此处。

36)在Perl中删除功能有什么函数?

要删除哈希元素,请使用delete函数。它从哈希中删除键和值元素。

有关更多信息:单击此处。

37)undef在Perl中起什么函数?

undef函数从哈希中删除该值,但其键仍保留在那里。

有关更多信息:单击此处。

38)Perl数组和Perl哈希之间有什么区别?

Perl数组:它们是元素的有序列表,按索引号定位。用@符号表示。

Perl哈希:它们是元素的无序列表,由其键值定位。用%符号表示。

39)Perl列表和Perl数组有什么区别?

Perl列表是一种在Perl源代码中组织数据的方法。它是标量的固定集合。它们始终是一维的。

Perl数组是一种以变量形式存储数据的方法。它们是多维的。

40)在Perl中使用和需求之间有什么区别?

用途:仅用于Perl模块。包含的模块在编译时已验证。它不需要文件扩展名。

要求:它用于Perl模块和库。包含的对象在运行时进行验证。它确实需要文件扩展名。

41)Perl中有多少个循环控制关键字?

循环控制语句有三种类型:

  • 下一个
  • 持续
  • 重做

42)在Perl中,下一条语句做什么?

Perl next语句类似于C中的continue语句。它使您可以继续执行数组的下一个元素,或跳过它们之间的所有元素。

有关更多信息:单击此处。

43)Last语句在Perl中起什么作用?

Perl next语句类似于C中的break语句。它存在循环,立即跳过剩余代码。

有关更多信息:单击此处。

44)重做语句在Perl中有什么作用?

Perl重做语句无需评估控制语句即可重新启动当前循环。

有关更多信息:单击此处。

45)定义Perl中使用的运算符?

Perl运算符是一系列符号,例如+,-,=,<,>等。它使用其操作数作为参数。

  • 模式匹配运算符:(=〜,!〜)
  • 移位运算符:(>>,<<)
  • 运算符:(==,!=,<=,> =,<=>)
  • 逻辑运算符:&&,||

有关更多信息:单击此处

46)Perl警告的重要性是什么?

Perl警告通过发出警告来帮助我们检查代码中的错误。

要启用它们,请使用-w:

perl -w scriptName.pl

另外,您也可以在“ shebang”行中提供它:

#/usr/local/bin/perl -w

47)为什么我们在Perl中使用“ use strict”?

Perl中的“使用严格”命令称为严格编译指示。此实用程序有助于捕获脚本中的某些错误或错误并停止程序执行。

有关更多信息:单击此处。

48)什么是Perl字符串?

字符串是Perl的重要组成部分。它们是标量,因此它们以$符号开头。字符串可以放在单引号或双引号内。

有两种类型的字符串运算符:

  • 串联(。)
  • 重复次数[x]

有关更多信息:单击此处

49)Perl中的插值是什么?

插值意味着插入具有不同性质的内容。可以定义为用其值替换变量。

50)Perl中字符串中的单引号(')和双引号(“)之间有什么区别?

在单引号中,将按字符串内给出的值打印该值,而不会进行内插。

在双引号中,该值在字符串内给定的内插值下打印。

有关更多信息:单击此处。

51)在Perl中解释substr函数?

substr函数用于截断字符串。该字符串将被截断为我们提供的偏移值。

有关更多信息:单击此处。

52)如何在Perl中比较两个字符串?

为了在Perl中比较两个字符串,使用了eq而不是(==)。它检查两个字符串是否相等。

有关更多信息:单击此处。

53)如何确定Perl中的字符串长度?

字符串长度可以使用length()函数确定。

有关更多信息:单击此处。

54)如何在Perl中print字符串中的转义字符?

转义字符是特殊字符,例如@,\,/,&,$,“等。要print转义字符在转义字符前加反斜杠(\)。

有关更多信息:单击此处。

55)什么是Perl中的qq(double q)运算符?

qq运算符用括号将字符串周围的双引号替换。您可以使用qq代替(“”)。

有关更多信息:单击此处。

56)Perl中的q(单q)运算符是什么?

q运算符用括号将字符串周围的单引号引起来。您可以使用q代替(')。

有关更多信息:单击此处。

57)Perl中的STDIN是什么?

STDIN代表标准输入。使用此输入,我们可以从标准控制台获取输入。可以缩写为<>。

有关更多信息:单击此处。

58)Perl中的goto语句是什么?

Perl goto语句是跳转语句。它通过跳到循环内的另一个标签来转移控制权。

共有三种goto形式:

  • 转到标签
  • 转到EXPR
  • 转到&NAME

有关更多信息:单击此处。

59)如何在Perl中发表评论?

与其他语言一样,Perl在其代码中也提供了注释功能。有单行和多行注释。

对于单行注释:在要注释的行之前使用#。

对于多行注释:在要注释的行之前和之后分别使用= begin= cut语句。

有关更多信息:单击此处。

60)解释Perl中的正则表达式吗?

正则表达式是字符的字符串,其限定特定的图案。

Perl中包含三个正则表达式运算符:

  • 匹配正则表达式运算符,m //
  • 替代正则表达式运算符s ///
  • 音译正则表达式运算符tr ///

有关更多信息:单击此处。

61)解释Perl中的split函数吗?

Perl split函数以指定的分隔符模式(例如-,/ 、:等)分割字符串。默认情况下,如果未指定任何空格,则将空白假定为分隔符模式。

有关更多信息:单击此处。

62)解释Perl中的加入函数?

Perl联接函数在数组的每个元素之间或之后联接符号或字符。

有关更多信息:单击此处。

63)在Perl中解释子例程?

Perl子例程使您可以在程序中重用代码。他们接受参数,执行操作并返回值。子例程在其名称之前用'sub'关键字声明。在Perl中,函数和子例程可互换使用。

有关更多信息:单击此处。

64)如何访问传递给Perl子例程的参数?

使用特殊数组@_在子例程内部访问参数。因此,参数将以$ _ [0],$ _ [1],$ _ [2],$ _ [3]等开头。

有关更多信息:单击此处。

65)解释在Perl中使用“ my”关键字吗?

“ my”关键字将变量限制为可以在其中使用和访问它的特定区域。在此区域之外,不能使用此变量。

有关更多信息:单击此处。

66)解释一下Perl中“ my”变量和“ local”变量作用域声明之间的区别吗?

用'my'关键字声明的变量位于代码块内,并且无法在该块内调用的函数中继承其可见性。

用'local'关键字声明的变量位于代码块内,并在该块内调用的函数中具有可见性。

67)解释Perl中变量的默认范围吗?

默认情况下,除非在本地定义,否则Perl中的所有变量都是全局变量。可以从程序中的任何位置访问它们。

有关更多信息:单击此处。

68)Perl中的词汇变量是什么?

词法变量是在Perl中使用“ my”关键字创建的。它们是私有变量。

69)您将如何在Perl中创建文件?

要在Perl中创建文件,请在文件名前使用'>'符号。它将创建一个新文件。

有关更多信息:单击此处。

70)您将如何在Perl中以只读模式打开文件?

要以只读模式打开文件,请使用'<'符号。您只能读取此文件,不能写入任何内容。

有关更多信息:单击此处。

71)您将如何在Perl中以只写模式打开文件?

要以只写模式打开文件,请使用'>'符号。如果您打开的文件不存在,将被清空或截断,否则将创建一个新文件。

有关更多信息:单击此处。

72)如何防止Perl中的文件截断?

以只写模式打开文件会截断该文件的数据。为防止这种情况,请使用符号“ +>”。它将阻止您的数据,您可以在文件的最后附加新数据。

有关更多信息:单击此处。

73)Perl中“ >>”的用法是什么?

“ >>”符号打开一个带有附加目的的文件。它将指针放在文件的末尾,您可以在其中添加新数据。

有关更多信息:单击此处。

74)如何从Perl中的文件中读取一行?

$ row = <$ fh>作为变量将在文件中print一行。

有关更多信息:单击此处。

75)如何从Perl中的文件中读取多行?

在while循环中将$ row = <$ fh>作为变量将print文件中的所有行。

有关更多信息:单击此处。

76)如何在Perl中关闭文件?

在Perl中关闭文件不是强制性的。但是,使用close()函数会将文件句柄与相应的文件解除关联。

有关更多信息:单击此处。

77)如何在Perl中复制文件?

要将一个文件的内容复制到另一个文件中,请在while循环中读取第一个文件的所有行,然后将其复制到另一个文件中。

有关更多信息:单击此处。

78)在Perl中解释“->”吗?

这是一个符号链接,将一个文件名链接到一个新文件名。

例如,在file1-> file2中,如果读取file1,则最终将读取file2。

79)在Perl中解释一个tell函数?

tell函数可以找到您在文件中的位置。这是在文件处理过程中要做的第一件事。

80)文件测试运算符在Perl中做什么?

文件测试运算符检查有关文件的其他信息,例如文件类型,文件字节大小,其UID或GID等。

有关更多信息:单击此处。

81)如何在Perl中打开目录?

opendir函数用于在Perl中打开目录。成功返回true,失败返回false。

82)如何在Perl中创建目录?

mkdir函数用于在Perl中创建目录。您需要具有创建目录的权限。

83)如何在Perl中读取目录?

readdir函数用于读取Perl中的目录。在标量上下文中,它将逐项返回每个项目。在列表上下文中,它将在一条语句中返回目录的所有内容。因此,列表上下文比标量上下文使用更多的内存。

84)如何在Perl中删除目录?

rmdir函数用于在Perl中删除目录。您要删除的目录在删除之前应该为空。

85)如何在Perl中更改目录?

chdir函数用于在Perl中更改目录。要更改目录并进入新目录,您需要必需的权限。

86)如何在Perl中关闭目录?

closeir函数用于关闭Perl中的目录。此函数正式关闭目录句柄和目录之间的连接。

87)Perl中的chop()函数是什么?

Perl chop()函数从字符串删除最后一个字符,无论该字符是什么。它返回切碎的字符。

有关更多信息:单击此处。

88)Perl中的chomp()函数是什么?

Perl的格格()函数将删除字符串的末尾任何字符。它返回从字符串删除的字符数。

有关更多信息:单击此处。

89)die()函数在Perl中做什么?

Perl die()函数为我们提供了正确的错误消息。遇到错误,它将立即终止脚本。

有关更多信息:单击此处。

90)解释一下在Perl中die和exit之间的区别吗?

die函数打印标准错误消息,然后退出程序。而退出函数在不给出任何错误消息的情况下终止程序。

91)什么$!在Perl?

$!是Perl中的内置错误报告变量。它告诉我们错误的原因并打印出来。它打印操作系统告诉它的内容。

有关更多信息:单击此处。

92)Perl中的警告函数是什么?

警告函数会在遇到错误时发出警告,但不会退出脚本。脚本继续运行。

有关更多信息:单击此处。

93)Perl中的confess函数是什么?

confess函数在Carp标准库中用于错误处理。

有关更多信息:单击此处。

94)Perl中的eval函数是什么?

eval函数是Perl中的内置函数,用于检测正常的致命错误。它提供有代码块,而不是传递给字符串。

有关更多信息:单击此处。

95)什么是Perl DBI?

DBI代表数据库独立接口。在Perl中,使用DBI模块访问数据库。它是CPAN提供的第三方模块。它支持所有主要的数据库系统。它在Perl代码和数据库之间提供了一个抽象层。

有关更多信息:单击此处。

96)Perl中的“ do”语句有什么作用?

Perl数据库中使用了“ do语句”。这是执行所有CRUD操作的快捷方式。如果成功,则返回true,否则返回false。

有关更多信息:单击此处。

97)在Perl中什么是“提交”命令?

给出Perl commit命令后,您将无法取回所做的更改。

句法:

$dbh->commit or die $dbh->errstr;    

有关更多信息:单击此处。

98)在Perl中什么是“ rollback”命令?

如果要还原操作期间所做的更改,请调用rollback命令。

句法:

$dbh->rollback or die $dbh->errstr;    

有关更多信息:单击此处。

99)什么是Perl中的自动错误处理?

通过指定RaiseError选项,Perl将自动处理您的错误。您的程序将在遇到错误而不是运行失败代码时中止。它的值可以是1或0。

有关更多信息:单击此处。

100)Perl中所有句柄的常用方法是什么?

  • 错误
  • 跟踪
  • 行数

有关更多信息:单击此处。

101)localtime()在Perl中做什么?

使用不带任何参数的localtime()函数,根据系统返回当前日期和时间。

有关更多信息:单击此处。

102)Perl中now构造函数的用途是什么?

现在的构造函数使用DateTime模块创建显示当前日期和时间的DateTime对象。

有关更多信息:单击此处。

103)在Perl中解释gmtime()函数?

此函数的工作方式与localtime()相似,只是在标准格林威治时区中本地化了返回值。

有关更多信息:单击此处。

104)Perl中的纪元时间是什么?

纪元时间是指特定日期和时间之后的秒数。此特定日期和时间因不同的操作系统而异。例如,对于Unix,它是1970年1月1日。

有关更多信息:单击此处。

105)Perl中的POSIX是什么?

POSIX – Perl接口IEEE标准1003.1

POSIX模块允许您访问所有标准POSIX标识符。该模块提供的功能比任何其他模块都要多。

106)在Perl中解释strftime()函数吗?

Perl POSIX strftime()函数用于格式化日期和时间,并在说明符前加(%)号。

有关更多信息:单击此处。

107)解释Perl中的套接字编程吗?

套接字是帮助在网络上的不同进程之间建立虚拟连接的过程。

在套接字编程中,将生成客户端和服务器端脚本,它们通过TCP / IP协议相互通信。

有关更多信息:单击此处。