Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^2: Feature Idea: qr//e

by LanX (Saint)
on Jan 19, 2017 at 08:02 UTC ( [id://1179895]=note: print w/replies, xml ) Need Help??


in reply to Re: Feature Idea: qr//e
in thread Feature Idea: qr//e (updated with solutions)

    my $regex = qr/$_/ for join '|', map quotemeta, qw/. | %/;

(untested from mobile)

Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Je suis Charlie!

Replies are listed 'Best First'.
Re^3: Feature Idea: qr//e
by haukex (Archbishop) on Jan 19, 2017 at 11:53 UTC

    Hi LanX,

    Good thought, unfortunately that suffers from scoping issues (Update: see my reply later in this thread):

    $ perl -wMstrict -e 'my $x = $_ for "a"; print $x' Use of uninitialized value $x in print at -e line 1.

    Regards,
    -- Hauke D

      Well as I said, I couldn't test while posting from mobile.

      I though that post-fix-for doesn't have an own scope, analogous to post-fix-if

      So I ran a test and it turned out that post-fix-for is neither fish nor flesh, it's pretending and denying having an own scope ... ugh ...oO

      please notice how the redeclaration of $x is reported but the value gets lost.

      Looks like a bug...

      use strict; use warnings; my $y=666 if 1; warn $y; my $x=1; my $x=42 for 1; warn $x;

      "my" variable $x masks earlier declaration in same scope at c:/tmp/pm/ +scope_postfix_for.pl line 12. 666 at c:/tmp/pm/scope_postfix_for.pl line 7. Use of uninitialized value $x in warn at c:/tmp/pm/scope_postfix_for.p +l line 16. Warning: something's wrong at c:/tmp/pm/scope_postfix_for.pl line 16.

      Cheers Rolf
      (addicted to the Perl Programming Language and ☆☆☆☆ :)
      Je suis Charlie!

        Hi LanX,

        I think it's this:

        NOTE: The behaviour of a my, state, or our modified with a statement modifier conditional or loop construct (for example, my $x if ...) is undefined. The value of the my variable may be undef, any previously assigned value, or possibly anything else. Don't rely on it. Future versions of perl might do something different from the version of perl you try it out on. Here be dragons.

        Regards,
        -- Hauke D

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2024-04-19 11:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found