Re: split()'s regex pattern parameter
- From: "Paul Lalli" <mritty@xxxxxxxxx>
- Date: 30 Mar 2006 12:08:20 -0800
Jerry Adair wrote:
'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. 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
is a non-null list (for a given non-null line of data).
I don't know why this pattern won't work in regex parser, I was surprised.
I'm probably missing something simple, but I thought I'd ask anyway.
This issue came up in this group about a month ago:
http://groups.google.com/group/comp.lang.perl.misc/browse_frm/thread/6b0ff005ec96fc3f/19d952afae9e4b86?q=split&rnum=2#19d952afae9e4b86
End result: a hardcoded literal space character is a special case.
You cannot get the same behavior by assigning a space character to a
variable and using that variable as your delimiter instead. It may be
counter-intuitive, but that's the way it is.
Paul Lalli
.
- References:
- split()'s regex pattern parameter
- From: Jerry Adair
- split()'s regex pattern parameter
- Prev by Date: FAQ 2.4 I copied the perl binary from one machine to another, but scripts don't work.
- Next by Date: Re: split()'s pattern argument
- Previous by thread: split()'s regex pattern parameter
- Next by thread: Re: split()'s regex pattern parameter
- Index(es):
Relevant Pages
|