WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:カレントディレクトリを検索し、その数を返す処理をperlで書きたい。

0:[投稿] 未熟者 [2004/01/27 18:09 ][環境:Windows2000 UNIX]

以前、別の質問で投稿させていただいた未熟者です。
題記の処理をするためのサブルーチンを作成に関して、
質問を投稿させてください。
(他の方でもサブルーチンの質問があったのですが、
自分が知りたい内容とは違うように見受けられましたので、
投稿させていただきました。)

例えば、サブルーチン名をDirCheckとし、
$path='./www/xxx/yyy;というカレントディレクトリの中にある
ディレクトリ階層を格納した変数$pathを引数で受け取ります。
$path = './www/xxx/yyy';
&DirCheck($path);
もし$pathが表示の通り、カレントディレクトリに
./www/xxx/yyyでその通り存在していれば0を、
./www/xxxのように1つのディレクトリ(yyy)がなければ1を、
./wwwのように2つのディレクトリ(xxx,yyy)がなければ2を、
./www/xxx/zzzのように3つディレクトリ階層があっても、
$pathで指定されているとおりでなく、yyyがない場合も1を
返すという処理を作成したいのです。
検索対象が存在したら子ディレクトリを探し、というのを
カウントしながら繰り返せすような感じです。
splitを使って$pathを区切って配列にして、foreachやforで
まわしていくのかなとも考えたのですが、まだまだ知識・経験が
浅いため、思考がその先から行きません。
こういう風に書けばいいなどありましたら、
ご教授願えればと思っております。

よろしくお願い致します。


1:[回答] AC [2004/01/29 22:15 ]

$counter = 0;
$path = './www/xxx/yyy';
として、 -d $path で存在チェック。
→存在していたら$counterを返す。
→存在しない場合は、 $counter++をして、
$path のディレクトリの末尾を落として、
$path eq './www/xxx' になるようにする。そして再チェック。
これをwhileで繰り返せばよいと思う。


2:[保留] 未熟者 [2004/01/30 18:58 ]

ACさま

ご返答ありがとうございます。
ACさまのご返答を参考に自分で考えてみます。
そのため、書き込みは保留とさせていただきます。
もし分からなければ、再度ご教授をお願いする書き込みさせていただくと思いますが、その際はよろしくお願いします。

失礼します。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World