Perl の FileHandle モジュール

Perl No Filehandle Mojuru



Perl には、ファイルを作成およびアクセスするための複数の方法が存在します。ファイル ハンドラーを使用して、Perl でファイルを開いて読み取り、書き込み、または更新を行うことができます。ファイル ハンドラーは、構造化プログラミング形式またはオブジェクト指向プログラミング形式の open() メソッドで使用できます。 FileHandle モジュールを Perl で使用すると、ファイル ハンドラーをオブジェクトとして宣言し、このオブジェクトを使用してファイルを開き、「FileHandle」クラスのさまざまなプロパティとメソッドを使用して作成またはアクセスすることができます。このチュートリアルでは、FileHandle モジュールのいくつかの一般的なメソッドの使用法と、FileHandle モジュールを使用して Perl でファイルを操作する方法を示します。

FileHandle のいくつかの便利なメソッド

FileHandle モジュールの一般的に使用されるメソッドのいくつかは次のとおりです。

方法 目的
教えて ファイルのサイズをバイト単位でカウントするために使用されます。
ゲット ファイル内容の各文字を読み取るために使用されます。
求める ファイルポインタを特定の位置に移動するために使用されます。
えふ ファイルの終わりを示します。
近い 以前に定義したファイル ハンドラーを閉じるために使用されます。

Perl ファイルハンドルの例

チュートリアルのこの部分では、複数の例を使用して FileHandle モジュールのさまざまな使用法を示します。







例 1: 新しいファイルを作成する

FileHandle モジュールを使用して新しいファイルを作成する次のスクリプトを使用して、Perl ファイルを作成します。ファイル名はユーザーから取得され、それが存在するかどうかがチェックされます。ファイルが存在しない場合は、1 秒待った後、「FileHandle」クラスのオブジェクトを作成してファイルを書き込み用に開きます。



#!/usr/bin/perl

厳密に使用する ;
使用 警告 ;
5.34.0を使用してください ;
ファイルハンドルを使用する ;

#ユーザーからファイル名を取得して作成します
印刷する 「ファイル名を入力してください:」 ;
私の$f = <>;
ムシャムシャ ( $f ) ;

#ファイルが既に存在するかどうかを確認する
もし ( -e $f )
{
#ファイルが存在する場合はメッセージを出力する
言う 'ファイルが既に存在します。' ;
}

それ以外

{
#ファイルハンドラーオブジェクトの作成
私の$FileHandler = ファイルハンドル- > 新しい ;
言う 「ファイルに書き込んでいます...」 ;
#1秒待ってください
寝る ( 1 ) ;

#書き込み用にファイルを開く
もし ( $ファイルハンドラー- > 開ける ( > $f' ) )
{
#ファイルにテキスト行を書き込みます
印刷する $FileHandler 「テストメッセージです。 \n 2行目です。 \n ;
#ファイルハンドラーを閉じる
$ファイルハンドラー- > 近い ;
}

}

出力:



出力によると、「test.txt」ファイルは以前には存在せず、このファイルは 2 行のテキストで作成されています。次に、「cat」コマンドを実行して、その内容を含むファイルが正常に作成されたかどうかを確認します。





  p1-1

スクリプトは同じ入力値を使用して再度実行され、「test.txt」ファイルが以前に作成されているため、「ファイルはすでに存在します」というメッセージがここで出力されます。



  p1-2

例 2: ファイルの内容を読み取る

ファイルが存在する場合は、「FileHandle」クラスを使用してファイルの内容を読み取る次のスクリプトを使用して Perl ファイルを作成します。ファイル名はユーザーから取得されます。

#!/usr/bin/perl

厳密に使用する ;
使用 警告 ;
5.34.0を使用してください ;
ファイルハンドルを使用する ;

#ユーザーからファイル名を取得して作成します
私の$f = <>;
私の$f = ;
ムシャムシャ ( $f ) ;

#ファイルが既に存在するかどうかを確認する
もし ( -e $f )
{
#ファイルを開いて読み取ります
私の$FileHandler = ファイルハンドル- > 新しい ( 「<$f」 ) ;
#ファイルの内容を出力する
印刷する < $FileHandler >;
#ファイルハンドラーを閉じる
$FileHandlerを閉じる ;
}

出力:

「test.txt」ファイルは現在の場所に存在するため、その内容が出力に表示されます。

  p2

例 3: コンテンツをファイルに追加する

次のスクリプトを使用して Perl ファイルを作成し、空ではないファイルにコンテンツを追加し、ファイルのサイズをバイト単位で出力します。ファイル名はユーザーから取得されます。ファイルが存在し、データが含まれている場合は、ファイルの末尾にテキスト行が追加されます。それ以外の場合は、メッセージが出力されます。

#!/usr/bin/perl

厳密に使用する ;
使用 警告 ;
5.34.0を使用してください ;
ファイルハンドルを使用する ;

#ユーザーからファイル名を取得して作成します
印刷する 「ファイル名を入力してください:」 ;
私の$f = <>;
ムシャムシャ ( $f ) ;

#ファイルがすでに存在し、空でないかどうかを確認します
もし ( -s $f )
{


私の$FileHandler = ファイルハンドル- > 新しい ( 「>>$f」 ) ;
#ファイルサイズを出力する
印刷する 「ファイルのサイズは」 。 $ファイルハンドラー- > 教えて。 「バイト。 \n ;
言う 「コンテンツをファイルに追加しています...」 ;
#1秒待ってください
寝る ( 1 ) ;

#ファイルの最後にコンテンツを書き込みます
印刷する $FileHandler 「新しいラインです。 \n ;
#ファイルハンドラーを閉じる
$ファイルハンドラー- > 近い ;
}
それ以外
{
言う 'ファイルが存在しません。' ;
}

出力:

出力によると、「test.txt」ファイルに新しい行が追加され、ファイルのサイズは 45 バイトになっています。次に、「cat」コマンドを実行して、コンテンツがファイルに正しく追加されているかどうかを確認します。

  p3-1

結論


FileHandle モジュールは、ファイルの読み取り、書き込み、または追加を行うための Perl のオプションの 1 つです。このチュートリアルでは、簡単な例を使用して、このモジュールの 3 つの異なる使用法を示します。