http://qs321.pair.com?node_id=1185635


in reply to Re^2: Parse string and extract word after specific pattern
in thread Parse string and extract word after specific pattern

If that's all it is, you can try this instead of a regular expression:

#!/usr/bin/perl use v5.10; my $string = "stash_ST1.2.3.4_1.ROLLBACK.check.20170228-101051.435944. +txt"; # Find "ROLLBACK" from the end of string, in case there's more than on +e of # them. my $i = rindex($string, 'ROLLBACK.'); if ($i >= 0) { $i += length('ROLLBACK.'); # Now $i points to the character after the full stop. # Find the position of the next full stop after it. my $j = index($string, '.', $i); if ($j >= 0) { my $word = substr($string, $i, $j - $i); say $word; } else { # No full stop after ROLLBACK -- signal an error? } } else { # ROLLBACK not found! Signal an error? }

However, scorpio17's regular expression is better, because you can see the input string's expected structure more clearly and the regex solution is also shorter!