Perl – Listing your Program with a Debugger Read Discuss Courses Practice Improve Improve Improve Like Article Like Save Article Save Report issue Report Perfect programs are hard to get in the very first attempt. They have to go through various steps of debugging to fix all errors. There are two types of errors – Syntax errors and Logical errors. Syntax errors are easy to fix and are found fast. On the other hand, logical errors are hard to find and fix. Thus, a debugger is required to fix those errors. In Perl, a debugger is an environment that executes the program line by line. This process is also known as single-stepping through the program. To enter into debugger, follow the Syntax given below: Syntax: perl -d <program_name> Sample Program to Debug: #!/usr/bin/perl -w # Perl program for a simple calculator use strict; my $op; my $num1; my $num2; my $result; my $flag; calculator(); sub calculator { print "Enter operation you want to perform -Add, Sub, Mult, Div - "; chomp($op = <>); print "Enter first number: ";chomp($num1 = <>); print "Enter second number: ";chomp($num2 = <>); # Check for arithmetic operation if ($op =~ /^a/) { $result = $num1 + $num2; } elsif ($op =~ /^s/) { $result = $num1 - $num2; } elsif ($op =~ /^m/) { $result = $num1 * $num2; } elsif ($op =~ /^d/) { $result = $num1 / $num2; } # Print the answer of above operation print "Result: $result\n"; # Calling the function recursively print "Do another calculation ? ";chomp($flag = <>); if ($flag =~ /^y/) { calculator(); } else { print "Thank You !!\n"; } } Listing Sample Code with Debugger ‘l’ command : The ‘l’ command lets us print a partial part of our scripts. There are several versions of this command that we can use – Use ‘l’ – Displays 10 lines of script from location of cursor. Using l 4+6 – Displays 6 lines of script starting from line 4. Using l 4-7 – Displays lines 4 through 7 of script. Using l 20 – Displays script on line 20. Using l foo – Displays approximately first 10 lines of foo() function. ‘-‘ command : Outputs 10 lines of script before the current line. Suppose that you are current on line 20, then, lines 9 to 19 will be displayed. ‘w’ command : Adds a watch expression. Syntax: w $variable_name ‘//’ and ‘??’ : // and ?? search for a given pattern in the script. The /pattern/ searches for a pattern in forward direction while, the ?pattern? searches for a pattern in the backward direction from the current position of cursor. Syntax: /pattern/ or ?pattern? ‘S’ command : This command lists all the subroutines not matching a given pattern. Syntax: S expression Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now! Last Updated : 02 Jul, 2020 Like Article Save Article Previous Perl | Directories with CRUD operations Next Perl - DBI(Database Independent) Module | Set - 2 Please Login to comment...