http://qs321.pair.com?node_id=700651


in reply to split line

When you're splitting on any whitespace, you want to use \s+ instead of " ". For example:

#!/usr/bin/perl -w use strict; my $line = " 0 10 9 4 1 0 0 0 2 2 1 1 0"; my @config = split /\s+/, $line; for (@config) { next unless $_ =~ /\w+/; print $_, "\n"; }
which has the output:

C:\Code>perl split_num.pl 0 10 9 4 1 0 0 0 2 2 1 1 0
Please note that with leading whitespace in $line, the first element returned by split won't contain any text, so you have to trap for that.

Replies are listed 'Best First'.
Re^2: split line
by ysth (Canon) on Jul 29, 2008 at 03:18 UTC
    When you're splitting on any whitespace, you want to use \s+ instead of " ".
    except when you want to use " ", which does just what you want, including saving the hassle of the empty first element:
    $ perl #!/usr/bin/perl -w use strict; my $line = " 0\t10\n 9 4 \r 1 0 0 \t0 2 2 1 1 0"; my @config = split " ", $line; for (@config) { print $_, "\n"; } __END__ 0 10 9 4 1 0 0 0 2 2 1 1 0
Re^2: split line
by lil_v (Sexton) on Jul 28, 2008 at 21:17 UTC
    thx alot!