in reply to
Testing programs
I'd separate out the testing from the program. It makes your code cleaner, and you won't pay the costs of compiling your test suite each time you run the program.
# Main program:
#!/usr/bin/perl
use strict;
use warnings;
sub double {
my $n = shift;
return $n * 2;
}
return 1 if caller; # Don't leave this out.
print join ' ', map {double($_)} @ARGV;
print "\n";
__END__
# Test program:
#!/usr/bin/perl
use strict;
use warnings;
use Test::Simple tests => 3;
require 'main.pl'; # Substitute the name of your program.
ok(double( 2) == 4);
ok(double(-3) == -6);
ok(double( 0) == 0);
__END__