in reply to Re: printing 20 characters in a line.
in thread printing 20 characters in a line.

I got it... how is this one???
#!/usr/bin/perl my $str="30 30 36 33 36 36 36 33 36 34 26 24 21 17 17 23 27 27 31 31 3 +4 33 33 33 36 36 37 38 38 38 38 38 35 40 34 34 34 31 37 36 37 37 40 4 +0 49 40 40 40 40 40 40 40 40 33 30 30 30 30 30 42 45 45 45 45 45 49 4 +2 42"; @s=split(/ /,$str); for($i=1;$i<=scalar(@s);$i++) { print "$s[$i] "; if($i%20==0) { print "\n"; } } print "\n";
simple uh.. y didnt i think abt it when i tried first :)

Replies are listed 'Best First'.
Re^3: printing 20 characters in a line.
by ikegami (Patriarch) on Nov 14, 2008 at 06:06 UTC
    • You skip the first element.
    • You print an extra element (undef) at the end. use warnings; would have caught that.
    • The use of scalar there is unnecessary.
    • You really should use use strict;.
    • for (my $i=0; $i<@s; $i++)
      is a rather complex way of saying
      for my $i (0..$#s)

    I had a bug in mine too (leading space)

    #!/usr/bin/perl use strict; use warnings; my $str = "30 30 36 33 36 36 36 33 36 34" ." 26 24 21 17 17 23 27 27 31 31" ." 34 33 33 33 36 36 37 38 38 38" ." 38 38 35 40 34 34 34 31 37 36" ." 37 37 40 40 49 40 40 40 40 40" ." 40 40 40 33 30 30 30 30 30 42" ." 45 45 45 45 45 49 42 42"; my @str = split(/ /, $str); my $nl = 1; for my $i (0..$#str) { if ($i == 0 ) { $nl = 0; } elsif ($i % 20 == 0) { $nl = 1; print("\n"); } else { $nl = 0; print(" "); } print($str[$i]); } print("\n") if !$nl;

    Tested.