🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.perl
Article #182

Re: mkdir$B$N(B -p $B%*%W%7%g%sAjEv$r<B8=$9$k$K$O!)(B

#182
From: IRIUCHIJIMA Ken / 入内島 健
Date: Mon, 06 Apr 1998 00:00
35 lines
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-mail
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>

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