Perlについての質問箱 39箱目 at TECH
[2ch|▼Menu]
479:デフォルトの名無しさん
09/04/02 20:13:48
>>476
aaa― が通るのは aaa があるから。
aaa2―/hogeの失敗は、何らかの単純ミスの可能性が高い。

>>446
>どうやって回避してるの?
@dirs=split /[\r\n]+/,`dir /s/b/aD`; とか?
再帰? 再帰って何だ?


ファイルテスト演算子内から呼ばれるwin32_stat()内で終端の\を加工してるのが直接の原因。
なんでも FindFirstFile() and stat() are buggy with a trailing backslash, なので、
so change it to a forward slash (〜5.8.7.815)とか、
remove additional trailing slashes (5.8.8.816〜)という対策をしてるとの事。

-dを使う限りstatを避けることは出来ないが、There's More Than One Way To Do Itという
決まり文句を持ち出すまでもなく回避するには数多くの方法がある。

1.くどいけど @dirs=split /[\r\n]+/,`dir /b/aD`;
2.Win32::FileにGetAttributesがあるのでソレを使う
3.Win32API::FileやWin32::APIで好き勝手にやりたい放題?
4.面倒だから -e "${fn}/." で代用 (chdir/opendirにも使える/-fはopenで代用)

X. グロブ(<*>)を使うと、statに通らないファイル名は入ってこない

正しい対応.バグレポートを出し、余裕があればパッチも投稿する。
例えば、WideChar化してから終端加工して再度MultiByteに戻すとか。

楽な対応.そんなフォルダ名は使わない、見つけたら即リネーム


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5382日前に更新/164 KB
担当:undef