亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2751 | 回復(fù): 12
打印 上一主題 下一主題

小弟剛接觸perl,不太熟,麻煩幫忙看下這段代碼 [復(fù)制鏈接]

論壇徽章:
1
2015亞冠之阿爾納斯?fàn)?日期:2015-11-11 18:05:28
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-11-27 15:39 |只看該作者 |倒序?yàn)g覽
本帖最后由 kaixin9ok 于 2012-11-27 15:44 編輯

.現(xiàn)在在看小駱駝

我的目的是想遍歷一下/etc的文件,判斷如果是目錄的話,繼續(xù)往下遍歷,這么寫(xiě)只遍歷了第一個(gè)目錄,然后就不往下執(zhí)行了.
麻煩指導(dǎo)一下,謝謝

#!/usr/bin/perl
use warnings;
use strict;
my $file;
chdir "/etc" or die "cannot chdir to /etc: $!";;
#open FILE,">>/tmp/test.txt" or die "file not exists $!";
my $dir = "/etc";
        opendir DH,$dir or die "Open dir error Directory";
         while ($file = (readdir DH)){
             next if $file =~ m/^\.(\.)?/;
                if( -d $file){
                &readdir_read($file);
                }
                }


sub readdir_read{
        if( -d $_[0]){
                opendir  DH,$_[0] or die "open dir error Director $!";
                while (my $file = readdir DH){
                next if $file =~ m/^\.(\.)?/;
                print $file ."\n";
                }
        }

}

論壇徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亞冠之大阪鋼巴
日期:2015-08-07 20:57:582015亞冠之大阪鋼巴
日期:2015-09-02 14:09:09
2 [報(bào)告]
發(fā)表于 2012-11-27 15:54 |只看該作者
使用File::Find吧

論壇徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亞冠之大阪鋼巴
日期:2015-08-07 20:57:582015亞冠之大阪鋼巴
日期:2015-09-02 14:09:09
3 [報(bào)告]
發(fā)表于 2012-11-27 15:56 |只看該作者
  1. $File::Find::dir  = /some/path/
  2.     $_                = foo.ext
  3.     $File::Find::name = /some/path/foo.ext
復(fù)制代碼

論壇徽章:
1
2015亞冠之阿爾納斯?fàn)?日期:2015-11-11 18:05:28
4 [報(bào)告]
發(fā)表于 2012-11-27 15:59 |只看該作者
回復(fù) 3# 只是一個(gè)紅薯



嗯 多謝你的指導(dǎo)


- -我想試下自己寫(xiě)
能幫我看下我寫(xiě)的這個(gè)錯(cuò)誤點(diǎn)在哪嗎?

論壇徽章:
1
2015亞冠之阿爾納斯?fàn)?日期:2015-11-11 18:05:28
5 [報(bào)告]
發(fā)表于 2012-11-27 16:00 |只看該作者
回復(fù) 3# 只是一個(gè)紅薯


         就是想知道,遍歷目錄的整個(gè)過(guò)程

呵呵

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2012-11-27 16:02 |只看該作者
將代碼中的DH改成my $dh即可
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;
  4. my $file;
  5. chdir "/etc" or die "cannot chdir to /etc: $!";;
  6. #open FILE,">>/tmp/test.txt" or die "file not exists $!";
  7. my $dir = "/etc";
  8. opendir my $dh,$dir or die "Open dir error Directory";
  9. while ($file = (readdir $dh)){
  10.     next if $file =~ m/^\.(\.)?/;
  11.     if( -d $file){
  12.         &readdir_read($file);
  13.     }
  14. }

  15. sub readdir_read{
  16.     if( -d $_[0]){
  17.         opendir  my $dh,$_[0] or die "open dir error Director $!";
  18.         while (my $file = readdir $dh){
  19.             next if $file =~ m/^\.(\.)?/;
  20.             print $file ."\n";
  21.         }
  22.     }
  23. }
復(fù)制代碼

論壇徽章:
1
2015亞冠之阿爾納斯?fàn)?日期:2015-11-11 18:05:28
7 [報(bào)告]
發(fā)表于 2012-11-27 16:08 |只看該作者
回復(fù) 6# 首天


    原理何在啊?
為啥用DH就不可以?

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2012-11-27 16:51 |只看該作者
本帖最后由 xi0ws 于 2012-11-27 17:02 編輯

1. 這個(gè)遍歷方法有錯(cuò)吧
2. readdir得到的僅僅是文件/文件夾的名字(不包含路徑),所以&readdir_read要傳遞全路徑
  1. &readdir_read("$dir\\$file")
復(fù)制代碼

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2012-11-27 16:57 |只看該作者
回復(fù) 7# kaixin9ok


    代碼只能進(jìn)入第二層吧

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2012-11-27 17:25 |只看該作者
本帖最后由 xi0ws 于 2012-11-28 10:01 編輯
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my $dir = "/etc";
  5. readdir_read($dir);

  6. sub readdir_read
  7. {
  8.     return unless -e $_[0];
  9.     opendir my $dh, $_[0] or die "open dir error Director $!";
  10.     while (my $file = readdir $dh){
  11.         next if -f "$_[0]\\$file" || $file =~ m/^\.(\.)?/;
  12.         print $file."\n";
  13.         readdir_read("$_[0]\\$file");
  14.     }
  15.     closedir $dh;
  16. }
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP