perl 몇 개의 파일 작업 예

3913 단어 perl파일 조작
perl 이 가장 많이 사용 하 는 곳 은 파일 처리 라 고 할 수 있 습 니 다.다음은 perl 파일 작업 의 일부 것들 을 정리 하고 구체 적 인 예 가 있 습 니 다.아래 의 예 를 통 해 perl 파일 작업 에 대한 이 해 를 강화 하 겠 습 니 다.
파일 삭제
unlink$file,unlink$file 1,$file 2,$file 3 등 unlink 함 수 를 사용 합 니 다.
파일 열기
세 가지 매개 변수 형식 으로 파일 을 열 면 패턴 과 파일 이름 을 구분 하기 쉽 고 perl 5.6 이후 버 전 은 모두 이러한 방식 을 지원 합 니 다.

#Open the 'txt' file for reading
open FH, '<', "$file_name.txt" or die "Error:$!n"; #Open the 'txt' file for writing. Creates the #file_name if it doesn't already exist #and will delete/overwrite a pre-existing file of the same name open FH, '>', "$file_name.txt" or die "Error:$!n";
#Open the 'txt' file for appending. Creates the #file_name if it doesn't already exist
open FH, '>>', "$file_name.txt" or die "Error:$!n";
#Open the 'txt' file for a 'read/write'. #Will not create the file if it doesn't #already exist and will not delete/overwrite #a pre-existing file of the same name
open FH, '+<', "$file_name.txt" or die "Error:$!n"; #Open the 'txt' file for a 'read/write'. Will create #the file if it doesn't already exist and will #delete/overwrite a pre-existing file #of the same name open FH, '+>', "$file_name.txt" or die "Error:$!n";
#Open the 'txt' file for a 'read/append'. Will create #the file if it doesn't already exist and will #not delete/overwrite a pre-existing file #of the same name
open FH, '+>>', "$file_name.txt" or die "Error:$!n";
전체 파일 을 한꺼번에 읽 습 니 다.
<>를 사용 하여 스칼라 환경 에서 다음 줄 을 읽 고 목록 환경 에서 다음 에 모든 줄 을 읽 습 니 다.$/저장 하 는 것 은 줄 구분자 입 니 다.기본 값 은 줄 바 꾸 기 입 니 다.우 리 는 먼저$/를 바 꾸 면 스칼라 환경 에서 다음 에 모든 줄 을 읽 을 수 있 습 니 다.(이 때 는 줄 의 개념 이 없습니다.전체 파일 을 읽 는 것 입 니 다)모든 줄 을 목록 으로 읽 고 모든 줄 을 맞 출 수도 있 지만 그 속 도 는 매우 느리다.다 쓰 고 나 면 달러/고 쳐 주세요.

#!/usr/bin/perl
use strict ;
use warnings ;
sub test{
    open FILE, '<', "d:/code/test.txt" or die $! ;
    my $olds = $/ ;
    $/ = undef ;
    my $slurp =  ;
    print $slurp, "n" ;
    $/ = $olds ;
    close FILE;
}
&test() ;
local 키 워드 를 사용 하여$/를 부분 변수 로 설정 할 수도 있 습 니 다.이렇게 역할 영역 에서 뛰 어 내 린 후$/는 원래 의 값 을 되 찾 았 습 니 다.

#!/usr/bin/perl
use strict ;
use warnings ;
sub test{
    local $/ ; #??? local $/ = undef ;
    open FILE, '<', "d:/code/zdd.txt" or die $! ;
    my $slurp =  ;
    print $slurp, "n" ;
}
&test() ;
가장 좋 은 방법 은 모듈 을 사용 하 는 것 입 니 다.이렇게 하 는 것 이 자신 이 쓰 는 것 보다 안전 합 니 다.File:Slurp,IO::All 모두 가능 합 니 다.
파일 열기
open 파일 을 사용 할 때 파일 이름 에 변수 가 바 뀌 면 작은 따옴표 가 아 닌 작은 따옴표 로 변 수 를 무시 하기 때 문 입 니 다.

open FILE "<$file" or die $! ; # 。
open FILE '<$file' or die $! ; # , $file 。 <
파일 핸들 매개 변수
함수 test 가 있다 고 가정 하면 매개 변수 가 있 습 니 다.파일 핸들 입 니 다.이 매개 변 수 를 어떻게 전달 해 야 합 니까?
방법 1.매개 변 수 를 전달 할 때 핸들 앞 에*를 추가 합 니 다.

sub main {
    open FILE, '+<', 'test.data' or die $!;
    &test(*FILE);
    close FILE;
}
방법 2,open my$FILE 형식 으로 파일 열기

sub main {
    open my $FILE, '+<', 'test.data' or die $!;
    &test($FILE);
    close $FILE;
}

좋은 웹페이지 즐겨찾기