По какой-то причине я не могу заставить дескрипторы файлов работать с файлом журнала Expect.pm
метод. Первоначально я получил помощь по Как передать дескриптор файла функции log_file Perl Expect? , где было предложено использовать дескриптор файла IO :: Handle для передачи методу. Похоже, это другая проблема, поэтому я подумал, что задам новый вопрос.
Это оскорбительный раздел 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
}
. Итак, я попробовал этот пример кода:
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";
}
Когда я запустите это, я получаю два (на мой взгляд) конфликтующих элемента. Файл с единственной строкой «Hello, world» и выводом «Нет». На мой взгляд, строка $ fh-> can
должна возвращать true. Я здесь не прав?