Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 690 lines (492 sloc) 24.986 kB
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
1 # Copyrights and documentation are after __END__.
96ceb8b @rcaputo Initial revision
authored
2
3 package POE;
4
5 use strict;
ea6d5ca This patch is the beginning of RT#1692, hopefully I got them all, hel…
Larwan Berke authored
6 use Carp qw( croak );
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
7
5959004 @rcaputo Remove $Id$ and $Revision$ tags. No significant code changed despite
authored
8 use vars qw($VERSION);
d2fac5d @rcaputo Bump the version for release.
authored
9 $VERSION = '1.284'; # NOTE - Should be #.### (three decimal places)
4cdc9c6 @rcaputo macros, optimizations, comments. a lot of changes.
authored
10
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
11 sub import {
12 my $self = shift;
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
13
5d1b97a Remove the POE::Loop modules from the modules that need to be loaded
Martijn van Beers authored
14 my @loops = grep(/^Loop\:\:/, @_);
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
15 my @sessions = grep(/^(Session|NFA)$/, @_);
5d1b97a Remove the POE::Loop modules from the modules that need to be loaded
Martijn van Beers authored
16 my @modules = grep(!/^(Kernel|Session|NFA|Loop)$/, @_);
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
17
5d1b97a Remove the POE::Loop modules from the modules that need to be loaded
Martijn van Beers authored
18 croak "can't use multiple event loops at once"
19 if (@loops > 1);
500fb10 @rcaputo add new tescase for POE::NFA
authored
20 croak "POE::Session and POE::NFA export conflicting constants"
6f253c6 @rcaputo Optimized POE::Preprocessor a bit, and added POE::NFA
authored
21 if grep(/^(Session|NFA)$/, @sessions) > 1;
22
23 # If a session was specified, use that. Otherwise use Session.
24 if (@sessions) {
25 unshift @modules, @sessions;
26 }
27 else {
28 unshift @modules, 'Session';
29 }
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
30
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
31 my $package = caller();
32 my @failed;
33
34 # Load POE::Kernel in the caller's package. This is separate
35 # because we need to push POE::Loop classes through POE::Kernel's
36 # import().
37
38 {
39 my $loop = "";
40 if (@loops) {
5d1b97a Remove the POE::Loop modules from the modules that need to be loaded
Martijn van Beers authored
41 $loop = "{ loop => '" . shift (@loops) . "' }";
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
42 }
43 my $code = "package $package; use POE::Kernel $loop;";
44 # warn $code;
45 eval $code;
46 if ($@) {
47 warn $@;
48 push @failed, "Kernel"
e5bc354 @rcaputo Instrument some code in POE's import, especially the code for explicit
authored
49 }
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
50 }
8ae8b71 @rcaputo Propagate the POE::Kernel TRACE and ASSERT constants into any other
authored
51
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
52 # Load all the others.
8429c0a @rcaputo forward module exports to the package using POE directly
authored
53
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
54 foreach my $module (@modules) {
8429c0a @rcaputo forward module exports to the package using POE directly
authored
55 my $code = "package $package; use POE::$module;";
cb72f14 @rcaputo Applying a patch by Martijn van Beers. This change adds syntax for
authored
56 # warn $code;
8429c0a @rcaputo forward module exports to the package using POE directly
authored
57 eval($code);
58 if ($@) {
babfbeb @rcaputo propagate error messages from modules to user
authored
59 warn $@;
60 push(@failed, $module);
61 }
372c3a1 @rcaputo Tweaking to get Makefile.PL working correctly.
authored
62 }
63
64 @failed and croak "could not import qw(" . join(' ', @failed) . ")";
65 }
96ceb8b @rcaputo Initial revision
authored
66
67 1;
4cdc9c6 @rcaputo macros, optimizations, comments. a lot of changes.
authored
68
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
69 __END__
70
71 =head1 NAME
72
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
73 POE - portable multitasking and networking framework for any event loop
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
74
75 =head1 SYNOPSIS
76
d8788af @rcaputo Big documentation rewrite
authored
77 #!/usr/bin/perl -w
78 use strict;
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
79
a57acda @rcaputo Document "use POE" magic.
authored
80 use POE; # Auto-includes POE::Kernel and POE::Session.
6f47304 @rcaputo clean up POD and whitespace
authored
81
f77c574 @rcaputo revised documentation
authored
82 sub handler_start {
d8788af @rcaputo Big documentation rewrite
authored
83 my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
84 print "Session ", $session->ID, " has started.\n";
85 $heap->{count} = 0;
86 $kernel->yield('increment');
87 }
88
f77c574 @rcaputo revised documentation
authored
89 sub handler_increment {
d8788af @rcaputo Big documentation rewrite
authored
90 my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
91 print "Session ", $session->ID, " counted to ", ++$heap->{count}, ".\n";
92 $kernel->yield('increment') if $heap->{count} < 10;
93 }
94
f77c574 @rcaputo revised documentation
authored
95 sub handler_stop {
d8788af @rcaputo Big documentation rewrite
authored
96 print "Session ", $_[SESSION]->ID, " has stopped.\n";
97 }
98
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
99 for (1..10) {
d8788af @rcaputo Big documentation rewrite
authored
100 POE::Session->create(
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
101 inline_states => {
102 _start => \&handler_start,
103 increment => \&handler_increment,
104 _stop => \&handler_stop,
105 }
d8788af @rcaputo Big documentation rewrite
authored
106 );
107 }
108
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
109 POE::Kernel->run();
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
110 exit;
111
333ddb3 @rcaputo document other resources early, so people can find them sooner
authored
112 =head1 DESCRIPTION
113
793304b @rcaputo Revise documentation in a major way.
authored
114 POE is a framework for cooperative, event driven multitasking and
115 networking in Perl. Other languages have similar frameworks. Python
116 has Twisted. TCL has "the event loop".
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
117
793304b @rcaputo Revise documentation in a major way.
authored
118 POE provides a unified interface for several other event loops,
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
119 including select(), L<IO::Poll|IO::Poll>, L<Glib>, L<Gtk>, L<Tk>,
120 L<Wx>, and L<Gtk2>. Many of these event loop interfaces were written
121 by others, with the help of POE::Test::Loops. They may be found on
122 the CPAN.
123
124 POE achieves its its high degree of portability to different operating
125 systems and Perl versions by being written entirely in Perl. CPAN
126 hosts optional XS modules for POE if speed is more desirable than
127 portability.
128
129 POE is designed in layers. Each layer builds atop the lower level
130 ones. Programs are free to use POE at any level of abstraction, and
793304b @rcaputo Revise documentation in a major way.
authored
131 different levels can be mixed and matched seamlessly within a single
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
132 program. Remember, though, that higher-level abstractions often
133 require more resources than lower-level ones. The conveniences they
134 provide are not free.
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
135
793304b @rcaputo Revise documentation in a major way.
authored
136 POE's bundled abstraction layers are the tip of a growing iceberg.
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
137 L<Sprocket>, L<POE::Stage|POE::Stage>, and other CPAN distributions
138 build upon this work. You're encouraged to look around.
4108539 @rcaputo Clean up the overview of Filter::Reference after someone (I forget!
authored
139
793304b @rcaputo Revise documentation in a major way.
authored
140 No matter how high you go, though, it all boils down to calls to
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
141 L<POE::Kernel|POE::Kernel>. So your down-to-earth code can easily
142 cooperate with stratospheric systems.
d8788af @rcaputo Big documentation rewrite
authored
143
793304b @rcaputo Revise documentation in a major way.
authored
144 =head2 Layer 1: Kernel and Sessions
dddc865 @rcaputo I discovered the podchecker utility, and ran it on POE's
authored
145
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
146 The lowest public layer is comprised of L<POE::Kernel|POE::Kernel>,
147 L<POE::Session|POE::Session>, and other session types.
d8788af @rcaputo Big documentation rewrite
authored
148
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
149 L<POE::Kernel|POE::Kernel> does most of the heavy lifting. It provides a portable
793304b @rcaputo Revise documentation in a major way.
authored
150 interface for filehandle activity detection, multiple alarms and other
151 timers, signal handling, and other less-common features.
d8788af @rcaputo Big documentation rewrite
authored
152
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
153 L<POE::Session|POE::Session> and derived classes encapsulate the notion of an event
793304b @rcaputo Revise documentation in a major way.
authored
154 driven task. They also customize event dispatch to a particular
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
155 calling convention. L<POE::NFA|POE::NFA>, for example, is more of a proper state
2c3758b Mid-sized documenation update
Philip Gwyn authored
156 machine. The CPAN has several other kinds of sessions.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
157
19bfcd5 @rcaputo Minor edits to POE and POE::Kernel. Major revisions to POE::Session.
authored
158 Everything ultimately builds on these classes or the concepts they
159 implement. If you're short on time, the things to read besides this
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
160 are L<POE::Kernel|POE::Kernel> and L<POE::Session|POE::Session>.
19bfcd5 @rcaputo Minor edits to POE and POE::Kernel. Major revisions to POE::Session.
authored
161
793304b @rcaputo Revise documentation in a major way.
authored
162 =head2 Layer 2: Wheels, Filters, and Drivers
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
163
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
164 POE::Wheel objects are dynamic mix-ins for POE::Session instances. These
165 "wheels" perform very common, generic tasks in a highly reusable and
166 customizable way. L<POE::Wheel::ReadWrite|POE::Wheel::ReadWrite>, for
167 example, implements non-blocking buffered I/O. Nearly everybody needs this,
168 so why require people to reinvent it all the time?
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
169
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
170 L<POE::Filter|POE::Filter> objects customize wheels in a modular way. Filters act as
793304b @rcaputo Revise documentation in a major way.
authored
171 I/O layers, turning raw streams into structured data, and serializing
2c3758b Mid-sized documenation update
Philip Gwyn authored
172 structures into something suitable for streams. The CPAN also has several
793304b @rcaputo Revise documentation in a major way.
authored
173 of these.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
174
2c3758b Mid-sized documenation update
Philip Gwyn authored
175 Drivers are where the wheels meet the road. In this case, the road is
793304b @rcaputo Revise documentation in a major way.
authored
176 some type of file handle. Drivers do the actual reading and writing
177 in a standard way so wheels don't need to know the difference between
178 send() and syswrite().
d8788af @rcaputo Big documentation rewrite
authored
179
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
180 L<POE::Driver|POE::Driver> objects get relatively short shrift because very few are
181 needed. The most common driver, L<POE::Driver::SysRW|POE::Driver::SysRW> is ubiquitous and
2c3758b Mid-sized documenation update
Philip Gwyn authored
182 also the default, so most people will never need to specify one.
183
793304b @rcaputo Revise documentation in a major way.
authored
184 =head2 Layer 3: Components
ad0d40f @rcaputo 0.08_05
authored
185
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
186 L<POE::Component|POE::Component> classes are essentially Perl classes that use POE to
793304b @rcaputo Revise documentation in a major way.
authored
187 perform tasks in a non-blocking or cooperative way. This is a very
188 broad definition, and POE components are all over the abstraction map.
ad0d40f @rcaputo 0.08_05
authored
189
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
190 Many components, such as L<POE::Component::Server::SMTP|POE::Component::Server::SMTP>, encapsulate the
793304b @rcaputo Revise documentation in a major way.
authored
191 generic details of an entire application. Others perform rather
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
192 narrow tasks, such as L<POE::Component::DirWatch::Object|POE::Component::DirWatch::Object>.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
193
793304b @rcaputo Revise documentation in a major way.
authored
194 POE components are often just plain Perl objects. The previously
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
195 mentioned L<POE::Component::DirWatch::Object|POE::Component::DirWatch::Object> uses L<Moose|Moose>. Other object
793304b @rcaputo Revise documentation in a major way.
authored
196 and meta-object frameworks are compatible.
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
197
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
198 Also of interest is L<POE::Component::Generic|POE::Component::Generic>, which is allows you to create
2c3758b Mid-sized documenation update
Philip Gwyn authored
199 a POE component from nearly nearly any blocking module.
200
201 There are quite a lot of components on the CPAN.
202 L<http://search.cpan.org/search?query=poe+component&mode=all>
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
203
793304b @rcaputo Revise documentation in a major way.
authored
204 =head2 Layer 4 and Beyond: Frameworks and Object Metaphors
3ddd789 @rcaputo Updated Windows and MacOS support info. in POE's man page.
authored
205
793304b @rcaputo Revise documentation in a major way.
authored
206 It's possible to abstract POE entirely behind a different framework.
207 In fact we encourage people to write domain-specific abstractions that
208 entirely hide POE if necessary. The nice thing here is that even at
209 these high levels of abstraction, things will continue to interoperate
210 all the way down to layer 1.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
211
2c3758b Mid-sized documenation update
Philip Gwyn authored
212 Two examples of ultra-high level abstraction are L<Sprocket>, a networking
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
213 framework that does its own thing, and L<POE::Stage|POE::Stage>, which is POE's
2c3758b Mid-sized documenation update
Philip Gwyn authored
214 creator's attempt to formalize and standardize POE components.
215
216 It is also possible to communicate between POE processes. This is called
217 IKC, for I<Inter-Kernel Communication>. There are a few IKC components on
218 the CPAN (L<http://search.cpan.org/search?query=IKC&mode=all>), notably
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
219 L<POE::Component::IKC|POE::Component::IKC> and L<POE::TIKC|POE::TIKC>.
d8788af @rcaputo Big documentation rewrite
authored
220
793304b @rcaputo Revise documentation in a major way.
authored
221 =head2 Layer 0: POE's Internals
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
222
2c3758b Mid-sized documenation update
Philip Gwyn authored
223 POE's layered architecture continues below the surface. POE's guts are
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
224 broken into specific L<POE::Loop|POE::Loop> classes for each event loop it supports.
225 Internals are divided up by type, giving L<POE::Resource|POE::Resource> classes for
2c3758b Mid-sized documenation update
Philip Gwyn authored
226 Aliases, Controls, Events, Extrefs, FileHandles, SIDs, Sessions, Signals,
227 and Statistics.
d8788af @rcaputo Big documentation rewrite
authored
228
793304b @rcaputo Revise documentation in a major way.
authored
229 POE::Kernel's APIs are extensible through POE::API mix-in classes.
230 Some brave souls have even published new APIs on CPAN, such as
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
231 L<POE::API::Peek|POE::API::Peek> (which gives you access to some of the internal
232 L<POE::Resource|POE::Resource> methods).
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
233
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
234 By design, it's possible to implement new L<POE::Kernel|POE::Kernel> guts by creating
235 another L<POE::Resource|POE::Resource> class. One can then expose the functionality with
2c3758b Mid-sized documenation update
Philip Gwyn authored
236 a new POE::API mix-in.
793304b @rcaputo Revise documentation in a major way.
authored
237
238 =head1 DOCUMENTATION ROADMAP
239
240 You're reading the main POE documentation. It's the general entry
241 point to the world of POE. You already know this, however, so let's
242 talk about something more interesting.
243
244 =head2 Basic Features
245
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
246 POE's basic features are documented mainly in L<POE::Kernel|POE::Kernel> and
247 L<POE::Session|POE::Session>. Methods are documented in the classes that implement
793304b @rcaputo Revise documentation in a major way.
authored
248 them. Broader concepts are covered in the most appropriate class, and
249 sometimes they are divided among classes that share in their
250 implementation.
251
8f0c235 @rcaputo Move the POE.pm use lines to POE::Kernel. Mark that contributors nee…
authored
252 =head2 Basic Usage
253
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
254 Basic usage, even for POE.pm, is documented in L<POE::Kernel|POE::Kernel>. That's
8f0c235 @rcaputo Move the POE.pm use lines to POE::Kernel. Mark that contributors nee…
authored
255 where most of POE's work is done, and POE.pm is little more than a
256 class loader.
257
793304b @rcaputo Revise documentation in a major way.
authored
258 =head2 @_[KERNEL, HEAP, etc.]
259
260 Event handler calling conventions, that weird C<@_[KERNEL, HEAP]>
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
261 stuff, is documented in L<POE::Session|POE::Session>. That's because POE::Session
793304b @rcaputo Revise documentation in a major way.
authored
262 implements the calling convention, and other session types often do it
263 differently.
264
265 =head2 Base Classes Document Common Features
d8788af @rcaputo Big documentation rewrite
authored
266
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
267 The L<POE::Wheel|POE::Wheel>, L<POE::Driver|POE::Driver>,
268 L<POE::Filter|POE::Filter>, and L<POE::Component|POE::Component> base
269 classes describe what's common among each class. It's a good idea to at
270 least skim the base class documentation since the subclasses tend not to
2c3758b Mid-sized documenation update
Philip Gwyn authored
271 rehash the common things.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
272
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
273 L<POE::Queue|POE::Queue>, L<POE::Resource|POE::Resource>, L<POE::Loop|POE::Loop>, and L<POE::API|POE::API> document the
793304b @rcaputo Revise documentation in a major way.
authored
274 concepts and sometimes the standard interfaces behind multiple
37d4499 @rcaputo Apply Chris Fedde's massive doc patch, resolving rt.cpan.org ticket
authored
275 subclasses. You're encouraged to have a look.
3ddd789 @rcaputo Updated Windows and MacOS support info. in POE's man page.
authored
276
793304b @rcaputo Revise documentation in a major way.
authored
277 =head2 Helper Classes
278
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
279 POE includes some helper classes for portability. L<POE::Pipe|POE::Pipe>, and its
280 subclasses L<POE::Pipe::OneWay|POE::Pipe::OneWay> and L<POE::Pipe::TwoWay|POE::Pipe::TwoWay> are portable pipes.
793304b @rcaputo Revise documentation in a major way.
authored
281
282 =head2 Event Loop Bridges
283
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
284 L<POE::Loop|POE::Loop> documents and specifies the interface for all of POE's event
793304b @rcaputo Revise documentation in a major way.
authored
285 loop bridges. The individual classes may document specific details,
286 but generally they adhere to the spec strongly enough that they don't
287 need to.
288
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
289 Many of the existing L<POE::Loop|POE::Loop> bridges provided in POE's base
793304b @rcaputo Revise documentation in a major way.
authored
290 distribution will move out to separate distributions shortly. The
291 documentation will probably remain the same, however.
292
293 =head2 POE::Queue and POE::Queue::Array
294
295 POE's event queue is basically a priority heap implemented as an
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
296 ordered array. L<POE::Queue|POE::Queue> documents the standard interface for POE
297 event queues, and L<POE::Queue::Array|POE::Queue::Array> implements the ordered array
298 queue. Tony Cook has released L<POE::XS::Queue::Array|POE::XS::Queue::Array>, which is a
299 drop-in C replacement for L<POE::Queue::Array|POE::Queue::Array>. You might give it a try
793304b @rcaputo Revise documentation in a major way.
authored
300 if you need more performance. POE's event queue is some of the
301 hottest code in the system.
302
303 =head2 This Section Isn't Complete
304
305 Help organize the documentation. Obviously we can't think of
306 everything. We're well aware of this and welcome audience
307 participation.
308
309 =head2 See SEE ALSO
310
311 Wherever possible, the SEE ALSO section will cross-reference one
312 module to related ones.
313
314 =head2 Don't Forget the Web
315
316 Finally, there are many POE resources on the web. The CPAN contains a
317 growing number of POE modules. L<http://poe.perl.org/> hosts POE's
318 wiki, which includes tutorials, an extensive set of examples,
319 documentation, and more. Plus it's a wiki, so you can trivially pitch
320 in your two cents.
321
322 =head1 SYSTEM REQUIREMENTS
323
324 POE's basic requirements are rather light. Most are included with
325 modern versions of Perl, and the rest (if any) should be generally
326 portable by now.
327
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
328 L<Time::HiRes|Time::HiRes> is highly recommended, even for older Perls that don't
2c3758b Mid-sized documenation update
Philip Gwyn authored
329 include it. POE will work without it, but alarms and other features will be
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
330 much more accurate if it's included. L<POE::Kernel|POE::Kernel> will use Time::HiRes
793304b @rcaputo Revise documentation in a major way.
authored
331 automatically if it's available.
d8788af @rcaputo Big documentation rewrite
authored
332
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
333 L<POE::Filter::Reference|POE::Filter::Reference> needs a module to serialize data for transporting
334 it across a network. It will use L<Storable|Storable>, L<FreezeThaw|FreezeThaw>, L<YAML|YAML>, or
2c3758b Mid-sized documenation update
Philip Gwyn authored
335 some other package with freeze() and thaw() methods. It can also use
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
336 L<Compress::Zlib|Compress::Zlib> to conserve bandwidth and reduce latency over slow links, but
2c3758b Mid-sized documenation update
Philip Gwyn authored
337 it's not required.
d8788af @rcaputo Big documentation rewrite
authored
338
2c3758b Mid-sized documenation update
Philip Gwyn authored
339 If you want to write web servers, you'll need to install libwww-perl, which
340 requires libnet. This is a small world of modules that includes
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
341 L<HTTP::Status|HTTP::Status>, L<HTTP::Request|HTTP::Request>,
342 L<HTTP::Date|HTTP::Date>, and L<HTTP::Response|HTTP::Response>. They are
343 generally good to have, and modern versions of Perl even include them.
d8788af @rcaputo Big documentation rewrite
authored
344
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
345 Programs that use L<POE::Wheel::Curses|POE::Wheel::Curses> will of course
346 require the L<Curses> module, which in turn requires some sort of
347 curses library.
a4c9dd9 @rcaputo update Windows support docs, and a few other bits
authored
348
2c3758b Mid-sized documenation update
Philip Gwyn authored
349 If you're using POE with Tk, you'll need L<Tk> installed.
d8788af @rcaputo Big documentation rewrite
authored
350
793304b @rcaputo Revise documentation in a major way.
authored
351 And other obvious things. Let us know if we've overlooked a
352 non-obvious detail.
d8788af @rcaputo Big documentation rewrite
authored
353
793304b @rcaputo Revise documentation in a major way.
authored
354 =head1 COMPATIBILITY ISSUES
f77c574 @rcaputo revised documentation
authored
355
793304b @rcaputo Revise documentation in a major way.
authored
356 One of POE's design goals is to be as portable as possible. That's
357 why it's written in "Plain Perl". XS versions of POE modules are
37d4499 @rcaputo Apply Chris Fedde's massive doc patch, resolving rt.cpan.org ticket
authored
358 available as third-party distributions. Parts of POE that require
793304b @rcaputo Revise documentation in a major way.
authored
359 nonstandard libraries are optional, and not having those libraries
360 should not prevent POE from installing.
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
361
793304b @rcaputo Revise documentation in a major way.
authored
362 Despite Chris Williams' efforts, we can't test POE everywhere. Please
363 see the GETTING HELP section if you run into a problem.
d8788af @rcaputo Big documentation rewrite
authored
364
793304b @rcaputo Revise documentation in a major way.
authored
365 POE is expected to work on most forms of UNIX, including FreeBSD,
366 MacOS X, Linux, Solaris. Maybe even AIX and QNX, but we're not sure.
d8788af @rcaputo Big documentation rewrite
authored
367
9b1c689 @rcaputo Several doc changes to fix issues reported by garu in irc.perl.org
authored
368 POE is also tested on Windows XP, using the latest version of
369 ActiveState, Strawberry and Cygwin Perl. POE is fully supported with
370 Strawberry Perl, as it's included in the Strawberry distribution.
d8788af @rcaputo Big documentation rewrite
authored
371
793304b @rcaputo Revise documentation in a major way.
authored
372 OS/2 and MacOS 9 have been reported to work in the past, but nobody
373 seems to be testing there anymore. Reports and patches are still
374 welcome.
d814423 @rcaputo doc patch and 19_filterchange.t Storable tweak
authored
375
793304b @rcaputo Revise documentation in a major way.
authored
376 Past versions of POE have been tested with Perl versions as far back
377 as 5.004_03 and as recent as "blead", today's development build. We
378 can no longer guarantee each release will work everywhere, but we will
379 be happy to work with you if you need special support for a really old
380 system.
d8788af @rcaputo Big documentation rewrite
authored
381
793304b @rcaputo Revise documentation in a major way.
authored
382 POE's quality is due in large part to the fine work of Chris Williams
383 and the other CPAN testers. They have dedicated resources towards
384 ensuring CPAN distributions pass their own tests, and we watch their
385 reports religiously. You can, too. The latest POE test reports can
168b592 @rcaputo Fix a cpantesters.org link that gcola reported as 404 in irc.perl.org…
authored
386 be found at L<http://cpantesters.org/distro/P/POE.html>.
d8788af @rcaputo Big documentation rewrite
authored
387
793304b @rcaputo Revise documentation in a major way.
authored
388 Thanks also go out to Benjamin Smith and the 2006 Google Summer of
389 Code. Ben was awarded a grant to improve POE's test suite, which he
390 did admirably.
391
392 =head2 Windows Issues
393
394 POE seems to work very nicely with Perl compiled for Cygwin. If you
395 must use ActiveState Perl, please use the absolute latest version.
396 ActiveState Perl's compatibility fluctuates from one build to another,
397 so we tend not to support older releases.
398
399 Windows and ActiveState Perl are considered an esoteric platform due
400 to the complex interactions between various versions. POE therefore
401 relies on user feedback and support here.
402
403 A number of people have helped bring POE's Windows support this far,
404 through contributions of time, patches, and other resources. Some of
405 them are: Sean Puckett, Douglas Couch, Andrew Chen, Uhlarik Ondoej,
406 Nick Williams, and Chris Williams (no relation).
407
408 =head2 Other Compatibility Issues
409
410 None currently known. See GETTING HELP below if you've run into
411 something.
412
413 =head1 GETTING HELP
414
415 POE's developers take pride in its quality. If you encounter a
416 problem, please let us know.
417
418 =head2 POE's Request Tracker
419
420 You're welcome to e-mail questions and bug reports to
421 <bug-POE@rt.cpan.org>. This is not a realtime support channel,
422 though. If you need a more immediate response, try one of the methods
423 below.
424
425 =head2 POE's Mailing List
426
427 POE has a dedicated mailing list where developers and users discuss
428 the software and its use. You're welcome to join us. Send an e-mail
429 to <poe-help@perl.org> for subscription instructions. The subject and
430 message body are ignored.
431
432 =head2 POE's Web Site
433
434 <http://poe.perl.org> contains recent information, tutorials, and
435 examples. It's also a wiki, so people are invited to share tips and
436 code snippets there as well.
437
23912e3 @rcaputo Add a reference to POE's subversion repository, per Zoffix's
authored
438 =head2 POE's Source Code
439
440 The following command will fetch the most current version of POE into
441 the "poe" subdirectory:
442
443 svn co https://poe.svn.sourceforge.net/svnroot/poe poe
444
793304b @rcaputo Revise documentation in a major way.
authored
445 =head2 SourceForge
446
447 http://sourceforge.net/projects/poe/ is POE's project page.
448
449 =head2 Internet Relay Chat (IRC)
450
451 irc.perl.org channel #poe is an informal place to waste some time and
452 maybe even discuss Perl and POE. Consider an SSH relay if your
453 workplace frowns on IRC. But only if they won't fire you if you're
454 caught.
455
456 =head2 Personal Support
457
458 Unfortunately we don't have resources to provide free one-on-one
459 personal support anymore. We'll do it for a fee, though. Send Rocco
460 an e-mail via his CPAN address.
d8788af @rcaputo Big documentation rewrite
authored
461
f77c574 @rcaputo revised documentation
authored
462 =head1 SEE ALSO
d8788af @rcaputo Big documentation rewrite
authored
463
793304b @rcaputo Revise documentation in a major way.
authored
464 Broken down by abstraction layer.
465
466 =head2 Layer 1
467
2c3758b Mid-sized documenation update
Philip Gwyn authored
468 L<POE::Kernel>, L<POE::Session>, L<POE::NFA>
f77c574 @rcaputo revised documentation
authored
469
793304b @rcaputo Revise documentation in a major way.
authored
470 =head2 Layer 2
471
2c3758b Mid-sized documenation update
Philip Gwyn authored
472 L<POE::Wheel>, L<POE::Wheel::Curses>, L<POE::Wheel::FollowTail>,
473 L<POE::Wheel::ListenAccept>, L<POE::Wheel::ReadLine>, L<POE::Wheel::ReadWrite>,
474 L<POE::Wheel::Run>, L<POE::Wheel::SocketFactory>
f77c574 @rcaputo revised documentation
authored
475
2c3758b Mid-sized documenation update
Philip Gwyn authored
476 L<POE::Driver>, L<POE::Driver::SysRW>
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored
477
2c3758b Mid-sized documenation update
Philip Gwyn authored
478 L<POE::Filter>, L<POE::Filter::Block>, L<POE::Filter::Grep>,
479 L<POE::Filter::HTTPD>, L<POE::Filter::Line>, L<POE::Filter::Map>,
480 L<POE::Filter::RecordBlock>, L<POE::Filter::Reference>,
481 L<POE::Filter::Stackable>, L<POE::Filter::Stream>
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored
482
793304b @rcaputo Revise documentation in a major way.
authored
483 =head2 Layer 3
484
2c3758b Mid-sized documenation update
Philip Gwyn authored
485 L<POE::Component>, L<POE::Component::Client::TCP>,
486 L<POE::Component::Server::TCP>
f77c574 @rcaputo revised documentation
authored
487
793304b @rcaputo Revise documentation in a major way.
authored
488 =head2 Layer 0
489
2c3758b Mid-sized documenation update
Philip Gwyn authored
490 L<POE::Loop>, L<POE::Loop::Event>, L<POE::Loop::Gtk>, L<POE::Loop::IO_Poll>,
491 L<POE::Loop::Select>, L<POE::Loop::Tk>
f77c574 @rcaputo revised documentation
authored
492
2c3758b Mid-sized documenation update
Philip Gwyn authored
493 L<POE::Queue>, L<POE::Queue::Array>
296aa91 @rcaputo finally add Dieter Pearcey's stackable filters
authored
494
2c3758b Mid-sized documenation update
Philip Gwyn authored
495 L<POE::Resource>, L<POE::Resource::Aliases>, L<POE::Resource::Events>,
496 L<POE::Resource::Extrefs>, L<POE::Resource::FileHandles>,
497 L<POE::Resource::Performance>, L<POE::Resource::SIDs>,
498 L<POE::Resource::Sessions>, L<POE::Resource::Signals>
f77c574 @rcaputo revised documentation
authored
499
793304b @rcaputo Revise documentation in a major way.
authored
500 =head2 Helpers
501
2c3758b Mid-sized documenation update
Philip Gwyn authored
502 L<POE::Pipe>, L<POE::Pipe::OneWay>, L<POE::Pipe::TwoWay>
793304b @rcaputo Revise documentation in a major way.
authored
503
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
504 =head2 Home Page
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
505
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
506 http://poe.perl.org/
792d01e @rcaputo Documentation tweaks. Bump the version up to 0.31 for release.
authored
507
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
508 =head2 Bug Tracker
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
509
6276d91 @rcaputo Documented the bug tracker, repository, and other resource URLs.
authored
510 https://rt.cpan.org/Dist/Display.html?Status=Active&Queue=POE
511
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
512 =head2 Repository
6276d91 @rcaputo Documented the bug tracker, repository, and other resource URLs.
authored
513
514 https://poe.svn.sourceforge.net/svnroot/poe/trunk/poe
515
eb6532b @rcaputo Rely on POE::Test::Loops 1.021, which should be everywhere by now.
authored
516 =head2 Other Resources
6276d91 @rcaputo Documented the bug tracker, repository, and other resource URLs.
authored
517
518 http://search.cpan.org/dist/POE/
ad0d40f @rcaputo 0.08_05
authored
519
d8788af @rcaputo Big documentation rewrite
authored
520 =head1 AUTHORS & COPYRIGHT
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
521
793304b @rcaputo Revise documentation in a major way.
authored
522 POE is the combined effort of quite a lot of people. This is an
523 incomplete list of some early contributors. A more complete list can
524 be found in POE's change log.
d8788af @rcaputo Big documentation rewrite
authored
525
526 =over 2
527
726aee4 @rcaputo credit more people
authored
528 =item Ann Barcomb
d8788af @rcaputo Big documentation rewrite
authored
529
726aee4 @rcaputo credit more people
authored
530 Ann Barcomb is <kudra@domaintje.com>, aka C<kudra>. Ann contributed
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
531 large portions of POE::Simple and the code that became the ReadWrite
da6a2f2 @rcaputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored
532 support in POE::Component::Server::TCP. Her ideas also inspired
533 Client::TCP component, introduced in version 0.1702.
d8788af @rcaputo Big documentation rewrite
authored
534
f77c574 @rcaputo revised documentation
authored
535 =item Artur Bergman
d8788af @rcaputo Big documentation rewrite
authored
536
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
537 Artur Bergman is <sky@cpan.org>. He contributed many hours' work into
538 POE and quite a lot of ideas. Years later, I decide he's right and
539 actually implement them.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
540
f77c574 @rcaputo revised documentation
authored
541 Artur is the author of Filter::HTTPD and Filter::Reference, as well as
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
542 bits and pieces throughout POE. His feedback, testing, design and
543 inspiration have been instrumental in making POE what it is today.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
544
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
545 Artur is investing his time heavily into perl 5's iThreads and PONIE
546 at the moment. This project has far-reaching implications for POE's
547 future.
726aee4 @rcaputo credit more people
authored
548
549 =item Jos Boumans
550
7183ab8 @rcaputo Fix Jos Boumans' credit.
authored
551 Jos Boumans is <kane@cpan.org>, aka C<kane>. Jos is a major driving
552 force behind the POE::Simple movement and has helped inspire the
553 POE::Components for TCP clients and servers.
726aee4 @rcaputo credit more people
authored
554
555 =item Matt Cashner
556
957c350 @sungo update my email address
sungo authored
557 Matt Cashner is <sungo@pobox.com>, aka C<sungo>. Matt is one of POE's
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
558 core developers. He's spearheaded the movement to simplify POE for
559 new users, flattening the learning curve and making the system more
560 accessible to everyone. He uses the system in mission critical
561 applications, folding feedback and features back into the distribution
562 for everyone's enjoyment.
726aee4 @rcaputo credit more people
authored
563
564 =item Andrew Chen
565
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
566 Andrew Chen is <achen-poe@micropixel.com>. Andrew is the resident
567 POE/Windows guru. He contributes much needed testing for Solaris on
568 the SPARC and Windows on various Intel platforms.
726aee4 @rcaputo credit more people
authored
569
f77c574 @rcaputo revised documentation
authored
570 =item Douglas Couch
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
571
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
572 Douglas Couch is <dscouch@purdue.edu>. Douglas helped port and
573 maintain POE for Windows early on.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
574
726aee4 @rcaputo credit more people
authored
575 =item Jeffrey Goff
576
577 Jeffrey Goff is <jgoff@blackboard.com>. Jeffrey is the author of
578 several POE modules, including a tokenizing filter and a component for
579 managing user information, PoCo::UserBase. He's also co-author of "A
580 Beginner's Introduction to POE" at www.perl.com.
581
f77c574 @rcaputo revised documentation
authored
582 =item Philip Gwyn
d8788af @rcaputo Big documentation rewrite
authored
583
f77c574 @rcaputo revised documentation
authored
584 Philip Gwyn is <gwynp@artware.qc.ca>. He extended the Wheels I/O
585 abstraction to support hot-swappable filters, and he eventually
626fc71 @rcaputo Bump the version number and halfheartedly revise the man page. The
authored
586 convinced Rocco that unique session and kernel IDs were a good thing.
d8788af @rcaputo Big documentation rewrite
authored
587
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
588 Philip also enhanced L<POE::Filter::Reference|POE::Filter::Reference> to
589 support different serialization methods. He has also improved POE's quality
590 by finding and fixing several bugs. He provided POE a much needed code
591 review around version 0.06.
d8788af @rcaputo Big documentation rewrite
authored
592
95b93a6 Add more to what I've done.
Philip Gwyn authored
593 Lately, Philip tracked down the race condition in signal handling and
594 fixed it with the signal pipe.
595
726aee4 @rcaputo credit more people
authored
596 =item Arnar M. Hrafnkelsson
597
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
598 Arnar is <addi@umich.edu>. Addi tested POE and L<POE::Component::IRC|POE::Component::IRC> on
2c3758b Mid-sized documenation update
Philip Gwyn authored
599 Windows, finding bugs and testing fixes. He appears throughout the Changes
600 file. He has also written "cpoe", which is a POE-like library for C.
726aee4 @rcaputo credit more people
authored
601
f77c574 @rcaputo revised documentation
authored
602 =item Dave Paris
d8788af @rcaputo Big documentation rewrite
authored
603
f77c574 @rcaputo revised documentation
authored
604 Dave Paris is <dparis@w3works.com>. Dave tested and benchmarked POE
605 around version 0.05, discovering some subtle (and not so subtle)
606 timing problems. The pre-forking server sample was his idea.
641566b @rcaputo I accidentally rewrote the documentation for this module.
authored
607 Versions 0.06 and later scaled to higher loads because of his work.
608 He has contributed a lot of testing and feedback, much of which is
609 tagged in the Changes file as a-mused. The man is scarily good at
610 testing and troubleshooting.
761b0d6 @rcaputo speed up kernel; fix bad filehandle in test 4
authored
611
f77c574 @rcaputo revised documentation
authored
612 =item Dieter Pearcey
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
613
2c3758b Mid-sized documenation update
Philip Gwyn authored
614 Dieter Pearcey is <dieter@bullfrog.perlhacker.org>. He goes by several
615 Japanese nicknames. Dieter's current area of expertise is in Wheels and
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
616 Filters. He greatly improved L<POE::Wheel::FollowTail|POE::Wheel::FollowTail>, and his Filter
2c3758b Mid-sized documenation update
Philip Gwyn authored
617 contributions include the basic Block filter, as well as Stackable,
618 RecordBlock, Grep and Map.
c575666 @rcaputo added Filter::Block and Dieter's FollowTail patches; finishing touche…
authored
619
f77c574 @rcaputo revised documentation
authored
620 =item Robert Seifer
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
621
d8788af @rcaputo Big documentation rewrite
authored
622 Robert Seifer is <e-mail unknown>. He rotates IRC nicknames
623 regularly.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
624
d8788af @rcaputo Big documentation rewrite
authored
625 Robert contributed entirely too much time, both his own and his
626 computers, towards the detection and eradication of a memory
627 corruption bug that POE tickled in earlier Perl versions. In the end,
628 his work produced a simple compile-time hack that worked around a
629 problem relating to anonymous subs, scope and @{} processing.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
630
da6a2f2 @rcaputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored
631 =item Matt Sergeant
632
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
633 Matt contributed L<POE::Kernel::Poll|POE::Kernel::Poll>, a more efficient way to watch
f06f820 @rcaputo Mike Castle found references to the old POE::Loop::Poll in the
authored
634 multiple files than select(). It's since been moved to
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
635 L<POE::Loop::IO_Poll|POE::Loop::IO_Poll>.
da6a2f2 @rcaputo Matt Sergeant contributed POE::Kernel::Poll, an event loop substrate
authored
636
726aee4 @rcaputo credit more people
authored
637 =item Richard Soderberg
638
639 Richard Soderberg is <poe@crystalflame.net>, aka C<coral>. Richard is
640 a collaborator on several side projects involving POE. His work
641 provides valuable testing and feedback from a user's point of view.
642
f77c574 @rcaputo revised documentation
authored
643 =item Dennis Taylor
197063a @rcaputo gutted and rewrote Filter::Line's innards for extra options
authored
644
645 Dennis Taylor is <dennis@funkplanet.com>. Dennis has been testing,
646 debugging and patching bits here and there, such as Filter::Line which
647 he improved by leaps in 0.1102. He's also the author of
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
648 L<POE::Component::IRC|POE::Component::IRC>, the widely popular POE-based successor to his
649 wildly popular L<Net::IRC|Net::IRC> library.
197063a @rcaputo gutted and rewrote Filter::Line's innards for extra options
authored
650
80972fc @xantus add blurb about myself to the contributers list
xantus authored
651 =item David Davis
652
653 David Davis, aka Xantus is <xantus@cpan.org>. David contributed patches
fd8c1b4 All L<module> to L<module|module> to prevent pod2html outputing 'the …
Philip Gwyn authored
654 to the HTTPD filter, and added CALLER_STATE to L<POE::Session|POE::Session>. He is the
80972fc @xantus add blurb about myself to the contributers list
xantus authored
655 author of L<Sprocket>, a networking framework built on POE.
656
f77c574 @rcaputo revised documentation
authored
657 =item Others?
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
658
793304b @rcaputo Revise documentation in a major way.
authored
659 Please contact the author if you've been forgotten and would like to
660 be included here.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
661
8f0c235 @rcaputo Move the POE.pm use lines to POE::Kernel. Mark that contributors nee…
authored
662 TODO - This section has fallen into disrepair. A POE historian needs
663 to cull the CHANGES for the names of major contributors.
664
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
665 =back
666
667 =head2 Author
668
d8788af @rcaputo Big documentation rewrite
authored
669 =over 2
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
670
f77c574 @rcaputo revised documentation
authored
671 =item Rocco Caputo
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
672
793304b @rcaputo Revise documentation in a major way.
authored
673 Rocco Caputo is <rcaputo@cpan.org>. POE is his brainchild. He wishes
674 to thank you for your interest, and he has more thanks than he can
675 count for all the people who have contributed. POE would not be
676 nearly as cool without you.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
677
6276d91 @rcaputo Documented the bug tracker, repository, and other resource URLs.
authored
678 Except where otherwise noted, POE is Copyright 1998-2009 Rocco Caputo.
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
679 All rights reserved. POE is free software; you may redistribute it
680 and/or modify it under the same terms as Perl itself.
681
d8788af @rcaputo Big documentation rewrite
authored
682 =back
683
684 Thank you for reading!
685
0d6f19d @rcaputo Revised all the manpages. Split the manpages into separate PODs, and
authored
686 =cut
82929ed @rcaputo Mark files that need to be redocumented.
authored
687
688 # rocco // vim: ts=2 sw=2 expandtab
66cbf3b @rcaputo Everything needs an edit pass. Add TODOs to every module.
authored
689 # TODO - Edit.
Something went wrong with that request. Please try again.