J
Jerry Adair
Hello-
'Encountering something weird (well weird to me), 'couldn't find it in the
FAQ:
when attempting to call split() with a value to "split on" that is stored in
a scalar, I get behavior other than what I expected. The Camel book says to
just put it inside match delimiters, but that doesn't help the cause. Thus:
@line = split( /$separator/ );
doesn't do what I thought it would, as if $separator was replaced with:
@line = split( " " );
The problem I am encountering is when I try to access the list produced by
the split (with the scalar), the first list value is null if the very first
"token" it encounters matches the value contained in the scalar. So for
simplicity, I set $separator = ' '; then when using this scalar in the call
to split(), it just so happens that the first line of data begins with a
space, followed by two "words" that are separated by whitespace. So the
list that I get back from split() has 3 elements in it: a null, the first
word and the second word. However, with the simple string example (I know
that split will parse a string as a pattern even when not given as a
pattern) I get the correct results, which are simply the first word and the
second word, thus the list I get back has only 2 elements in it, as it
should.
I don't know why I am experiencing this behavior. I'm probably missing
something simple, but I thought I'd ask anyway.
Thank you in advance.
Jerry
'Encountering something weird (well weird to me), 'couldn't find it in the
FAQ:
when attempting to call split() with a value to "split on" that is stored in
a scalar, I get behavior other than what I expected. The Camel book says to
just put it inside match delimiters, but that doesn't help the cause. Thus:
@line = split( /$separator/ );
doesn't do what I thought it would, as if $separator was replaced with:
@line = split( " " );
The problem I am encountering is when I try to access the list produced by
the split (with the scalar), the first list value is null if the very first
"token" it encounters matches the value contained in the scalar. So for
simplicity, I set $separator = ' '; then when using this scalar in the call
to split(), it just so happens that the first line of data begins with a
space, followed by two "words" that are separated by whitespace. So the
list that I get back from split() has 3 elements in it: a null, the first
word and the second word. However, with the simple string example (I know
that split will parse a string as a pattern even when not given as a
pattern) I get the correct results, which are simply the first word and the
second word, thus the list I get back has only 2 elements in it, as it
should.
I don't know why I am experiencing this behavior. I'm probably missing
something simple, but I thought I'd ask anyway.
Thank you in advance.
Jerry