in reply to Re: Splitting strings
in thread Splitting strings

In this case I am reading WINS address from registry. Problem is that in the w2k registry, both primary and secondary wins address is in one string. I want to split it into two variables and then compare agains other ip addresses.

Replies are listed 'Best First'.
Re: Re: Re: Splitting strings
by maverick_jt (Initiate) on Apr 08, 2002 at 22:28 UTC
    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";
    -------------

      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

      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