in reply to subroutine For ssh

martos links and suggestions are spot on. Read them. In addition, whenever I need to teach myself a new language concept, I often find it helps to start with a simpler example.

use Test::More; # Add two numbers, provided as arguments sub add_two_numbers { # TODO - Implement me! } is add_two_numbers(3,5), 8, '3 + 5 = 8';

Once you figure out how to implement the body of add_two_numbers(), your SSHApp() sub will be easy. The advantage is add_two_numbers() is a lot easier to test and focuses on the thing you do not yet know how to do, which is subroutine arguments.

There's a good chance you'll also want to figure out how to handle missing or undef arguments, or arguments that are otherwise invalid (what happens when you run add_two_numbers(3, 'banana'), for example. How (or indeed if) you handle invalid arguments depends on your specific requirements. It is easy to extend the above template with additional tests to handle those cases, as needed. There are other modules like Test::Exception that may also be of interest for writing good tests.

use strict; use warnings; omitted for brevity.