Article View: fj.lang.perl
Article #182Re: mkdir$B$N(B -p $B%*%W%7%g%sAjEv$r<B8=$9$k$K$O!)(B
From: IRIUCHIJIMA Ken / 入内島 健
Date: Mon, 06 Apr 1998 00:00
Date: Mon, 06 Apr 1998 00:00
35 lines
1980 bytes
1980 bytes
>>>>> inaba@st.rim.or.jp (Inaba Hiroto) (="稲") さん
>>>>> <yaxo1aai.fsf@carnival.st.rim.or.jp> で
>>>>> 3 Apr 1998 01:02:49 +0900 に言われるには:
nammei> mkdirの-pオプション相当を実現したいのですが、どんなふうに
nammei> 書けば良いんでしょうか?
...
> @d = split m'/';
> for (@d) {
> mkdir $_
> unless -d $_;
> chdir $_;
> }
稲> この考え方でいいと思いますが、ちょっとだけ別のやりかたをしてみました。
私のやり方は基本に忠実ではあったと思いますが、
稲> #/usr/local/bin/perl -w
稲> for (@ARGV) {
稲> while (m:/|$:g) {
稲> mkdir $`, 0777 or die "Can't mkdir $`: $!\n" if $` ne "" and !-d $`;
稲> }
稲> }
また、目から鱗が落ちました。稲葉さんのコードを見ていると、自分にとって
はまだまだ perl が外国語なのを思い知ります。
m//g を list context で使えば split は使わずに済んでしまうんですね。し
かも、$` を使えばいちいち chdir する必要がない、と。
--
東芝 入内島 健 横浜市鶴見区在住
mailto: ken.iriuchijima@toshiba.co.jp, junkto: ken@gaea.ssel.toshiba.co.jp
Technical Details
Message-ID:
<38zphzq03h.fsf@gaea.ssel.toshiba.co.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6fvo5c$jd9@ux37.fuchu.toshiba.co.jp> <38vhss3235.fsf@gaea.ssel.toshiba.co.jp> <6g063d$475$1@meshsv66.os.mesh.ad.jp> <yaxo1aai.fsf@carnival.st.rim.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 1043e7,35a2f9c0f0c5150f X-Google-Attributes: gid1043e7,public From: ken@gaea.ssel.toshiba.co.jp (IRIUCHIJIMA Ken / 入内島 健) Subject: Re: mkdir$B$N(B -p $B%*%W%7%g%sAjEv$r<B8=$9$k$K$O!)(B Date: 1998/04/06 Message-ID: <38zphzq03h.fsf@gaea.ssel.toshiba.co.jp> X-Deja-AN: 341201640 Sender: ken@gaea.ssel.toshiba.co.jp References: <6fvo5c$jd9@ux37.fuchu.toshiba.co.jp> <38vhss3235.fsf@gaea.ssel.toshiba.co.jp> <6g063d$475$1@meshsv66.os.mesh.ad.jp> <yaxo1aai.fsf@carnival.st.rim.or.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Organization: R. & D. Center, TOSHIBA Corp., JAPAN / $BEl<G(B $B8&5f3+H/%;%s%?!<(B Newsgroups: fj.lang.perl