From 38fe9d67ea8576cc101c56d1672ae0f4be947ce3 Mon Sep 17 00:00:00 2001 From: Jörg Sommrey <28217714+jo-37@users.noreply.github.com> Date: Tue, 24 May 2022 14:22:52 +0200 Subject: Solution to task 2 --- challenge-166/jo-37/perl/ch-2.pl | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 challenge-166/jo-37/perl/ch-2.pl diff --git a/challenge-166/jo-37/perl/ch-2.pl b/challenge-166/jo-37/perl/ch-2.pl new file mode 100755 index 0000000000..3b395a8df2 --- /dev/null +++ b/challenge-166/jo-37/perl/ch-2.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +use v5.16; +use warnings; +use autodie; +use List::Util qw(max pairgrep); +use experimental 'signatures'; + + +die < grep $_, @$b} %files}; +} + +# Print the directory diff in a terse matrix format: "X" indicates the +# presence of a file in a directory. +sub print_diff ($dir, $diff) { + my $dlen = max map length, @$dir; + my $flen = max 0, map length, keys %$diff; + + # Table header + printf "%${flen}s" . (" | %${dlen}s" x @$dir) . "\n", + '', @$dir; + printf "%${flen}s" . ("-+-%${dlen}s" x @$dir) . "\n", + '-' x $flen, ('-' x $dlen) x @$dir; + + # Table rows + for my $file (sort keys %$diff) { + printf "%-${flen}s", $file; + printf " | %${dlen}s", 'X' x !!$diff->{$file}[$_] for 0 .. $#$dir; + print "\n"; + } +} -- cgit