For some reason, I can't get filehandles working with Expect.pm's log_file method.  I originally got help on How can I pass a filehandle to Perl Expect's log_file function?, where it was suggested that I use an IO::Handle filehandle to pass to the method.  This seems to be a different issue, so I thought I'd start a new question.
This is the offending section of Expect.pm:
if (ref($file) ne 'CODE') {
  croak "Given logfile doesn't have a 'print' method"
    if not $fh->can("print");
  $fh->autoflush(1);        # so logfile is up to date
}
So, then, I tried this sample code:
use IO::Handle;
open $fh, ">>", "file.out" or die "Can't open file";
$fh->print("Hello, world");
if ($fh->can("print"))
{
  print "Yes\n";
}
else
{
  print "No\n";
}
When I run this, I get two (to my mind) conflicting items.  A file with a single line that says 'Hello, world', and output of 'No'.  To my mind, the $fh->can line should return true. Am I wrong here?