Blame


1 1ddd2d4e 2023-09-10 jrmu #!/usr/bin/perl
2 1ddd2d4e 2023-09-10 jrmu
3 1ddd2d4e 2023-09-10 jrmu # Write a program that takes multiple directory names from the command line
4 1ddd2d4e 2023-09-10 jrmu # and then prints out their contents. Use a function that takes a directory
5 1ddd2d4e 2023-09-10 jrmu # handle reference that you made with opendir.
6 1ddd2d4e 2023-09-10 jrmu
7 1ddd2d4e 2023-09-10 jrmu use v5.24;
8 1ddd2d4e 2023-09-10 jrmu use warnings;
9 1ddd2d4e 2023-09-10 jrmu use strict;
10 1ddd2d4e 2023-09-10 jrmu use utf8;
11 1ddd2d4e 2023-09-10 jrmu use local::lib;
12 1ddd2d4e 2023-09-10 jrmu
13 1ddd2d4e 2023-09-10 jrmu use IO::Tee;
14 1ddd2d4e 2023-09-10 jrmu
15 1ddd2d4e 2023-09-10 jrmu foreach (@ARGV) {
16 1ddd2d4e 2023-09-10 jrmu opendir my $dh, $_ or die "Could not open dirhandle! $!\n";
17 1ddd2d4e 2023-09-10 jrmu print ls($dh);
18 1ddd2d4e 2023-09-10 jrmu }
19 1ddd2d4e 2023-09-10 jrmu
20 1ddd2d4e 2023-09-10 jrmu sub ls {
21 1ddd2d4e 2023-09-10 jrmu my $dh = shift;
22 1ddd2d4e 2023-09-10 jrmu my @output;
23 1ddd2d4e 2023-09-10 jrmu foreach (readdir $dh) {
24 1ddd2d4e 2023-09-10 jrmu next if /\A\.\.?\z/;
25 1ddd2d4e 2023-09-10 jrmu push @output, "$_\n";
26 1ddd2d4e 2023-09-10 jrmu }
27 1ddd2d4e 2023-09-10 jrmu return @output;
28 1ddd2d4e 2023-09-10 jrmu }