perl-unicode

Re: perlunitut - feedback appreciated

2001-11-22 23:43:46
On Thu, 22 Nov 2001 22:45:54 -0500, in perl.unicode you wrote:

I've just tried using this in a form like:

my $i = "263a"
my $smiley = "\x{$i}";

and was disappointed that it didn't work.

No -- you need a literal. Just like reading in the string '050' from a
file and treating it as a number doesn't have the same effect as a
literal 050 in your code; the first gets converted to 50 (decimal) while
the second is treated as 050 (octal) == 40 (decimal).

And "\x7" . "5" is a beep and a number 5, not a lowercase letter u
(which is what "\x75" gives you).

If you really want to use something like "\x{$i}", you'll have to use
string eval, just like with the octal example ("$string = '050'; $num =
eval $string;") and the \x example ("$first = '\x7'; $second = '5';
$char = eval $first . $second;").

But you can just use

    my $i = "263a";
    my $smiley = chr hex $i;

or, more simply,

    my $i = 0x263a;
    my $smiley = chr $i;

So I'm making a feature request here.

I would suspect it is unlikely to be granted.

Cheers,
Philip

<Prev in Thread] Current Thread [Next in Thread>