Blame


1 ffd9a51f 2023-08-04 jrmu #!/usr/bin/perl
2 ffd9a51f 2023-08-04 jrmu
3 ffd9a51f 2023-08-04 jrmu # If you used a directory handle for the previous exercise, rewrite
4 ffd9a51f 2023-08-04 jrmu # it to use a glob. Or if you used a glob, try it now with a
5 ffd9a51f 2023-08-04 jrmu # directory handle.
6 ffd9a51f 2023-08-04 jrmu
7 ffd9a51f 2023-08-04 jrmu use v5.24;
8 ffd9a51f 2023-08-04 jrmu use warnings;
9 ffd9a51f 2023-08-04 jrmu use strict;
10 ffd9a51f 2023-08-04 jrmu use utf8;
11 ffd9a51f 2023-08-04 jrmu use Cwd;
12 ffd9a51f 2023-08-04 jrmu
13 ffd9a51f 2023-08-04 jrmu if (scalar(@ARGV) > 1) {
14 ffd9a51f 2023-08-04 jrmu die "Usage: $0 [dir]";
15 ffd9a51f 2023-08-04 jrmu }
16 ffd9a51f 2023-08-04 jrmu my $dir = shift @ARGV;
17 ffd9a51f 2023-08-04 jrmu if (!defined($dir) || $dir =~ /\A\s*\z/) {
18 ffd9a51f 2023-08-04 jrmu chdir or die "Unable to change to $ENV{HOME}: $!";
19 ffd9a51f 2023-08-04 jrmu } else {
20 ffd9a51f 2023-08-04 jrmu chdir $dir or die "Unable to change to $dir: $!";
21 ffd9a51f 2023-08-04 jrmu }
22 ffd9a51f 2023-08-04 jrmu
23 ffd9a51f 2023-08-04 jrmu opendir my $dh, getcwd() or die "Cannot open $dir: $!";
24 ffd9a51f 2023-08-04 jrmu my @files;
25 ffd9a51f 2023-08-04 jrmu foreach (sort readdir $dh) {
26 ffd9a51f 2023-08-04 jrmu next if /\A\.{1,2}\z/;
27 ffd9a51f 2023-08-04 jrmu print;
28 ffd9a51f 2023-08-04 jrmu print "\n";
29 ffd9a51f 2023-08-04 jrmu }