in reply to Re: Re: Splitting strings
in thread Splitting strings

I verified that $test has proper data assigned by inserting a print statement.
--- snip ----
$test = "$RemoteSystem{'NetBios'}{$nic_service}{NameServerlist}";
print "$test\n"; #this shows me that $test has proper string assigned
($a, $b) = split(/ +/, $test);
print "$a -- $b\n";
-------------

Replies are listed 'Best First'.
Re: Re: Re: Re: Splitting strings
by tachyon (Chancellor) on Apr 08, 2002 at 23:33 UTC

    As you have verified that $test contains a string that has whitespace in it the only logical explanation is that the whitespace is not a \040 (space char) but rather is a \t tab char. Otherwise the split would be working as you can easily demonstrate. To split on tabs or spaces or newlines use /\s+/ or for tabs and spaces use /[ \t]+/.

    ($a, $b) = split /\s+/, $test;

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

Re: Re: Re: Re: Splitting strings
by BeernuT (Pilgrim) on Apr 08, 2002 at 22:46 UTC
    Your still not giving enough information. What does $test contain? We know it contains the value of
    $RemoteSystem{'NetBios'}{$nic_service}{NameServerlist}
    but what is that value? Is it suppose to be "47.56.1.1 47.57.2.2". If so then
    ($a, $b) = split(/+/, $test);
    wont do the job. In fact in 5.6.1 it spits out an error indicating
    'Quantifier follows nothing before HERE mark in regex m/+ << HERE / at + -e line 1'
    If you are needing to split on '+' then use
    my($var1, $var2) = split(/\+/, $test);

    maybe your looking for something like
    my($var1, $var2) = split ' ', $test;
    to split on white space. But again these are only guesses. Please be more specific as to the data your working with so we can make educated guesses. And you should probably use different variables than $a and $b as those are special sort variables for perl.

    -bn