ady has asked for the wisdom of the Perl Monks concerning the following question:
I want a rexex s///e to bump up the build number, eg. from 0.8.34.0 to 0.8.35.0. I tried the following, but was stalled in the regex...
Update
Ok OK!! Folks, flowering TMTOWTDItis .. :-D Thanks! -- allan
#!/usr/bin/perl -w use strict; my $version = '0.8.34.0'; # This works as expected $version =~ /(\d+\.\d+\.)(\d+)(\.\d+)/; $version = $1 . ($2 + 1) . $3; print "$version\n"; # but this won't compile, --- why? #$version =~ s/(\d+\.\d+\.)(\d+)(\.\d+)/{$1}$2+1{$3}/e; print $version;
Update
Ok OK!! Folks, flowering TMTOWTDItis .. :-D Thanks! -- allan
Beast regards -- allan#!/usr/bin/perl -w use strict; my $version = '0.8.34.0'; $version =~ /(\d+\.\d+\.)(\d+)(\.\d+)/; $version = $1 . ($2 + 1) . $3; print "$version\n"; $version =~ s/(\d+\.\d+\.)(\d+)(\.\d+)/$1.($2+1).$3/e; print "$version\n"; $version = do { my $v = [ split /\./, $version ]; $v->[2]++; join '.', + @$v }; print "$version\n"; $version =~ s/(\d+)(?=\.\d+\z)/$1 + 1/e; print "$version\n";
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: RegEx bump version number
by jettero (Monsignor) on Apr 25, 2007 at 17:33 UTC | |
Re: RegEx bump version number
by NetWallah (Canon) on Apr 25, 2007 at 17:40 UTC | |
by ady (Deacon) on Apr 25, 2007 at 17:46 UTC | |
Re: RegEx bump version number
by shigetsu (Hermit) on Apr 25, 2007 at 17:43 UTC |
Back to
Seekers of Perl Wisdom