As has been pointed out, you can use $'.
Although, this is best avoided if possible. And in this case it is certainly possible to avoid it by making use of capturing parentheses in your pattern match.
Here is a small snippet of code that demonstrates how this might be done:
#!/usr/bin/perl
use strict;
use warnings;
my $wanted = 'coucou';
while (my $line = <DATA>) {
chomp($line);
my $rest = '';
if ($line =~ m/$wanted(.*)$/) {
$rest = $1;
print "$wanted:$rest\n";
}
else {
print "$wanted not found in $line\n";
}
}
__DATA__
abc coucou def
not in this line
in this line, but nothing following coucou
coucou once, coucou twice, coucou three times - what should be done wi
+th this line?
One thing you didn't specify in your question is what should happen if the string is found more than once in any line. The example above assumes that you would want everything after the first match.
If you wanted instead, everything after the last match, then you could achieve this by inserting a "greedy" dot-star at the beginning of the pattern match, like so:
m/.*$wanted(.*)$/
Cheers,
Darren
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|