2019年8月25日日曜日

開発環境

初めてのPerl 第7版 (Randal L. Schwartz(著)brian d foy(著)Tom Phoenix(著)近藤 嘉雪(翻訳)嶋田 健志(翻訳)オライリージャパン)の13章(ディレクトリ操作)、13.4(練習問題)1の解答を求めてみる。

コード

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use v5.18;
use Cwd;

say '1.';

print "ディレクトリ名を入力: ";
chomp(my $dir = <STDIN>);

if ($dir =~/^\s*$/) {
    chdir or die "cannot chdir to home directory: $!";
} else {
    chdir $dir or die "cannot chdir to $dir: $!";
}

say 'The current working directory is ', getcwd();

for (sort <*>) {
    say $_;
}

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)

$ ./sample1.pl
1.
Wide character in print at ./sample1.pl line 10.
ディレクトリ名を入力: 
The current working directory is /Users/{username}
Applications
Desktop
Documents
Downloads
Dropbox
IdeaProjects
Library
...
$ ./sample1.pl
1.
Wide character in print at ./sample1.pl line 10.
ディレクトリ名を入力: tmp
The current working directory is /Users/{username}/.../perl/初めてのPerl/ch13/tmp
$ touch tmp/{a,z}.txt
$ ./sample1.pl
1.
Wide character in print at ./sample1.pl line 10.
ディレクトリ名を入力: tmp
The current working directory is /Users/{username}/.../perl/初めてのPerl/ch13/tmp
a.txt
z.txt
$ ./sample1.pl
1.
Wide character in print at ./sample1.pl line 10.
ディレクトリ名を入力: ..
The current working directory is /Users/{username}/.../perl/初めてのPerl
ch1
ch10
ch11
ch12
ch13
ch2
ch3
ch4
ch5
ch6
ch7
ch8
ch9
$ ./sample1.pl
1.
Wide character in print at ./sample1.pl line 10.
ディレクトリ名を入力: .
The current working directory is /Users/{username}/.../perl/初めてのPerl/ch13
sample1.pl
sample1.pl~
tmp
$ ./sample1.pl
1.
Wide character in print at ./sample1.pl line 10.
ディレクトリ名を入力: /opt
The current working directory is /opt
local
$ ./sample1.pl
1.
Wide character in print at ./sample1.pl line 10.
ディレクトリ名を入力: /opt/local
The current working directory is /opt/local
Library
bin
etc
include
lib
libexec
man
sbin
share
var
www
$ ./sample1.pl
1.
Wide character in print at ./sample1.pl line 10.
ディレクトリ名を入力: abcde
cannot chdir to abcde: No such file or directory at ./sample1.pl line 16, <STDIN> line 1.
$ 

0 コメント:

コメントを投稿