Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: A sub named ∃

by Steve_p (Priest)
on Nov 30, 2006 at 03:41 UTC ( [id://586854]=note: print w/replies, xml ) Need Help??


in reply to A sub named ∃

I believe that this bug is to blame. There are plans to fix it, but, as of yet, I don't know that there has been any progress towards resolving it.

Replies are listed 'Best First'.
Re^2: A sub named ∃
by vkon (Curate) on Nov 30, 2006 at 11:11 UTC
    I suspect you know the situation better than me, but why in this particular case the explanation that
    ∃!~/\w/
    will not suffice?
    Perl allows utf8-names from letters of non-English alphabets, although documentation strictly warns against this.

      /w isn't the pattern for matching the first character in identifiers. I never consider \w when matching that first character. In unicode, the pattern to follow is likely /\A\p{IdFirst}\w*\z/. In ASCII, the pattern is /\A[[:alpha:]_]\w*\z/. The pattern /\^\w+\z/ is always wrong when matching identifiers.

      ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

        all my concious life any unicode-capable perl matches with \w any unicode letter, and I often match russian letters e.g. 0x0432 with \w.

        I never did [[:alpha:]], but did succeeded russian letters matching with \w

Re^2: A sub named ∃
by ikegami (Patriarch) on Nov 30, 2006 at 16:36 UTC

    Note: In the following source code,
    replace "∃" with the UTF-8 representation of "∃", and
    replace "трщь" with the UTF-8 representation of "трщь".

    use strict; use warnings; no warnings 'redefine'; for ( [ "Symbol, use utf8: " => "use utf8; sub ∃ {}" ], [ "Symbol, no utf8: " => "no utf8; sub ∃ {}" ], [ "Russian, use utf8: " => "use utf8; sub трщ&#11 +00; {}" ], [ "Russian, no utf8: " => "no utf8; sub трщ&#11 +00; {}" ], ) { print $_->[0], eval "$_->[1]; 1" ? "Success\n" : $@; }
    outputs
    Symbol, use utf8: Illegal declaration of anonymous subroutine at (eva +l 1) line 1. Symbol, no utf8: Illegal declaration of anonymous subroutine at (eva +l 2) line 1. Russian, use utf8: Success Russian, no utf8: Illegal declaration of anonymous subroutine at (eva +l 4) line 1.

    If the problem is what you say it is, wouldn't use utf8 have no effect on the error?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://586854]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2024-04-19 14:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found