Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

[5.8.0 Note] A Sub Named Sigma

by Zaxo (Archbishop)
on Nov 25, 2002 at 12:00 UTC ( #215594=perlmeditation: print w/ replies, xml ) Need Help??

Plinking at unicode support in perl 5.8.0, I've succeeded in naming a sub Σ - "\N{GREEK CAPITOL LETTER SIGMA}", or Σ. The byte sequence for that is 0xD3 0x8E.

This may be tough to paste accurately, but it's a chance to see how it gets encoded and rendered, too.

#!/usr/bin/perl # I hight use 5.8.0; use warnings; use strict; use utf8; sub ~N { my $sum = 0; $sum += $_ for @_; $sum; } print ~N 1..5; print $/;
As I feared, I haven't found a way to paste utf8 into moz without 'helpful' interventions. The above is as rendered by vim, mangled by X. Anybody know how to do this?

Properly displayed, the sub and call read:
sub Σ {
print Σ 1..5;

Here's a one-liner to patch the listing (assuming ISO-8859-1): perl -pi.bak -e's/~N/\xD3\x8E/'
It's not easy yet for me to get my tools to cooperate.

After Compline,

Comment on [5.8.0 Note] A Sub Named Sigma
Select or Download Code
Re: [5.8.0 Note] A Sub Named Sigma
by RMGir (Prior) on Nov 25, 2002 at 13:34 UTC
    Am I the only one thinking "Cute, but WHY???"... (Edit: I should note that I did ++ Zaxo, it's a cool experiment.)

    It's interesting, and I guess it'll be cool to be able to say

    # this won't render right as a code block, so it's pre
    my ($x,$sum);
    But I'm afraid that venturing into multi-byte character sets for source code is pretty dangerous... I'd think the risks don't outweigh the benefits.

    It is important to be able to represent them in strings and data, of course.

    Oh well, the powers that be did decide that perl source could be utf-8, so it's not like I can retroactively change their minds. But the possible toolset incompatibilities outweigh the benefits, in my mind, of sub Σ, or even, in French, things like sub arrivée and sub départ...

Re: [5.8.0 Note] A Sub Named Sigma
by quine (Initiate) on Nov 25, 2002 at 16:46 UTC

    Hello Zaxo,

    This very much reminds me of old visual basic excursions where the whole API was translated into various languages.

    Up to the point of having to translate source code from language A (visual basic, english) into language B (visual basic, german).

    I guess this does not really apply to your problem. All I want to say is: If your tools don't cooperate on this, maybe that is the reason such things are uncommon. You probably should not try coding utf-8 then. Why make it more complex ?

    yours dearly,

Re: [5.8.0 Note] A Sub Named Sigma
by traveler (Parson) on Nov 25, 2002 at 17:29 UTC
    Is this a precursor to letting us write APL in perl :-)?

      Yes, it is. Thank the gods, it isn't a precursor for /forcing/ us to write APL in perl.

      Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).

Re: [5.8.0 Note] A Sub Named Sigma
by Courage (Parson) on Nov 26, 2002 at 22:54 UTC
    There is a possibility to write such programs without utf8-capable editor at all.
    perldoc encoding from 5.8.0 perl gives an example:
    # an alternate way, Filter use encoding "euc-jp", Filter=>1; use utf8; # now you can use kanji identifiers -- in euc-jp!
    I tried using Russian locale, and it works! I was able to name identifiers using mentioned locale:
    use encoding 'cp1251', Filter=>1; use utf8; my $="eqweq"; print $;

    Courage, the Cowardly Dog

Re: [5.8.0 Note] A Sub Named Sigma
by jdporter (Canon) on Mar 14, 2008 at 15:57 UTC
    ...rendered by vim, mangled by X.

    I can't speak to the X bit, but getting Vim to deal with Unicode is fairly straightforward. (On some level, I feel it would have been nice if Unicode handling was turned on by default in Vim.)

    First, enter the following commands. I put them in my vimrc file, since I deal with Unicode a lot.

    :set enc=unicode :set tenc=unicode
    Then be sure to select a font which renders your characters properly. Maybe every font (or at least the common/default ones) have a Sigma; for my purposes, there were only one or two appropriate fonts.

    A word spoken in Mind will reach its own level, in the objective world, by its own weight

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://215594]
Approved by dada
Front-paged by rob_au
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (13)
As of 2014-08-01 16:17 GMT
Find Nodes?
    Voting Booth?

    Who would be the most fun to work for?

    Results (28 votes), past polls