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 that works
4 ffd9a51f 2023-08-04 jrmu # like ln, making a hard link from the first command-line argument
5 ffd9a51f 2023-08-04 jrmu # to the second. (You don't need to handle options of ln or more
6 ffd9a51f 2023-08-04 jrmu # arguments.) If your system doesn't have hard links, just print
7 ffd9a51f 2023-08-04 jrmu # out a message telling which operation you would perform if it
8 ffd9a51f 2023-08-04 jrmu # were available. Hint: this program has something in common with
9 ffd9a51f 2023-08-04 jrmu # the previous one--recognizing that could save you time in coding.
10 ffd9a51f 2023-08-04 jrmu
11 ffd9a51f 2023-08-04 jrmu use v5.24;
12 ffd9a51f 2023-08-04 jrmu use warnings;
13 ffd9a51f 2023-08-04 jrmu use strict;
14 ffd9a51f 2023-08-04 jrmu use utf8;
15 ffd9a51f 2023-08-04 jrmu use File::Spec::Functions;
16 ffd9a51f 2023-08-04 jrmu use File::Basename;
17 ffd9a51f 2023-08-04 jrmu
18 ffd9a51f 2023-08-04 jrmu if (scalar(@ARGV) != 2) {
19 ffd9a51f 2023-08-04 jrmu die "Usage: $0 source target";
20 ffd9a51f 2023-08-04 jrmu }
21 ffd9a51f 2023-08-04 jrmu my ($source, $target) = @ARGV;
22 ffd9a51f 2023-08-04 jrmu if (-d $target) {
23 ffd9a51f 2023-08-04 jrmu $target = catfile($target, basename($source));
24 ffd9a51f 2023-08-04 jrmu }
25 ffd9a51f 2023-08-04 jrmu
26 ffd9a51f 2023-08-04 jrmu link $source $target or die "Unable to link "$source" to "$target": $!";