I think you dismiss the
Expect modules to early. While
Net::Telnet certainly has an impressive featureset, with even patternmatching and timeouts,
Expect is even better. In my work as a Test Engineer I found Expect and Expect.pm to be easy to work with.
According to the documentation, Expect should work on "any modern POSIX Unix", and under Cygwin (but not ActivePerl), which also makes it rather portable.
However, if the brother doesn't need all the bells and whistles of Expect, your suggestion is an excellent one.