初めてのPerl 第14章

練習問題の回答をメモ。

ex14-1
#!/usr/bin/perl
use strict;

chdir "/" or die "Cannot chdir to /: $!";
exec "ls -l" or die "couldn't exec ls: $!";
ex14-2
#!/usr/bin/perl
use strict;

my $out_file = "ls.out";
my $err_file = "ls.err";
# ディレクトリを移動する前に出力ファイルをオープンする。p.188 が参考になる。
open STDOUT, "> $out_file" or die "Can't open $out_file for output: $!";
open STDERR, "> $err_file" or die "Can't open $err_file for output: $!";

chdir "/" or die "Cannot chdir to /: $!";
exec "ls -l" or die "couldn't exec ls: $!";

出力ファイルをオープンするときはどこでオープンしているかを意識しよう。

ex14-3
#!/usr/bin/perl
use strict;

# 逆クオートで挟まれた部分は p.238 を参照
my $date = `date`;
if ($date =~ /(土|日)曜日/) {
  print "go play\n";
} else {
  print "go to work\n";
}

反省点(というより感想)

大きな反省点は特に無し。この章の内容は結構おくが深そうだった。fork(p.244)とか SIGINT(p.245)の捕捉とか。


「何でプロセスをファイルハンドルとして使うの?逆クオートの方が簡単じゃん。」(p.243)という疑問に対しての回答が例題付で説明されていて、分かり易かった。