1 0 M a c i n t o s h P e r l P e r l u n i x P e r l P e r l P e r P e r l 10.1 o p e n d i r d i r h a n d l e d i r e c t o r y o p e n d i r 2 P e r l U N I X U N I X Wi n d o w s
114 r e a d d i r r e a d d i r u n d e f r e a d d i r r e a d d i U N I X r e a d d i r... r e a d d i r c l o s e d i r @ F I L E S... / ^ \.\.? $ / g r e p r e a d d i r o p e n d i r / t m p o p e n ( F I L E H $ f i l e ) / t m p m y f i l e. t x t r e a d d i r m y f i l e. t x t m y f i l e. t x t / t m p / m y f i l e. t x t Globbing g l o b b i n g D O S d i r *. t x t. t x t U N I X g l o b b i n g s h e l l l s *. t x t. t x P e r l g l o b G l o b giob p a t t e r n p a t t e r n p a t t e r n p a t t e r n 10-1 g l o b g l o b
10 115 g l o b 10-1 globbing f d f u d f i d f d d f * d f d f d d f o o d f i l l e d [ c h a r s ] c h a r s ; f [ o u ] d f o d f u d f a d M a c P e r l { a b } a f *{ t x t d o c } f. t x t. d o c b M a c P e r l U N I X P e r l g l o b C s h e l l g l o b b i n g B o u r n e K o r n s h e l l g l o b b i n g P e r l U N I X s h e l l Bourne shell g l o b b i n g Korn shell globbing C shell globbing *? g l o b b i n g g l o b opendir/readdir/closedir g l o b g l o g l o b s h e l l o p e n d i r / r e a d d i r / c l o s e d i r g l o b o p e n d i r / r e a d d i r / c l o s e d i r g l o b / u s r / i n c l u d e / *. h / u s r / i n c l u d e r e a d d i r g l o b o p e n d i r / r e a d d i r / c l o s e d i r P e r l g l o b b i n g o p e n d i r / r e a d d i r / c l o s e d i r
116 P e r l g l o b < > g l o b g l o b b i n g g l o b 10.2 UNIX grep U N I X g r e p U N I X g r e p P e r l g r e p 10-1 m y g r e p 1 U N I X g r e p g r e p perl mygrep 10-1 mygrep 1 - w 3 use strict m y 5 ~ 8 $ d i r $ p a t S T D I N
10 117 1 0 $ f i l e use strict $ f i l e 1 2 $ d i r 1 3 1 $ f i l e 1 4 - d $ d i r / $ f i l e $ f i l $ d i r $ d i r / $ f i l e 1 5 ~ 18 $ d i r / $ f i l e 1 9 ~ 23 $ p a t 10-2 m y g r e p 10-2 mygrep 10.3 r e a d d i r P e r l 10.3.1 U N I X p w d s h e l l D O S Wi n d o w s C :\ W I N D O W S D O c d D O S / P e r l P e r l P e r l c w d o p e n F Hf i l e d i e c h d i r chdir newdir; c h d i r n e w d i n e w d i r n e w d i c h d i r c h d i r P e r l
118 P e r l c h d i r c h d i U N I X Windows 95 Wi n d o w s N T D O S c h d i r H O M E H O M c h d i r P e r l use Cw d c w d use Cwd c w use Cwd P e r l Cw d P e r l C w d Ca n t locate cwd.pm in @INC @ I N C C w d. p m 14 10.3.2 P e r l m k d i r m k d i r n e w d i r m k d i r m k d i r P e r l U N I X p e r m i s s i o n s p e r m i s s i o n s 0755 U N I X D O S Wi n d o w s 0755 r m d i r r m d i r p a t h n a m e r m d i r P a t h n a m e r m d i r r m d i r r m d i r
10 119 10.3.3 u n l i n k u n l i n k l i s t _ o f _ f i l e s l i s t _ o f _ f i l e s _ u n l i n k $ e r a s e d u n l i n k $ e r a s e d @ f i l e s u n l i n k u n l i n k 10.3.4 P e r l r e n a m e r e n a m e o l d n a m e n e w n a m e o l d n a m e n e w n a m e r e n a m e r e n a m e n e w n a m e r e n a m e
120 10.4 UNIX P e r l U N I X U N I P e r l U N I X U N I X P e r l U N I X P e r l U N I X u n l i n k U N I X U N I X P e r l u n l i n k P e r l I / O P e r l U N I X P e r l U N I X U N I X U N I U N I X U N I X UNIX 24 1 P e r l chmod 755 scriptname 755 s c r i p t n a m e U N I X c h m o d 7 7 5 7 5 10-2 10-2 1 P e r l U N I X c h m o d c h m o d l i s t _ o f _ f i l e s m o d e 0
10 121 c h m o d m k d i r m k d i r c h m o d U N I X c h m o d c h a n g e m o d e 10.5 P e r l s t a t s t a t U N I X U N I U N I X S t a t s t a t s t a t 13 10-3 s t a t 10-3 stat U N I X Wi n d o w s 0 d e v C 2 D 1 i n o 0 2 m o d e 3 3 n l i n k 0 Windows NT 4 u i d I D U I D 0 5 g i d ID G I D 0 6 r d e v 7 s i z e 8 a t i m e 9 m t i m e 1 0 c t i m e I n o d e 11 b l k s z 0 12 b l o c k s 0 1 0-3 U N I X s t a t
122 s t a t 3 @ s t u ff m o d e s t a t & 0777 0 p r i n t f 0 ~ 7 U N I X 8 U N I X P e r l p r i n t f 1 0-3 3 1970 1 1 l o c a l t i m e Sat Jul 3 23:35:11 EDT 1999 U N I X Microsoft Wi n d o w s c t i m e s t a t 1 s t a t 10.6 C h a p t e r _ 01. r t f C h a p t e r _ 02. r t f C h a p t e r _ 04. r t f H o u r _ 01. r t f H o u r _ 02. r t f H o u r _ 04. r t f 10-3 R e n a m e r 1
10 123 10-3 Renamer 1 3 ~ 15 $ d i r @ f i l e s 1 7 ~ 19 @ f i l e s _ o l d n a m e _ 19 2 0 2 1 ~ 2 5 $ / d i r / $ o l d n a m e @ f i l e s 10-4 10-4 Rename 10.7 P e r l m k d i r r m r e n a m e s t a t
124 10.8 10.8.1 2 D I R H A N D L E @files=readdir DIRHANDLE g l o b ( *.* ) *.* g l o b (*.*) g l o b D O S *.* m y g r e p o p e n d i r 15 F i l ef i n d *. b a t *. t m p 10-3 *. b a t *. b a * \*\. b a t * 19 s /\ Q $ o l d p a t / $ n e w p a t / 10.8.2 1) f o o f i l e a. print glob( f o o f i l e ) b. print (stat( f o o f i l e ) ) [ 9 ] ; c. print scalar localtime (stat ( f o o f i l e ) ) [ 9 ] 2) unlink a. b. c. 10.8.3 1) b c b 1970
10 125 c 2) a c u n l i n k 0 10.8.4