Hi,
The svUTF8 predictability thread made me reread the perlunicode pod.
Something caught my eye, "Perls starting in 5.8 have a different Unicode
model from 5.6." This doesn't seem to match the code examples below it,
except the last one which seems correct. I think this patch should fix that.
diff --git a/pod/perlunicode.pod b/pod/perlunicode.pod
index 4ddb4c4a30..62d14dd0d7 100644
--- a/pod/perlunicode.pod
+++ b/pod/perlunicode.pod
@@ -2104,7 +2104,7 @@ work under 5.6, so you should be safe to try them out.
A filehandle that should read or write UTF-8
- if ($] > 5.008) {
+ if ($] >= 5.008) {
binmode $fh, ":encoding(UTF-8)";
}
@@ -2118,7 +2118,7 @@ UTF8 flag is stripped off. Note that at the time
of this writing
(January 2012) the mentioned modules are not UTF-8-aware. Please
check the documentation to verify if this is still true.
- if ($] > 5.008) {
+ if ($] >= 5.008) {
require Encode;
$val = Encode::encode("UTF-8", $val); # make octets
}
@@ -2130,7 +2130,7 @@ A scalar we got back from an extension
If you believe the scalar comes back as UTF-8, you will most likely
want the UTF8 flag restored:
- if ($] > 5.008) {
+ if ($] >= 5.008) {
require Encode;
$val = Encode::decode("UTF-8", $val);
}
@@ -2139,7 +2139,7 @@ want the UTF8 flag restored:
Same thing, if you are really sure it is UTF-8
- if ($] > 5.008) {
+ if ($] >= 5.008) {
require Encode;
Encode::_utf8_on($val);
}
HTH,
M4
The svUTF8 predictability thread made me reread the perlunicode pod.
Something caught my eye, "Perls starting in 5.8 have a different Unicode
model from 5.6." This doesn't seem to match the code examples below it,
except the last one which seems correct. I think this patch should fix that.
diff --git a/pod/perlunicode.pod b/pod/perlunicode.pod
index 4ddb4c4a30..62d14dd0d7 100644
--- a/pod/perlunicode.pod
+++ b/pod/perlunicode.pod
@@ -2104,7 +2104,7 @@ work under 5.6, so you should be safe to try them out.
A filehandle that should read or write UTF-8
- if ($] > 5.008) {
+ if ($] >= 5.008) {
binmode $fh, ":encoding(UTF-8)";
}
@@ -2118,7 +2118,7 @@ UTF8 flag is stripped off. Note that at the time
of this writing
(January 2012) the mentioned modules are not UTF-8-aware. Please
check the documentation to verify if this is still true.
- if ($] > 5.008) {
+ if ($] >= 5.008) {
require Encode;
$val = Encode::encode("UTF-8", $val); # make octets
}
@@ -2130,7 +2130,7 @@ A scalar we got back from an extension
If you believe the scalar comes back as UTF-8, you will most likely
want the UTF8 flag restored:
- if ($] > 5.008) {
+ if ($] >= 5.008) {
require Encode;
$val = Encode::decode("UTF-8", $val);
}
@@ -2139,7 +2139,7 @@ want the UTF8 flag restored:
Same thing, if you are really sure it is UTF-8
- if ($] > 5.008) {
+ if ($] >= 5.008) {
require Encode;
Encode::_utf8_on($val);
}
HTH,
M4