2020年6月2日火曜日

開発環境

初めての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 コメント:

コメントを投稿