diff options
| author | drbaggy <js5@sanger.ac.uk> | 2022-05-30 00:24:06 +0100 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2022-05-30 00:24:06 +0100 |
| commit | af65953d0f086f5f03fa0f618525e6c61c3332e7 (patch) | |
| tree | 59f86d63f9a3c18f5aa9df9d62a1d94f3d581168 | |
| parent | 009fe93a6ba3baa43f1fecc7c75c810c6babdd8c (diff) | |
| download | perlweeklychallenge-club-af65953d0f086f5f03fa0f618525e6c61c3332e7.tar.gz perlweeklychallenge-club-af65953d0f086f5f03fa0f618525e6c61c3332e7.tar.bz2 perlweeklychallenge-club-af65953d0f086f5f03fa0f618525e6c61c3332e7.zip | |
tidied up
| -rw-r--r-- | challenge-166/james-smith/perl/ch-2.pl | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/challenge-166/james-smith/perl/ch-2.pl b/challenge-166/james-smith/perl/ch-2.pl index 60462a45fd..ae6742d30e 100644 --- a/challenge-166/james-smith/perl/ch-2.pl +++ b/challenge-166/james-smith/perl/ch-2.pl @@ -11,7 +11,8 @@ use Data::Dumper qw(Dumper); # 1 2 3 4 5 6 7 8 9 say 'Super compact'; x(); say ''; say 'Super compact'; z(); say ''; -say 'No comments'; z_diff_no_comments(); say ''; +say 'Super compact'; g(); say ''; +#say 'No comments'; z_diff_no_comments(); say ''; exit; say 'Original - fake data'; k_diff( data() ); say ''; @@ -146,20 +147,29 @@ sub z_diff_no_comments { say $HORIZONTAL_LINE; } -## Merging the fetch/parse into the a single function gives us just 265 bytes -## of perlly goodness {258 without the fn call overhead} +## Merging the fetch/parse into the a single function gives us just 259 bytes +## of perlly goodness {252 without the fn call overhead} #23456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789# -sub x{my($l,$F,%d,%u,@p)=0;/\//,$u{$'.'/'x-d}{$d{$`}=$`}++for<*/*>;$l<length?$l= -length:1for(@p=sort keys%d),@_=keys%u;print$a=join('-'x$l,('+--')x@p,"+\n"), -sprintf($b="| %-${l}s "x@p."|\n",@p),$a,map({//;@p-%{$u{$'}}?sprintf$b,map{$u{$' -}{$_}?$':''}@p:()}sort@_),$a} +sub g{my($l,%d,%u)=0;/\//,$u{$'.'/'x-d}{$d{$`}=$`}++for<*/*>;$l<length?$l=length +:1for(my@p=sort keys%d),@_=keys%u;say$a=join('-'x$l,('+--')x@p,"+\n"),sprintf($b +="| %-${l}s "x@p."|\n",@p),$a,map({//;@p-%{$u{$'}}?sprintf$b,map{$u{$'}{$_}?$': +''}@p:()}sort@_),$a} + +sub x{ + my($l,%d,%u)=0; + /\//,$u{$'.'/'x-d}{$d{$`}=$`}++ for <*/*>; + $l<length?$l=length:1 fo r(my@p=sort keys%d), @_=keys%u; + say $a=join( '-'x$l,('+--')x@p,"+\n" ), + sprintf( $b="| %-${l}s "x@p."|\n", @p ), + $a, + map( {//;@p-%{$u{$'}}?sprintf$b,map{$u{$'}{$_}?$':''}@p:() } sort @_ ), + $a +} -## 263 bytes (256 without fn overhead) +## 257 bytes (250 without fn overhead) #23456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789# -sub z{my($l,$F,%d,%u,@p)=0;/\//,$u{$'.'/'x-d}{$d{$`}=$`}++for<*/*>;$l<length?$l= -length:1for(@p=sort keys%d),@_=keys%u;print$a=join('-'x$l,('+--')x@p,'+ +sub z{my($l,%d,%u)=0;/\//,$u{$'.'/'x-d}{$d{$`}=$`}++for<*/*>;$l<length?$l=length +:1for(my@p=sort keys%d),@_=keys%u;say$a=join('-'x$l,('+--')x@p,'+ '),sprintf($b="| %-${l}s "x@p.'| -',@p),$a,map({//;@p-%{$u{$'}}?sprintf$b,map{$u{$'}{$_}?$':''}@p:()}sort@_ -),$a} - +',@p),$a,map({//;@p-%{$u{$'}}?sprintf$b,map{$u{$'}{$_}?$':''}@p:()}sort@_),$a} |
