2014-11-08 2 views
0

디렉토리의 파일 내용을 열고 읽으려고했습니다. 내가 디렉토리에 액세스하고 내가 열고 file.please 도움perl이 파일 내용을 열 수 없습니다.

#usr/bin/perl 
    my $dir='d:\task'; 
    opendir DIR,$dir or die "cannot open directory"; 
    while (my $file = readdir(DIR)) 
    { 

    next if ($file =~ m/^\./); 
    print " $file \n"; 
    open(my $fh,'<',$file) or die "unable to open the $file "; 
    while(my $row=<$fh>) 
    { 
    chomp $row; 
    print "$row"; 
     } 
    } 
+2

1. 추가'엄격한 사용을; '경고'를 사용한다. 2.'die' 메시지에'$!'를 추가하여 오류에 대한 정보를 얻는다. 3. 이익. 덕분에 – TLP

+0

. 그것은 파일을 열거하는 동안 그 파일이나 디렉토리를 말하고있는 file.but를 나열합니다. – user2775241

+0

'chdir' 또는 경로가 필요합니다. 'foreach my $ file glob ("D : \ task \ *") {' – Sobrique

답변

1

당신은 디렉토리의 맥락에서 파일 이름을보고있는 내부의 내용을 읽을 수 없습니다와 같은 오류를 얻고있다 files.but의 목록을 얻을 수 있습니다, 다른 디렉토리에서 코드를 실행하고있는 것입니다.

는 디렉토리 경로 씁니다 파일을 열려면

open (my $in, '<', "$dir/$file") or die "Cannot open file for input: $!\n"; 
+0

건초 정말 고마워. 콘솔에서 사용자의 입력으로 디렉토리 이름을 가져 와서 열 수 있습니까? – user2775241

+0

물론 가능합니다. 'my $ dir = '을 시도해보십시오. chomp $ dir;' – dland

+1

@dland 또는 chomp it _en passant_ :'chomp (my $ dir = );' – Slade

관련 문제