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 }
      
      






All Articles