Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Simplify constant value determination

by Tomte (Priest)
on Aug 25, 2006 at 16:21 UTC ( #569613=perlquestion: print w/ replies, xml ) Need Help??
Tomte has asked for the wisdom of the Perl Monks concerning the following question:

Hi,
to allow for determination exactly which version of a program runs (and produces errors), I have the following statement to fetch the subversion revision-number in my code

use constant REVISION => eval { ( $_ = '$Id: mcdt.pl 2081 2006-08-25 16:16:27Z tomte $' ) =~ s/\$Id: mcdt.pl (\d+) .*/$1/; $_; };
While I think its reasonable and not too ugly, I wonder if theres a more concise/elegant way of retrieving the revision-number as a constant.

Edit: elimininated /g modifier

regards,
tomte


An intellectual is someone whose mind watches itself.
-- Albert Camus

Comment on Simplify constant value determination
Select or Download Code
Re: Simplify constant value determination
by friedo (Prior) on Aug 25, 2006 at 16:36 UTC
    How about:

    use constant REVISION => q$Id: mcdt.pl 2081 2006-08-25 16:16:27Z tomte $ =~ /pl (\d+)/;
Re: Simplify constant value determination
by ysth (Canon) on Aug 25, 2006 at 16:37 UTC
    Since you seem to just want the first group of digits:
    use constant REVISION => ('$Id: mcdt.pl 2081 2006-08-25 16:16:27Z tomt +e $' =~ /(\d+)/g)[0];
    should do it. No need for eval or substitution here.

    Update: grr, I don't use g-less m// in list context often enough to remember what it returns.

    use constant REVISION => '$Id: mcdt.pl 2081 2006-08-25 16:16:27Z tomte + $' =~ /(\d+)/;

      the last one is what i was looking for - thanks and ++ysth - the wood for the trees etc. :)

      regards,
      tomte


      An intellectual is someone whose mind watches itself.
      -- Albert Camus

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (10)
As of 2015-07-06 23:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (85 votes), past polls