diff options
| author | Dave Cross <d.cross@fairfx.com> | 2019-07-30 16:39:42 +0100 |
|---|---|---|
| committer | Dave Cross <d.cross@fairfx.com> | 2019-07-30 16:39:42 +0100 |
| commit | 8410093dc12277eb89090a90db4dc33ab616d88a (patch) | |
| tree | eb0becdcdb5548facd6476b72b971a851992cdd0 | |
| parent | 145f59407ae78145d6d16d05cb6039ca05e11f44 (diff) | |
| download | perlweeklychallenge-club-8410093dc12277eb89090a90db4dc33ab616d88a.tar.gz perlweeklychallenge-club-8410093dc12277eb89090a90db4dc33ab616d88a.tar.bz2 perlweeklychallenge-club-8410093dc12277eb89090a90db4dc33ab616d88a.zip | |
Added solution to challenge 2
| -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. |
