対話的なプログラムを自動化するのに expect があるという話を前に同僚から聞いていましたが、Perl でやるとどうなるんだろうとか思ってると、そのまま Expect っていうモジュールがあった。 インタラクティブなコマンドのクソ面白くない例としてパスワード変更がありますが、それを Expect.pm で書くとたぶんこんな感じになるんだと思います。 #!/usr/bin/perl use strict; use warnings; use Expect; my $cmd = 'passwd'; my $oldpass = 'aaaa'; my $newpass = 'bbbb'; my $expect = Expect->new; $expect->log_stdout(0); # hide stdout of 'passwd' $expect->log_file('./passwd.l