Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Ternary inside a regex

by izut (Chaplain)
on Sep 23, 2005 at 12:17 UTC ( #494495=note: print w/replies, xml ) Need Help??


in reply to Ternary inside a regex

You can do that using the /e modifier:
$a = "size=1111"; $a =~ s/(\d+)/($1 > 5) ? 5 : $1/e; print $a, "\n"


Igor S. Lopes - izut
surrender to perl. your code, your rules.

Replies are listed 'Best First'.
Re^2: Ternary inside a regex
by kiat (Vicar) on Sep 23, 2005 at 12:39 UTC
    Thanks, izut!

    Changed my code to the following and it works:

    $message =~ s~\[size=(.+?)\](.+?)\[/size\]~($1 > 5) ? "<font size=\"5\ +">$2</font>" : "<font size=\"$1\">$2</font>"~eisg;
      I think this way is easier to read:
      message =~ s~\[size=(.+?)\](.+?)\[/size\]~"<font size=\"".(($1 > 5) ? +5 : $1)."\>$2</font>"~eisg;


      Igor S. Lopes - izut
      surrender to perl. your code, your rules.
        Nice! I wanted to do that but didn't manage to - I didn't have the parentheses.

        Thanks :)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2020-04-01 06:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    To "Disagree to disagree" means to:









    Results (186 votes). Check out past polls.

    Notices?