Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: splitting a number into several numbers

by blakem (Monsignor)
on Jul 05, 2002 at 18:25 UTC ( [id://179702]=note: print w/replies, xml ) Need Help??


in reply to splitting a number into several numbers

Although Abigail has provided a better answer, if you really wanted to use split you could:
my @vars = grep length, split /(..?)/, $str;

-Blake

Replies are listed 'Best First'.
Re: Re: splitting a number into several numbers
by perlkid (Novice) on Jul 05, 2002 at 19:10 UTC
    That's awesome Blake, like your solution :)
    But what "grep length" does in here? 
    
    the following:
    my @vars = split /(..?)/, $str ;
    
    return:
     12 34 56 
    ^ there is one space here, why?
    
    and grep length get rid of the space, how that magic works?
    
    
    -perlkid
    
      Normally split is used to extract the stuff between delimiters. The delimiters are tossed aside, and the resulting list doesn't contain them. However, this behavior can be modified, and we can keep the delimiters if we want to:

      From the split documentation:

      If the PATTERN contains parentheses, additional array elements are cre +ated from each matching substring in the delimiter. split(/([,-])/, "1-10,20", 3); produces the list value (1, '-', 10, ',', 20)
      In my example, the delimiters are the parts we want to keep, the stuff between the delimiters is empty and needs to be thrown away. Without the grep, the list you're getting back is actually
      ('', 12, '', 34, '', 56, '')
      Where 12,34,56 are the delimiters matched by the regex and the empty strings are the "data" between the delimiters. Obviously those empty strings have got to go, so we get rid of them by grepping out things that have no length.

      -Blake

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://179702]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (5)
As of 2024-04-18 21:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found