printf "foo\nversion '1.2.36'\nbaz\n" | perl -MData::Dumper -pi -e "next unless /version/; ($version) = /version\s+('1\.2\.36')/; print $version"
foo
version '1.2.36'
version '1.2.36'
baz
printf "foo\nversion '1.2.36'\nbaz\n" | perl -MData::Dumper -pi -e "next unless /version/; ($version) = /version\s+('1\.2\.36')/; print Dumper $version"
foo
version '1.2.36'
baz
printf "foo\nversion '1.2.36'\nbaz\n" | perl -MData::Dumper -pi -e "next unless /version/; ($version) = /version\s+('1\.2\.36')/; print Dumper \$version"
foo
$VAR1 = undef;
version '1.2.36'
baz
printf "foo\nversion '1.2.36'\nbaz\n" | perl -pi -e 'next unless /version/; ($version) = $_ =~ m{ version \s+ ''(1[.]2[.]36)'' }xms; print "version:" . $version . "\n"'
foo
version:
version '1.2.36'
baz
####
$ cat wtf.pl
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
while (<>) {
next unless /version/;
my ($version) = /version \s+ '(\d+[.]\d+[.]\d+)'/msx;
say $version;
}
$ printf "foo\nversion '1.2.36'\nbaz\n" | perl wtf.pl
1.2.36
####
printf "foo\nversion '1.2.36'\nbaz\n" | perl -pi -e 'if ($_ =~ m/version\s+.\d+[.]\d+[.](\d+)/) { my $v1 = quotemeta $1; my $v2 = $1 + 1; $_ =~ s/$v1/$v2/ }'
foo
version '1.2.37'
baz