Perl 6のファイル操作

ディレクトリ


Perl 6には、opendirとその仲間の代わりに、ディレクトリ(デフォルトでは現在のディレクトリ)からファイルのリストを返す1つのdir関数があります。 千の言葉の代わりに:

#   Rakudo > dir build parrot_install Makefile VERSION parrot docs Configure.pl README dynext t src tools CREDITS LICENSE Test.pm > dir 't' 00-parrot 02-embed spec harness 01-sanity pmc spectest.data 


Dirには、作業の結果に応じてgrepを使用するためのオプションのテストパラメーターがあります。

  > dir 'src/core', test => any(/^C/, /^P/) Parcel.pm Cool.pm Parameter.pm Code.pm Complex.pm CallFrame.pm Positional.pm Capture.pm Pair.pm Cool-num.pm Callable.pm Cool-str.pm 


ディレクトリはmkdir( 'foo')を介して作成されます

ファイル


Perl 6でファイルを読み取る最も簡単な方法は、丸lurみです。 ファイルの内容を文字列として返します。

  > slurp 'VERSION' 2010.11 


古典的な方法へのアクセスがあります:

  > my $fh = open 'CREDITS' IO()<0x1105a068> > $fh.getc #   = > $fh.get #   pod > $fh.close; $fh = open 'new', :w #    IO()<0x10f3e704> > $fh.print('foo Bool::True > $fh.say('bar Bool::True > $fh.close; say slurp('new') foobar 


ファイルチェック


ファイルの存在とタイプのチェックはスマートマッチングを通過します~~

  > 'LICENSE'.IO ~~ :e #   ? Bool::True > 'LICENSE'.IO ~~ :d #      ? Bool::False > 'LICENSE'.IO ~~ :f #   ? Bool::True 


軽量です。

ファイル::検索


標準機能が終了すると、モジュールはビジネスに接続されます。 ファイル::ファイルから検索::ツールコレクションは、必要なファイルを検索するためにディレクトリツリーを検索し、見つかったファイルの遅延リストを作成します。 Rakudo Starにバンドルされており、neutro経由で簡単にインストールできます。

例:

 find(:dir<t/dir1>, :type<file>, :name(/foo/)) 


/ foo /規則性に適した名前のt / dir1ディレクトリに、ファイルの遅延リストとファイルのみを作成します。 リスト項目は単純な行ではありません。 これらは、完全なパスを持つ文字列に変わるオブジェクトですが、同時にそれらが存在するディレクトリの名前(dir)とファイル名(name)のアクセサを持っています。 詳細については、ドキュメントを参照してください。

便利なイディオム


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

 open('new', :w).close 


名前のないファイルハンドラ

  given open('foo', :w) { .say(' !'); .close } 

Source: https://habr.com/ru/post/J252509/


All Articles