What is the 'Use of uninitialized value' warning in Perl?

Perl’s “Use of uninitialized value” warning is a run-time warning encountered when a variable is used before initialization or outside its scope. The warning does not prevent code compilation.

To view possible warnings, you will need to include the warnings library in your program, as shown below:

use warnings;

Warning format

The format of the “Use of uninitialized value” warning is shown below:

Use of uninitialized value %s

The placeholder, %s, represents the variable that was not initialized with a value.

Example

The following example shows how the “Use of uninitialized value” warning arises in Perl:

#!/usr/bin/perl
use warnings;
# declare variable
$name = "Bob";
# print variable
print "Name = $name\n";
print "Age = $age\n";
# intialize value for age
$age = 23;
print "Age = $age\n";

Explanation

First, the variable $name is initialized and output. Since name already has a value, the print statement in line 99 does not cause any problems.

However, the code proceeds to print the variable $age, which has not been initialized. Consequently, the print statement in line 1010 results in the “Use of uninitialized value" warning. The warning alerts the user to the variable’s name that caused the issue, i.e. $age.

Since $age is initialized in line 1414, the final print statement does not prompt any warnings.

New on Educative
Learn to Code
Learn any Language as a beginner
Develop a human edge in an AI powered world and learn to code with AI from our beginner friendly catalog
🏆 Leaderboard
Daily Coding Challenge
Solve a new coding challenge every day and climb the leaderboard

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved