Personal tools
Skip to content. | Skip to navigation
Text::Unidecode provides a function, `unidecode(...)' that takes Unicode data and tries to represent it in US-ASCII characters (i.e., the universally displayable characters between 0x00 and 0x7F). The representation is almost always an attempt at *transliteration* -- i.e., conveying, in Roman letters, the pronunciation expressed by the text in some other writing system.
This is a module which intends to substitute Text::Wrap, which supports internationalized texts including: - multi-byte encodings such as UTF-8, EUC-JP, EUC-KR, GB2312, and Big5, - full width characters like east Asian characters which appear in UTF-8, EUC-JP, EUC-KR, GB2312, Big5, and so on, - combining characters like diacritical marks which appear in UTF-8, ISO-8859-11 (aka TIS-620), and so on, and - languages which don't use white spaces between words, like Chinese and Japanese.
This Thread module served as the front end to the old-style thread model, called 5005threads, that has been removed in version 5.10. For old code and interim backwards compatibility, the Thread module has been reworked to function as a front end for the new interpreter threads (ithreads) model. However, some previous functionality is not available. Further, the data sharing models between the two thread models are completely different, and anything to do with data sharing has to be thought differently. You are strongly encouraged to migrate any existing threaded code to the new model (i.e., use the threads and threads::shared modules) as soon as possible.
This module provides thread-safe FIFO queues that can be accessed safely by any number of threads.
Semaphores provide a mechanism to regulate access to resources. Unlike locks, semaphores aren't tied to particular scalars, and so may be used to control access to anything you care to use them for. Semaphores don't limit their values to zero and one, so they can be used to control access to some resource that there may be more than one of (e.g., file handles). Increment and decrement amounts aren't fixed at one either, so threads can reserve or return multiple resources at once.
Since Perl 5.8, thread programming has been available using a model called interpreter threads which provides a new Perl interpreter for each thread, and, by default, results in no data or state information being shared between threads. (Prior to Perl 5.8, 5005threads was available through the Thread.pm API. This threading model has been deprecated, and was removed as of Perl 5.10.0.) As just mentioned, all variables are, by default, thread local. To use shared variables, you need to also load threads::shared.