Passing Arguments to a Subroutine in Perl


You can pass various arguments to a Perl subroutine like you do in any other programming language and they can be accessed inside the function using the special array @_. Thus the first argument to the function is in $_[0], the second is in $_[1], and so on.

You can pass arrays and hashes as arguments like any scalar but passing more than one array or hash normally causes them to lose their separate identities. So we will use references ( explained in the next chapter ) to pass an array or hash.

Let's try the following example, which takes a list of numbers and then prints their average −

Example

 Live Demo

#!/usr/bin/perl
# Function definition
sub Average {
   # get total number of arguments passed.
   $n = scalar(@_);
   $sum = 0;
   foreach $item (@_) {
      $sum += $item;
   }
   $average = $sum / $n;
   print "Average for the given numbers : $average\n";
}
# Function call
Average(10, 20, 30);

Output

When the above program is executed, it produces the following result −

Average for the given numbers : 20

Updated on: 29-Nov-2019

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements