use strict; use warnings; use IPC::Open2; chomp(my $pwd = <>); my($chld_out, $chld_in); my $phrase = quotemeta "lookatme-i-am-roy"; my $pid = open2($chld_out, $chld_in, '/bin/su -c echo\\ ' . $phrase . ' 2>&1'); print $chld_in $pwd , "\n"; my $outcome = grep(/$phrase/, <$chld_out>); print "Password is ", $outcome ? "*valid*\n" : "not correct!\n"; waitpid($pid, 0);