開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Strawberry Perl (WindowsのPerlの言語処理系)
- Visual Studio Code (Text Editor)
- Perl 5.28 (プログラミング言語)
初めてのPerl 第7版 (Randal L. Schwartz(著)、brian d foy(著)、Tom Phoenix(著)、近藤 嘉雪(翻訳)、嶋田 健志(翻訳)、オライリージャパン)の13章(ディレクトリ操作)、13.14(練習問題)6の解答を求めてみる。
コード
#!/usr/bin/env perl
use strict;
use warnings;
use v5.28;
use File::Spec;
say '6.';
my ($src, $dst) = @ARGV;
if (-d $dst) {
$dst = File::Spec->catfile($dst, $src);
}
link $src, $dst or warn $!;
入出力結果(Zsh、PowerShell、Terminal)
% mkdir tmp
% ./sample6.pl sample6.pl tmp.pl
6.
% cat tmp.pl
#!/usr/bin/env perl
use strict;
use warnings;
use v6.28;
use File::Spec;
say '6.';
my ($src, $dst) = @ARGV;
if (-d $dst) {
$dst = File::Spec->catfile($dst, $src);
}
link $src, $dst or warn $!;
% ./tmp.pl tmp
6.
Use of uninitialized value $dst in -d at ./tmp.pl line 11.
Use of uninitialized value $dst in link at ./tmp.pl line 16.
Operation not permitted at ./tmp.pl line 16.
% ./tmp.pl sample6.pl tmp
6.
% cat tmp/sample6.pl
#!/usr/bin/env perl
use strict;
use warnings;
use v6.28;
use File::Spec;
say '6.';
my ($src, $dst) = @ARGV;
if (-d $dst) {
$dst = File::Spec->catfile($dst, $src);
}
link $src, $dst or warn $!;
% ./sample6.pl a tmp1.pl
6.
No such file or directory at ./sample6.pl line 16.
%
0 コメント:
コメントを投稿