初めての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)という疑問に対しての回答が例題付で説明されていて、分かり易かった。