in reply to Re: How to give input and collect output of a perl script using another perl script
in thread How to give input and collect output of a perl script using another perl script
GF: Thank you for short intro to perl modules
I am learning to use perl modules with a small example. Please go through below example, I have a couple of questions at the end
test2.pl is a script that uses perl module test.pm
Contents of test.pl
#!/usr/bin/perl use strict; use warnings; use test; my @gaga = ("paras", "kansas"); my ($x, $y) = test::test(@gaga); print "$x\n$y\n";
contents of test.pm
package test; sub test { my $tag = $_[0]; $tag =~ s/p/n/; my $bag = $_[1]; $bag =~ s/k/p/; return $tag, $bag } 1;
output
napas panas
above script and module work very well. What I don't understand is..
Query-1: What is function of 1 at the end of test.pm ?
To see whether module works without a subroutine, I modified test.pm, by removing subroutine (see code below)
Contents of test2.pl
#!/usr/bin/perl use strict; use warnings; use test; my @gaga = ("paras", "kansas"); my ($x, $y) = test(@gaga); print "$x\n$y\n";
contents of test.pm
package test; my $tag = $_[0]; $tag =~ s/p/n/; my $bag = $_[1]; $bag =~ s/k/p/; return $tag, $bag 1;
Expected result is...
napas panas
But error message reads...
test.pm did not return a true value at test2.pl line 4. BEGIN failed--compilation aborted at test2.pl line 4.
Query-2: Is it must to have a subroutine inside a module ?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: How to give input and collect output of a perl script using another perl script
by GrandFather (Saint) on Mar 23, 2011 at 20:02 UTC | |
by chakreey (Acolyte) on Apr 07, 2011 at 10:09 UTC | |
|
Re^3: How to give input and collect output of a perl script using another perl script
by Anonymous Monk on Mar 23, 2011 at 14:11 UTC | |
by chakreey (Acolyte) on Mar 23, 2011 at 15:57 UTC | |
by GrandFather (Saint) on Mar 23, 2011 at 19:34 UTC |