in reply to Split Line

Oof, this is ugly code. What it is doing is performing a split on an ampersand, but, it is calling split in scalar context, which returns the number of items resulting, not the items themselves. Then, it puts that into $_ to confuse matters.
Therefore, when it checks $_ later on, it is checking if there were 3 &'s (because that would split into 4 elements).

I personally would have used a meaningful variable name there (like $num_clauses or such) to clarify.

Hope this helps,
Update: As pointed out, split in scalar context has the side effect of populating @_, you should look out for use of this further on in the code. Once again, you can make this explicit and meaningful using something like:
my @elements=split(...); my $num_elements = @elements;
or just do a scalar test on @elements later on:
if (@elements == 4) {


-pete
"Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."