@ Бородин Спасибо. Обязательно нужно упомянуть - обновлено.

ался сделать что-то очень модное в Perl, и я думаю, что я страдаю от последствий. Я не знаю, возможно ли то, что я пытался сделать, на самом деле.

Моя основная программа создает такой канал:

pipe(my $pipe_reader, my $pipe_writer);

(изначально это был pipe (PIPE_READER, PIPE_WRITER), но я перешел на обычные переменные, когда пытался это отладить)

Тогда это разветвляется, но я думаю, что это, вероятно, не имеет значения здесь. Ребенок делает это:

my $response = Response->new($pipe_writer);

Конструктор Response является голым:

sub new {
    my $class = shift;
    my $writer = shift;

    my $self = {
        writer => $writer
    };
    bless($self, $class);
    return($self);
 }

Тогда позже ребенок напишет свой ответ:

$response->respond(123, "Here is my response");

Код для ответа выглядит следующим образом:

sub respond {
    my $self = shift;
    my $number = shift;
    my $text = shift;
    print $self->{writer} "$number\n";
    print $self->{writer} "$text\n";
    close $self->{writer}
}

Это вызывает странную ошибку компиляции: 'Строка найдена там, где ожидался оператор ... Отсутствует оператор перед $ number \ n "?' в точке первого отпечатка. Конечно, это нормальный синтаксис для распечатки, за исключением того, что у меня есть свойство объекта вместо обычного дескриптора, и это оказывается конвейером, а не дескриптором файла. Так что теперь я задаюсь вопросом, не позволено ли мне это сделать.

Ответы на вопрос(1)

Ваш ответ на вопрос