WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Perl · Intermediate · question 33 of 100

What are Perl’s "magic" variables, and can you provide some examples of their uses?

📕 Buy this interview preparation book: 100 Perl questions & answers — PDF + EPUB for $5

Perl has several built-in variables that are often referred to as "magic" variables. These variables are automatically populated by Perl based on different runtime conditions, and may change their values throughout the course of a program’s execution. Here are a few examples of some of the most commonly used magic variables in Perl:

1. $_ - The default scalar variable

$_ is the default scalar variable, which means that it is automatically used as a placeholder for scalar values in many built-in functions and control structures. For example, if you loop through an array using the foreach loop:

    my @array = (1, 2, 3, 4, 5);
    foreach (@array) {
        print $_;
    }

In this case, $_ is used as a placeholder for each element of the array as we loop through it. Note that you can also use a different variable name if you prefer:

    foreach my $element (@array) {
        print $element;
    }

2. @ARGV - The command-line arguments array

@ARGV is an array that contains the command-line arguments passed to a Perl script when it is executed. For example, if you run the script with the command:

    perl myscript.pl arg1 arg2 arg3

then @ARGV will contain ("arg1", "arg2", "arg3"). You can use this array to process command-line options, filenames, or any other arguments passed to your script.

3. $! - The error string

$! is a scalar variable that contains a descriptive error message for the last system operation that failed. For example, if you try to open a file that doesn’t exist:

    open FILE, "<", "nonexistent.txt";
    print $!;   # prints "No such file or directory"

You can use this variable to handle errors gracefully by providing more specific error messages to the user.

4. @INC - The library search path

@INC is an array that contains the search path for Perl modules. This means that if you try to use a module that isn’t built into Perl by default, Perl will look for it in the directories listed in @INC. You can add new directories to this array if you want Perl to search for modules in additional locations.

5. $. - The current line number

$. is a scalar variable that contains the current line number in a file. This variable is useful for debugging and error reporting. For example, you could print out the line number of an error message like this:

    die "Error on line $.: $!";

These are just a few examples of Perl’s magic variables, but there are many more that can be used to simplify and streamline your code.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Perl interview — then scores it.
📞 Practice Perl — free 15 min
📕 Buy this interview preparation book: 100 Perl questions & answers — PDF + EPUB for $5

All 100 Perl questions · All topics