Blame


1 ffd9a51f 2023-08-04 jrmu #!/usr/bin/perl
2 ffd9a51f 2023-08-04 jrmu
3 ffd9a51f 2023-08-04 jrmu # If your operating system supports it, write a program to find any symbolic
4 ffd9a51f 2023-08-04 jrmu # links in the current directory and print out their values (like ls -l would:
5 ffd9a51f 2023-08-04 jrmu # name -> value).
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 File::Spec::Functions;
12 ffd9a51f 2023-08-04 jrmu use File::Basename;
13 ffd9a51f 2023-08-04 jrmu use Cwd;
14 ffd9a51f 2023-08-04 jrmu
15 ffd9a51f 2023-08-04 jrmu if (scalar(@ARGV) > 1) {
16 ffd9a51f 2023-08-04 jrmu die "Usage: $0 [dir]";
17 ffd9a51f 2023-08-04 jrmu }
18 ffd9a51f 2023-08-04 jrmu my $dir = shift @ARGV // getcwd();
19 ffd9a51f 2023-08-04 jrmu
20 ffd9a51f 2023-08-04 jrmu my $path = catfile($dir, '*');
21 ffd9a51f 2023-08-04 jrmu my @files = glob "$path";
22 ffd9a51f 2023-08-04 jrmu foreach (@files) {
23 ffd9a51f 2023-08-04 jrmu if (-l) {
24 ffd9a51f 2023-08-04 jrmu printf "%-30s -> %s\n", basename($_), readlink($_);
25 ffd9a51f 2023-08-04 jrmu }
26 ffd9a51f 2023-08-04 jrmu }