perlknight has asked for the wisdom of the Perl Monks concerning the following question:

Gurus, I have a srcipt which copys public keys off ssh to the host which I will used as centralized login server to do routine tasks. The script is working but want it not to display password in plain text to stdout. Is there a way to tell it to display '***' or blank space when I send over the password? below is the script:
#!/usr/local/bin/perl use Expect; use IO::Stty; if ( scalar(@ARGV) < 1 ) { print "Usage: $0 <srcpath> <dest_host> <destpath>\n"; exit 1; } $srcpath = shift; $dest_host = shift; $destpath = shift; copyover(); sub copyover { my $scp=Expect->spawn("/usr/bin/scp -r \"$srcpath\" ${dest_hos +t}:$destpa th"); my $spawn_ok; $scp->expect(30, [ qr'ssword: ', sub { $spawn_ok=1; print $scp ("password\n"); exp_continue; } ], [ qr'yes/no', sub { $spawn_ok=1; $scp->send("yes\n"); exp_continue; } ], '-re', qr'[#>:] $', #' ); $scp->soft_close(); return; }

Thanks for your input.