One way is to put your sub into a module and import the sub into your script. See
Simple Module Tutorial for more information.
#!/bin/perl5
use strict;
use warnings;
use lib qw{local/lib};
use Article qw{article_layout};
layout();
sub layout {
#...
my ($headline, $body, $url) = qw{one two three};
article_layout($headline, $body, $url);
}
package Article;
use strict;
use warnings;
use Exporter;
use vars qw($VERSION @ISA @EXPORT_OK);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT_OK = qw(article_layout);
sub say {
print qq{$_[0]\n};
}
sub article_layout {
my ($title, $body, $url) = @_;
print <<HEADER;
header stuff
HEADER
say $title;
say $body;
say $url;
print <<FOOTER;
footer stuff
FOOTER
}
1;
output:
header stuff
one
two
three
footer stuff