У меня возникли проблемы с поиском примера создания и записи в файл с использованием колеса POE или любого асинхронного процесса. Я хочу, чтобы писать большие файлы не блокируя. Я ищу примеры, но не знаю с чего начать.PERL POE ReadWrite Wheel File IO Пример?
1
A
ответ
1
Итак, я действительно не нашел прямого примера для файла io. Но мне удалось выяснить этот рабочий код из примеров, которые я нашел. Я думаю, что это то, что я хочу. Я добавляю его здесь, поэтому, если у кого-то есть комментарии, это может помочь мне или другому улучшить его. Или, если кто-то ищет пример, он может это увидеть.
$self->{FILEIO_SESSION} = POE::Session->create(
inline_states => {
_start => sub {
my ($kernel, $heap) = @_[ KERNEL, HEAP ];
$kernel->alias_set($fileio_uuid);
$heap->{wheels}->{$fileio_uuid} = POE::Wheel::ReadWrite->new(
InputHandle => $infile_fh ,
OutputHandle => $outfile_fh,
Driver => POE::Driver::SysRW->new(),
Filter => POE::Filter::Line->new(),
InputEvent => 'readLineEvent',
ErrorEvent => 'errorEvent'
);
},
_stop => sub {
my ($kernel, $heap) = @_[ KERNEL, HEAP ];
print "Removing fileio session\n";
$kernel->alias_remove($fileio_uuid);
},
readLineEvent => sub {
my ($kernel, $heap, $input) = @_[ KERNEL, HEAP, ARG0 ];
print "read a line...writing to file...\n";
$heap->{wheels}->{$fileio_uuid}->put($input);
},
errorEvent => sub {
my ($kernel, $heap) = @_[ KERNEL, HEAP ];
print "Everything either went to hell or we got to the end. Shutting down...\n";
delete $heap->{wheels}->{$fileio_uuid};
$kernel->yield("_stop");
}
}
);
Смежные вопросы
- 1. Batch File progress spinning wheel
- 2. perl IO :: zlib print plain text file
- 3. Наследование IO :: File
- 4. Невозможно использовать IO :: Handle или IO :: File
- 5. perl poe tcp server обрабатывает несколько клиентов
- 6. python wheel file install TA_lib * .whl
- 7. Получение исключений из IO :: File?
- 8. Perl IO :: Uncompress :: Unzip
- 9. File IO using java
- 10. Java Runnable File IO
- 11. File IO с Gradle
- 12. Установить строку для чтения в Perl IO :: File
- 13. Haskell IO пример
- 14. гнездо IO Пример
- 15. IO монада Пример
- 16. Как правильно закрыть POE и POE :: Session?
- 17. IO :: Lambda in Perl
- 18. Perl IO :: Socket :: INET
- 19. POE: повторяющийся сервер Сигнализация в пользовательском POE :: Компонент
- 20. Ошибка установки IO :: Pty Perl
- 21. IO File Read/Write Verilog
- 22. Ошибка: org.gradle.tooling.model.GradleProject.getBuildDirectory() Ljava/io/File;
- 23. сборка .io inlining js file
- 24. Perl IO :: Файл работает с Autodie?
- 25. Понимание Esper IO Пример Http
- 26. Где я могу прочитать четкое объяснение POE (Perl Object Environment)?
- 27. Как создать Pin Wheel (как Daisy Wheel) в iPhone
- 28. Perl IO :: Управление предупреждением поведения
- 29. Perl, IO :: Socket :: SSL, многопоточность
- 30. FileStream ReadWrite в C#
Существует очень хорошая документация: http://search.cpan.org/~rcaputo/POE-1.354/lib/POE/Wheel/ReadWrite.pm – Matthias
Спасибо. Я проверил это и выяснил, как это сделать. Я отправил свой итоговый код в поток. Примеры в документе, который вы связали, были хорошими, но не так понятными для fileio. Был пример, который ссылался на чтение из STDIN, и именно это помогло мне. – dudeman