in reply to Re^2: Breaking up a string?
in thread Breaking up a string?

If you got your six characters, why did you perform that reverse - 6 times chop - reverse operation on it? Can't you post a little example code that runs, some example input and the result you get, with an explanation on how your result differ from what you want?

Replies are listed 'Best First'.
Re^4: Breaking up a string?
by Anonymous Monk on Feb 19, 2008 at 14:57 UTC
    Because I then wanted to get the next 6 chars, then the 6 after that, until the end of the string (length is a multiple of 6).
      I'm very unsure about what you really want, but this capture my understanding of what you ask for:
      use strict; use warnings; my $input = '1234562234563334564444565555566789'; my @sets_of_six; while (length $input > 6){ my $front = substr($input, 0, 6); $input = substr($input, 6); push @sets_of_six, $front; } push @sets_of_six, $input if length $input > 0; use Data::Dumper; print Dumper( @sets_of_six );
      Now, that is a rather naive solution, it's not very effective, nor is it very perl'ish, but I think you might understand what is happening.
      Is it faintly aproaching your question?
      hth
        while (length $input > 6){ my $front = substr($input, 0, 6); $input = substr($input, 6); push @sets_of_six, $front; }
        This can be done slightly more compactly by having the initial substr remove the leading characters as it retrieves them:
        while (length $input > 6){ my $front = substr($input, 0, 6, ''); push @sets_of_six, $front; }
        (Or even get rid of $front entirely with
        while (length $input > 6){ push @sets_of_six, substr($input, 0, 6, ''); }
        if you don't think that's becoming too unreadable.)