2012年4月26日木曜日

開発環境

『続・初めてのPerl 改訂版』(Randal L. Schwartz, brian d foy, Tom Phoenix 著、伊藤 直也田中 慎司吉川 英興 監訳、株式会社ロングテール/長尾 高弘 訳、オライリー・ジャパン、2006年、ISBN4-87311-305-9) の8章(ファイルハンドルへのリファレンス), 8.6(練習問題)3を解いてみる。

3.

やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))

コード(TextWrangler)

#!/usr/bin/env perl
use strict;
use warnings;
use IO::Dir;

my @dir_fhs = ();
for(@ARGV){
  push @dir_fhs, IO::Dir->new($_) if -d $_;
}
for(@dir_fhs){
  p($_);
}
sub p{
  my $dir_fh = shift;
  while(defined(my $file = $dir_fh->read)){
    next if $file eq '.' or $file eq '..';
    print "$file\n";
  }
}

入出力結果(Terminal)

$ ./sample.pl . /
.DS_Store
.out
coconet.dat
date.txt
gilligan.info
ginger.info
HASH(0x7fa4740277e0)
log_file.txt
lovey.info
ls.err
ls.out
maryann.info
monkeyman.info
numbers
perl_kamimura_blog
perl_program.bak.bak
perl_program.pl
perl_program1
perl_program1.bak
professor.info
sample.bak
sample.pl
sample_folder
sample_text
sample_text.bak
sample_text.out
sample_text.out.bak
skipper.info
sortable_hash
test
test.bak
test_folder
test_link
test_new
thurston.info
total_bytes.dat
.dbfseventsd
.DocumentRevisions-V100
.DS_Store
.file
.fseventsd
.hotfiles.btree
.MobileBackups
.Spotlight-V100
.Trashes
.vol
.Xmodmap
Applications
bin
cores
dev
Developer
Developer-3.2.6
etc
home
Library
mach_kernel
net
Network
opt
private
sbin
System
tmp
Users
usr
var
Volumes
ユーザーズガイドと情報
$

0 コメント:

コメントを投稿