Script
1 #!/usr/bin/perl -w
2
3 use strict;
4
5 my %course = (
6 2 => 'c',
7 1 => 'unix',
8 3 => 'shell',
9 4 => 'perl',
10 );
11
12 while ( (my $key, my $value) = each(%course) ) {
13 print "$key => $value\n";
14 }
15
16 print "\nSorted values of hash:\n";
17 foreach my $val (sort values %course){
18 print "$val\n";
19 }
20 print "\nEnter Key: ";
21 my $type = <stdin>;
22 print "you will be taking $course{$type} this semester\n";
Script Result
:~/pbe/chap5$ ./exer5.pl
4 => perl
1 => unix
3 => shell
2 => c
Sorted values of hash:
c
perl
shell
unix
Enter Key: 2
Use of uninitialized value within %course in concatenation (.) or stri
+ng at ./exer5.pl line 22, <stdin> line 1.
you will be taking this semester
Question
Can anyone explain why I am always getting above error of "uninitialized value", I know I am doing some small mistake, any input is highly appreciated