Calling perl subroutines from the command line

Mitchk picture Mitchk · Apr 13, 2014 · Viewed 10.5k times · Source

Ok so i was wondering how i would go about calling a perl subroutine from the command line. So if my program is Called test, and the subroutine is called fields i would like to call it from the command line like.

test fields

Answer

mob picture mob · Apr 13, 2014

Look into brian d foy's modulino pattern for treating a Perl file as both a module that can be used by other scripts or as a standalone program. Here's a simple example:

# Some/Package.pm
package Some::Package;
sub foo { 19 }
sub bar { 42 }
sub sum { my $sum=0; $sum+=$_ for @_; $sum }
unless (caller) {
    print shift->(@ARGV);
}
1;

Output:

$ perl Some/Package.pm bar
42
$ perl Some/Package.pm sum 1 3 5 7
16