跳转至

Perl |用调试器显示变量值

原文:https://www . geesforgeks . org/perl-用调试器显示变量值/

Perl 中的调试器提供了各种功能,因此调试过程非常简单有效。Perl 调试器最强大的功能之一是显示变量值。这个特性允许我们随时显示任何变量的值。有两个基本命令可以实现此功能:

  • ' x '命令
  • v '命令

' x '命令

‘X’命令显示当前包中变量的值。它返回命令中指定的变量值。如果**X command**是自己调用的,那么它会返回当前包的所有用户定义变量以及系统定义变量的列表。

语法:

X variablename;

考虑下面给出的示例,进一步了解该命令的功能:

DB<5> X geek;

以上语句将极客变量值返回为\(极客= '0'** 。输出中的变量名总是以“ **\) ”符号作为前缀。

通常当前包是主包,因此,在这种情况下,使用这个命令将只返回主包中的变量值。

注意:在使用带有‘X’命令的变量名时,千万不要在变量名前加$符号。如果调试器遇到此符号,则在输出中不返回任何内容。

'X' command 也可以用来显示数组变量的值。正如您之前指定的变量名一样,您必须指定数组变量名。考虑以下陈述:

 DB<6> X array1;

该语句将以以下格式返回数组变量值:

@array1 = (

  0     'Geeks'

  1     'for'

  2     'Geeks'

)

有时在某些情况下,您的代码可能有类似的标量变量和数组变量的名称。其中, 'X' command 返回两个变量的值。考虑下面给出的例子:

DB<9> X geeks;

考虑一下极客这个名字有两个变量;一个是标量变量,另一个是数组变量,那么输出将如下所示:

$geeks = '0'
@geeks = (

  0     'Geeks'

  1     'for'

  2     'Geeks'

)

v '命令

'V' command**'X' command**类似,只是它允许你打印任何包的变量值。如果我们只指定包名,它将返回该包中所有变量的值,否则如果指定了变量的名称,它将返回指定变量的值。

语法:

V packagename variablename;

考虑下面给出的示例,进一步了解该命令的功能:

DB<5> V mygeek geek;

上面的语句将返回包 mygeek 的变量 geek 的值为 $mygeek = '0' 。 如果没有指定变量名,只指定了包名,则返回指定包的所有变量及其值。考虑下面给出的例子:

DB<5> V mygeek;

该语句将返回包 mygeek 的所有变量。

注: 'V' command的其余功能与**'X' command**相同,无论是显示数组变量值还是显示同名变量值。



回到顶部