in reply to resource control: FD

There is nothing wrong with keeping a counter in a module. This combined with overloading open, close, socket... so you could keep a valid counter is one possiblity (not recommended). Opening until you get an error is better. Even better is to make the user responsible, and let them set the maximum (in which case you need not worry about how many they have open). Defaulting to a reasonable value like 16. This is much friendlier for a module anyways, what if I don't want to swamp my box? This is basically how FileCache works (hence my jumping the gun below/earlier).

UPDATE: *sigh* Pay no attention to the man behind the curtain

~~~ This is a curtain ~~~

Perl comes with a standard module for handling (UPDATE: the non-socket case of) this, it is FileCache. Perl 5.8 will have an improved version that is available over there (or in bleadperl of course, require perl 5.6+).

--
perl -pew "s/\b;([mnst])/'$1/g"