Perl | Displaying Variable Values with a Debugger

Debugger in Perl comes up with various features thus making the debugging process quite simple and effective. One of the most powerful features of Perl Debugger is displaying variable values. This feature allows us to display the value of any variable at any time. There are two basic commands to implement this feature:

  • ‘X’ command
  • ‘V’ command

‘X’ command

The ‘X’ command displays the value of the variables in the current package. It returns the value of the variable which is specified in the command. If the X command is called by itself, then it returns a list of all the user-defined variables along with system-defined variables of the current package.

Syntax:

X variablename;

Consider the example given below to have a closer look at the functionality of the command:

DB<5> X geek;

The above statement will return the value of geek variable as $geek = ‘0’. The variable name in the output will always be prefixed by a ‘$‘ symbol.



Generally the current package is main, thus, in that case, the use of this command will return the values of the variables in the main package only.

Note: Never prefix the variable name with a $ sign while using it with ‘X’ command. The debugger returns nothing in the output if it encounters this symbol.

The 'X' command can also be used to display the values of array variables. As you specified earlier the variable name similarly you have to specify the array variable name. Consider the statement given below:

 DB<6> X array1;

This statement will return the values of the array variable in the following format:

@array1 = (

  0     'Geeks'

  1     'for'

  2     'Geeks'

)

Sometimes there are conditions that your code may have similar names of scalar variables and array variables. In that, the 'X' command returns the values of both the variables. Consider the example given below:

DB<9> X geeks;

Consider that there are two variables with the name geeks; one being a scalar variable and other being an array variable, then the output will be something like this:

$geeks = '0'
@geeks = (

  0     'Geeks'

  1     'for'

  2     'Geeks'

)

‘V’ command

The 'V' command is similar to 'X' command except that it allows you to print the values of variables of any package. If we specify only the package name it returns the values of all the variables in that package else if the name of the variable is specified it returns the value of the specified variable.

Syntax:

V packagename variablename;

Consider the example given below to have a closer look at the functionality of the command:

DB<5> V mygeek geek;

The above statement will return the value of the variable geek of the package mygeek as $mygeek = ‘0’.
If no variable name is specified and only the package name is specified, then it returns all the variables of the specified package along with their values. Consider the example given below:

DB<5> V mygeek;

This statement will return all the variables of the package mygeek.

Note:
The rest of the functionality of the 'V' command is same to the 'X' command, whether its displaying the value of array variable or displaying the values of variable with similar name.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.