#!/usr/bin/env perl use strict; use warnings; { my $password; sub retrieve_password { return $password if defined $password; die 'Password not defined'; } sub initialise_password { return if defined $password; use Term::ReadKey; print 'Enter password: '; ReadMode('noecho'); $password = ReadLine(0); print "\n"; ReadMode('restore'); return; } } start(); test(); sub start { initialise_password(); } sub test { print 'Testing: ', retrieve_password(), "\n"; } #### Enter password: Testing: some_password