以下に、ディレクトリを操作するための標準関数の一部を示します。
opendir DIRHANDLE, EXPR # ディレクトリを開きます readdir DIRHANDLE # ディレクトリを読み取ります rewinddir DIRHANDLE # ポインタを先頭に配置します Telldir DIRHANDLE # ディレクトリの現在位置を返します Seekdir DIRHANDLE, POS # ディレクトリに指定された POS 位置を見つけます Closedir DIRHANDLE # 閉じるディレクトリ
すべてのファイルを表示
以下に示すように、次の例では glob 演算子を使用します。
例
#!/usr/bin/perl # /tmp ディレクトリ内のすべてのファイルを表示します$dir = " /tmp/ * " ; @files =グロブ( $ディレクトリ) ; ( @files ) { 印刷する$_ . " n " ; # /tmp ディレクトリ内の .c で終わるファイルをすべて表示します$dir = " /tmp/*.c " ; @files = glob ( $ディレクトリ) ; ( @files ) { 印刷する$_ . " n " ; # すべての隠しファイルを表示$dir = " /tmp/.* " ; @files = glob ( $ディレクトリ) ; ( @files ) { 印刷する$_ . " n " ; # /tmp および /home ディレクトリ内のすべてのファイルを表示します$dir = " /tmp/* /home/* " ; @files = glob ( $ディレクトリ) ; ( @files ) { 印刷する$_ . " n " ;次の例では、現在のディレクトリ内のすべてのファイルを一覧表示できます。
例
#!/usr/bin/perl オープンディレクトリ( DIR , ' . ' )または死ぬ"ディレクトリを開けませ
ん、 $! " ; ( $file =読み取りディレクトリディレクトリ) { 印刷する" $file n " ;クローズドディレクトリ; /tmp ディレクトリ内の .c で終わるすべてのファイルを表示したい場合は、次のコードを使用できます。
例
#!/usr/bin/perl opendir ( DIR , ' . ' )または死ぬ"ディレクトリを開けませ
ん、 $! " ; (選別grep ( /^.*. c $/, readdir ( DIR ) ) ) { 印刷する" $_ n " ;クローズドディレクトリ;新しいディレクトリを作成する
mkdir関数を使用して新しいディレクトリを作成できます。実行する前に、ディレクトリを作成するための十分な権限が必要です。
例
#!/usr/bin/perl $dir = " /tmp/perl " ; # /tmp ディレクトリの下に perl ディレクトリを作成しますmkdir ( $ディレクトリ)または死ぬ" $dirディレクトリを作成できません。 $! " ; "ディレクトリが正常に作成されましたn " ;ディレクトリを削除する
rmdir関数を使用してディレクトリを削除できます。この操作を実行するには、十分な権限が必要です。さらに、削除するディレクトリは空のディレクトリである必要があります。
例
#!/usr/bin/perl $dir = " /tmp/perl " ; # /tmp ディレクトリ下の perl ディレクトリを削除します。 rmdir ( $ディレクトリ)または死ぬ" $dirディレクトリを削除できません。 $! " ; "ディレクトリは正常に削除されましたn " ;ディレクトリを切り替える
chdir関数を使用して現在のディレクトリを切り替えることができます。この操作を実行するには十分な権限が必要です。例は次のとおりです。
例
#!/usr/bin/perl $dir = " /home " ;現在のディレクトリを /home ディレクトリに移動しますchdir ( $ディレクトリ)または死ぬ"ディレクトリを
$dir 、 $! "に切り替えることができません。 "現在いるディレクトリは$dir n " ;上記のプログラムを実行すると、出力結果は次のようになります。
現在いるディレクトリは /home です