diff options
| -rw-r--r-- | challenge-019/dave-cross/perl5/ch-2.pl | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-019/dave-cross/perl5/ch-2.pl b/challenge-019/dave-cross/perl5/ch-2.pl new file mode 100644 index 0000000000..70d8035d63 --- /dev/null +++ b/challenge-019/dave-cross/perl5/ch-2.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use constant SPACE => ' '; +use constant SPACE_WIDTH => length(SPACE); + +my $line_len = shift || 72; # Old-skool Unix + +my $text = join ' ', <DATA>; + +my $space_left = $line_len; + +for (split /\s+/, $text) { + if (SPACE_WIDTH + length() > $space_left) { + print "\n$_"; + $space_left = $line_len - length(); + } else { + print $_ . SPACE; + $space_left -= (length() + SPACE_WIDTH); + } +} + +print "\n"; + +__DATA__ +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis volutpat, +ipsum nec luctus dictum, velit nisi sodales dui, ut feugiat risus dolor +vel metus. Morbi ut pretium velit. Proin ultricies enim magna, at semper +odio molestie vitae. In hac habitasse platea dictumst. Fusce non sapien +bibendum ligula pellentesque volutpat in et lectus. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Vestibulum sodales molestie dignissim. |
