in reply to
Re: Extracting information from file to Hash
in thread Extracting information from file to Hash
It would be nice if the regular expression could be made less specific, but some features of your data format make that tricky (e.g. the fact that the value following "=>" can be a zero-length string).
However, I think it's pretty much guaranteed that there will be whitespace between the key/value pairs. Yet, you use /\s*
/. Also, nowhere
do I see specified that there even may be whitespace around the "=>
" — you just made that up. As this file looks to be computer generated, I sincerely doubt that this will ever be the case. Finally: the only place do I see whitespace inside
a column value, is in the final column of the line: the timestamp.
In short: I think this regex will do:
And if you do this:
my %r =
/^ (Collection)=>(\S*) \s+
you even get a nice hash record out of it, even though it is restricted to one match per line (otherwise, when using /g
you'd get list context, with a different behavior as a result.