#!/usr/bin/env perl
use strict;
use warnings;
use IO::Prompt::Tiny qw(prompt);
my $user = prompt("What is your name? ");
greet($user);
exit(0);
sub make_hello {
return "Hello";
}
sub make_subject {
return shift;
}
sub greeting {
my $who = shift;
return make_hello() . ' ' . make_subject($who)
}
sub greet {
print greeting(shift), "\n";
}
####
#!/usr/bin/env perl
package MyScript;
use strict;
use warnings;
use IO::Prompt::Tiny qw(prompt);
main() if !caller();
exit(0);
sub main {
my $user = prompt("What is your name? ");
greet($user);
}
sub make_hello {
return "Hello";
}
sub make_subject {
return shift;
}
sub greeting {
my $who = shift;
return make_hello() . ' ' . make_subject($who)
}
sub greet {
print greeting(shift), "\n";
}
1;
##
##
use strict;
use warnings;
use Test::More;
require '/path/to/myscript.pl';
can_ok MyScript => qw(greet greeting make_subject make_hello main);
is MyScript::make_hello, 'Hello', 'Got Hello';
is MyScript::make_subject('Monk'), 'Monk', 'Got correct subject.';
is MyScript::greeting('Monk'), 'Hello Monk', 'Got a correct greeting.';
use Capture::Tiny qw(capture_stdout);
my $resp = capture_stdout {MyScript::greet('Monk')};
is $resp, "Hello Monk\n", 'Got correct output in STDOUT.';
done_testing();