in reply to how to express $temp =~ s/.*?from://; in perl 4

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,