Steve Bertrand wrote:
if
(/.*simscan~\[\d+\]~([\w|\s]+).*?~(\d+\.\d+)s~.*?~(.*?)~(.*?)~(.*)/) {
The .* pattern at the beginning is useless as it causes unnecessary
back-tracking, just remove it.
Ok.
The character class [\w|\s] includes both the '|' and '_' characters
but it doesn't appear that that field would normally contain either a
'|' or a '_' character.
It wouldn't (normally). I was with a misconception on how this worked. I
thought it meant 'capture this hunk if it contains word or whitespace in
any amount'.
The \w character class matches any "word" character where "word" is
defined as any alphabetic character or any numerical digit or the '_'
character. The '|' which is used for alternation outside of a character
class just matches a literal '|' character inside a character class.
The \s character class matches any whitespace character.
I have reading to do.
$scantime = $2 if $2;
(\d+\.\d+) will always match at least three characters so it can never
be false so the test is superfluous.
...hrm... more reading to do.
John
This is more about receiving feedback and not about an answer, so as I
go find out why things work as they have been described, would you
project the statement as if you had written it yourself, just for
comparison sake?
I don't think I understand your last question.
John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order. -- Larry Wall
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/