Unless specifically qualified otherwise, the remainder of this document
covers changes between the 5.005 and 5.6.0 releases.
-
+
=head1 Core Enhancements
=head2 Interpreter cloning, threads, and concurrency
Here are the known failures from some compiler/platform combinations.
DEC C V5.3-006 on OpenVMS VAX V6.2
-
+
[-.ext.list.util.t]tainted..............FAILED on test 3
[-.ext.posix]sigaction..................FAILED on test 7
[-.ext.time.hires]hires.................FAILED on test 14
Returns a pointer to the next character after the parsed
vstring, as well as updating the passed in sv.
- *
+
Function must be called like
-
+
sv = NEWSV(92,5);
s = new_vstring(s,sv);
=head2 VMS
There is one known test failure with a default configuration:
-
+
[.run]switches..........................FAILED on test 1
-
+
=head2 Win32
In multi-CPU boxes there are some problems with the I/O buffering:
$int = 0xDEADBEEF;
$dec = sprintf("%d", $int);
-
+
Using the hex function:
$int = hex("DEADBEEF");
sub preserve_case {
my ($from, $to) = @_;
my ($lf, $lt) = map length, @_;
-
+
if ($lt < $lf) { $from = substr $from, 0, $lt }
else { $from .= substr $to, $lf }
-
+
return uc $to | ($from ^ uc $from);
}
The C<h2xs> program will create stubs for all the important stuff for you:
% h2xs -XA -n My::Module
-
+
The C<-X> switch tells C<h2xs> that you are not using C<XS> extension
code. The C<-A> switch tells C<h2xs> that you are not using the
AutoLoader, and the C<-n> switch specifies the name of the module.
You may use the three-argument form of open to specify
I<I/O disciplines> that affect how the input and output
are processed: see L</binmode> and L<open>. For example
-
+
open(FH, "<:utf8", "file")
will open the UTF-8 encoded file containing Unicode characters,
as horribly unfriendly.
Or maybe we could use regular expressions:
-
+
while (<>) {
my($date, $desc, $income, $expend) =
m|(\d\d/\d\d/\d{4}) (.{27}) (.{7})(.*)|;
# pack a message
my $msg = pack( 'Z*Z*CA*C', $src, $dst, length( $sm ), $sm, $prio );
-
+
# unpack fails - $prio remains undefined!
( $src, $dst, $len, $sm, $prio ) = unpack( 'Z*Z*CA*C', $msg );
[ 9] see UTR#13 Unicode Newline Guidelines
[10] should do ^ and $ also on \x{85}, \x{2028} and \x{2029})
(should also affect <>, $., and script line numbers)
-
+
(*) You can mimic class subtraction using lookahead.
For example, what TR18 might write as
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
-
+
/* Global Data */
-
+
#define MY_CXT_KEY "BlindMice::_guts" XS_VERSION
-
+
typedef struct {
int count;
char name[3][100];
} my_cxt_t;
-
+
START_MY_CXT
-
+
MODULE = BlindMice PACKAGE = BlindMice
-
+
BOOT:
{
MY_CXT_INIT;
Returns a pointer to the next character after the parsed
vstring, as well as updating the passed in sv.
- *
+
Function must be called like
-
+
sv = NEWSV(92,5);
s = new_vstring(s,sv);