I assume from your regex that you are expecting more than
one 'from:' to appear in the string and you only want to
deal with everything up to the first one. It is easy to
simply make the .* nongreedy, but would it be possible for
you to make a more specific regular expression that would
take into account what comes before or after the from:? i.e.
if you are expecting a number to come after this four, but
you won't see a number after any other four, then do:
$temp =~ s/.*from:( \d+)/$1/;
Unless you are optimizing for speed, I consider it a good habit
to make regex's as specific as possible so that you avoid
matching unwanted strings without knowing it.
Hope this helps,
Mark