開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めてのPerl 第5版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-427-9) の12章(ファイルテスト), 12.5(練習問題)1を解いてみる。
1.
やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))
コード(TextWrangler)
#!/usr/bin/env perl use strict; use warnings; use 5.012; for(@ARGV){ print "$_\n"; given($_){ when(!(-e)){print "存在しない\n";} when(-r){print "読み出し可能\n";continue;} when(-w){print "書き込み可能\n";continue;} when(-x){print "実行可能\n";} } }
入出力結果(Terminal)
$ ls -l total 544 -r-------- 1 kamimura staff 75 6 10 2001 barney -r-------- 1 kamimura staff 45 6 10 2001 betty -rw-r--r--@ 1 kamimura staff 88502 10 24 2011 coconet.dat -rw-r--r-- 1 kamimura staff 50 4 24 17:18 date.txt -r--------@ 1 kamimura staff 32 6 10 2001 fred -rw-r--r-- 1 kamimura staff 696 4 25 16:04 gilligan.info -rw-r--r-- 1 kamimura staff 238 4 25 16:04 ginger.info -rw-r--r--@ 1 kamimura staff 2082 7 28 2011 log_file.txt -rw-r--r-- 1 kamimura staff 223 4 25 16:04 lovey.info -rw-r--r-- 1 kamimura staff 65 4 12 15:59 ls.err -rw-r--r-- 1 kamimura staff 0 4 12 15:59 ls.out -rw-r--r-- 1 kamimura staff 289 4 25 16:04 maryann.info -rw-r--r-- 1 kamimura staff 21 4 25 16:04 monkeyman.info -r-------- 1 kamimura staff 88 6 10 2001 numbers -rwxr-xr-x@ 1 kamimura staff 389 5 1 16:41 oogaboogoo.pm -rw-r--r--@ 1 kamimura staff 15366 6 16 16:58 perl_kamimura_blog -rwxr-xr-x@ 1 kamimura staff 154 3 18 16:05 perl_program.bak.bak -rwxr-xr-x 1 kamimura staff 194 3 18 16:09 perl_program.pl -rwxr-xr-x@ 1 kamimura staff 290 3 19 16:10 perl_program1 -rwxr-xr-x@ 1 kamimura staff 289 3 19 16:09 perl_program1.bak -rw-r--r-- 1 kamimura staff 194 4 25 16:04 professor.info drwxr-xr-x 2 kamimura staff 68 4 30 16:11 sample -rw-r--r--@ 1 kamimura staff 124 3 15 16:56 sample.bak -rwxr-xr-x@ 1 kamimura staff 292 6 17 17:34 sample.pl -rwxr-xr-x@ 1 kamimura staff 301 6 12 18:57 sample.pl.bak drwxr-xr-x 3 kamimura staff 102 4 1 15:14 sample_folder -r-------- 1 kamimura staff 5563 3 18 16:09 sample_text -r-------- 1 kamimura staff 5563 6 10 2001 sample_text.bak -rw-r--r-- 1 kamimura staff 5576 3 18 16:09 sample_text.out -rw-r--r-- 1 kamimura staff 5576 3 17 16:08 sample_text.out.bak -rw-r--r-- 1 kamimura staff 323 4 25 16:04 skipper.info ---------- 1 kamimura staff 10 6 17 17:36 some_file -r-------- 1 kamimura staff 362 6 10 2001 sortable_hash -rw-r--r-- 2 kamimura staff 330 3 18 16:09 test -rw-r--r--@ 1 kamimura staff 330 3 9 14:46 test.bak -rw-r--r-- 1 kamimura staff 333 6 10 15:46 test.out drwxr-xr-x 4 kamimura staff 136 4 30 16:10 test_folder -rw-r--r-- 2 kamimura staff 330 3 18 16:09 test_link lrwxr-xr-x 1 kamimura staff 4 4 1 15:15 test_new -> test -rw-r--r-- 1 kamimura staff 98 4 25 16:04 thurston.info -rw-r--r--@ 1 kamimura staff 152 5 30 14:56 tmp -rwxr-xr-x@ 1 kamimura staff 252 6 12 18:45 tmp.pl -rw-r--r-- 1 kamimura staff 2280 4 22 16:19 total_bytes.dat $ ./sample.pl * 読み出し可能 書き込み可能 barney 読み出し可能 betty 読み出し可能 coconet.dat 読み出し可能 書き込み可能 date.txt 読み出し可能 書き込み可能 fred 読み出し可能 gilligan.info 読み出し可能 書き込み可能 ginger.info 読み出し可能 書き込み可能 log_file.txt 読み出し可能 書き込み可能 lovey.info 読み出し可能 書き込み可能 ls.err 読み出し可能 書き込み可能 ls.out 読み出し可能 書き込み可能 maryann.info 読み出し可能 書き込み可能 monkeyman.info 読み出し可能 書き込み可能 numbers 読み出し可能 oogaboogoo.pm 読み出し可能 書き込み可能 実行可能 perl_kamimura_blog 読み出し可能 書き込み可能 perl_program.bak.bak 読み出し可能 書き込み可能 実行可能 perl_program.pl 読み出し可能 書き込み可能 実行可能 perl_program1 読み出し可能 書き込み可能 実行可能 perl_program1.bak 読み出し可能 書き込み可能 実行可能 professor.info 読み出し可能 書き込み可能 sample 読み出し可能 書き込み可能 実行可能 sample.bak 読み出し可能 書き込み可能 sample.pl 読み出し可能 書き込み可能 実行可能 sample.pl.bak 読み出し可能 書き込み可能 実行可能 sample_folder 読み出し可能 書き込み可能 実行可能 sample_text 読み出し可能 sample_text.bak 読み出し可能 sample_text.out 読み出し可能 書き込み可能 sample_text.out.bak 読み出し可能 書き込み可能 skipper.info 読み出し可能 書き込み可能 some_file sortable_hash 読み出し可能 test 読み出し可能 書き込み可能 test.bak 読み出し可能 書き込み可能 test.out 読み出し可能 書き込み可能 test_folder 読み出し可能 書き込み可能 実行可能 test_link 読み出し可能 書き込み可能 test_new 読み出し可能 書き込み可能 thurston.info 読み出し可能 書き込み可能 tmp 読み出し可能 書き込み可能 tmp.pl 読み出し可能 書き込み可能 実行可能 total_bytes.dat 読み出し可能 書き込み可能 $
0 コメント:
コメントを投稿