Perlとperlに関するperlcodesampleのブックマーク (1,930)

  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

  • File::Find - サブディレクトリを再帰的に処理する - Perl入門ゼミ

    Perl › モジュール › here File::Findを使用すると、再帰的にすべてのファイルを処理することができます。 use File::Find; find(\&process, $top_dir); sub process{ # 行いたい処理 } File::Find は、chdir で、ディレクトリを変更しながら、すべてのファイルを処理していきます。第一引数には、サブルーチンへのリファレンスを渡します。( &process がサブルーチンで、 \ 記号で、リファレンスを作成しています。 ) 第二引数以降は、処理したいディレクトリのリストを渡します。( 例では、ひとつだけ )。find の代わりに、 finddepth を使うと、走査順を、変更できます。( 以下で解説 ) カレントディレクトリを変更したくない場合 カレントディレクトリを変更しないで、走査したい場合は「no_ch

    File::Find - サブディレクトリを再帰的に処理する - Perl入門ゼミ
  • 階層を持つディレクトリを一度に削除する - Perl入門ゼミ

    Perl › ファイル操作 › here 階層を持つディレクトリを一度に削除するにはFile::Pathモジュールのrmtreeを使用します。rmtree の戻り値は、削除することのできた、ファイル数です。 use File::Path 'rmtree'; rmtree $dir; サンプル 階層を持つディレクトリを一度に削除するサンプルです。 use strict; use warnings; use File::Path 'rmtree'; # ディレクトリを削除する # 準備(ディレクトリの作成) my $dir1 = "dir_20080527_$$"; my $dir2 = "$dir1/dir2"; mkdir $dir1 or die "$dir1 を作成することができません。 : $!"; mkdir $dir2 or die "$dir2 を作成することができません。 :

    階層を持つディレクトリを一度に削除する - Perl入門ゼミ
  • glob関数 - ディレクトリに含まれるファイル一覧を取得 - Perl入門ゼミ

    Perl › 関数 › here glob関数を使用すると、ファイル一覧を取得することができます。 my @all_files = glob "*"; ファイル一覧を取得するには、glob 演算子を使います。対象は、カレントディレクトリのファイル(ディレクトリを含む)になります。別のディレクトリのファイル一覧を取得したときはchdir関数 で、カレントディレクトリを移動するか、相対パスあるいは、絶対パスで、表現します。 glob の引数の表現例 "*" .で始まらない、すべてのファイル "*.txt" .txt で終わるファイル "*.txt *.pl .txt あるいは、 .pl で終わるファイル( .txt と .pl の間に空白があります ) "* .*" すべてのファイル( * と .* の間に空白があります ) "lib/* libディレクトリ以下のファイル c:/dir/* 絶

    glob関数 - ディレクトリに含まれるファイル一覧を取得 - Perl入門ゼミ
  • カレントディレクトリ名を取得する - Perl入門ゼミ

    Perl › ファイル操作 › here カレントディレクトリ名を取得するにはCwdモジュールのgetcwd関数を使います。 use Cwd 'getcwd'; my $cur_dir = getcwd; サンプル カレントディレクトリ名を取得するサンプルです。 use strict; use warnings; use Cwd 'getcwd'; # カレントディレクトリ名を取得する。 print "1: カレントディレクトリ名を取得する。\n"; my $cur_dir = getcwd; print $cur_dir, "\n"; Perl › ファイル操作 › here

    カレントディレクトリ名を取得する - Perl入門ゼミ
  • chdir関数 - カレントディレクトリを変更する - Perl入門ゼミ

    Perl › 関数 › here カレントディレクトリを変更するにはchdir関数を使用します。Perlのプログラムの中でカレントディレクトリが変更されるだけでシェルやコマンドプロンプトのカレントディレクトリは影響を受けません。 chdir $dir; カレントディレクトリを変更するサンプルです。ディレクトリが存在しない場合を考慮して必ずエラー処理を行います。失敗した場合は、$! にエラーの内容が、格納されます。 my $dir = '/etc'; chdir $dir or die "Cannot change working directory $dir: $!"; サンプル カレントディレクトリを変更するサンプルです。 use strict; use warnings; # カレントディレクトリを変更する。 # chdir $dir; # 準備(ディレクトリの作成) my $dir

    chdir関数 - カレントディレクトリを変更する - Perl入門ゼミ
  • rmdir関数 - ディレクトリを削除する - Perl入門ゼミ

    Perl › 関数 › here rmdir関数を使用するとディレクトリを削除するにはを使用します。ファイルが中に含まれない空のディレクトリのみ削除できます。成功すると真が、失敗すると偽が返ります。また失敗すると$!にエラー内容が格納されます。 # ディレクトリを削除 rmdir $dir; サンプル rmdir関数を使って、ディレクトリを削除するサンプルです。 use strict; use warnings; # ディレクトリを削除する # rmdir $dir # 準備(ディレクトリの作成) my $dir = "dir_20080526_$$"; mkdir $dir or die "$dir を作成することができません。 : $!"; print "準備: $dir が作成されました。\n\n"; print "1: ディレクトリを削除する。\n"; rmdir $dir or

    rmdir関数 - ディレクトリを削除する - Perl入門ゼミ
  • mkdir関数 - ディレクトリを作成する - Perl入門ゼミ

    Perl › 関数 › here mkdir関数を使用するとディレクトリを作成することができます。成功すると真が、失敗すると偽が返ります。戻り値は必ずチェックしましょう。失敗すると、エラーの内容が $! に設定されます。 $ret = mkdir $dir サンプル mkdir関数を使って、ディレクトリを作成するサンプルです。 use strict; use warnings; # ディレクトリを作成する。 # mkdir $dir print "1: ディレクトリを作成する。\n"; my $dir = "dir_20080523_$$"; mkdir $dir or die "$dir を作成することができません。 : $!"; print "$dir が作成されました。\n"; Perl › 関数 › here

    mkdir関数 - ディレクトリを作成する - Perl入門ゼミ
  • ファイルを移動する ファイル名を変更する - Perl入門ゼミ

    Perl › ファイル操作 › here ファイルを移動するにはFile::Copyモジュールのmove関数を使用します。成功すれば真が、失敗すれば偽が返ります。またmove関数が失敗すれば、$! に、エラーの内容が、格納されます。 use File::Copy 'move'; move($file_from, $file_to); ファイルをディレクトリに移動することもできます。 use File::Copy 'move'; move $file_from, $dir; サンプル ファイルを移動するサンプルです。 use strict; use warnings; use Fcntl; use File::Copy 'move'; # ファイルを移動する( ファイル名を変更する ) my $file = "sample_20080522_$$.txt"; my $dir = "dir_2

    ファイルを移動する ファイル名を変更する - Perl入門ゼミ
  • ファイルをコピーする - Perl入門ゼミ

    Perl › ファイル操作 › here ファイルをコピーするにはFile::Copyモジュールのcopy関数を使用します。成功すれば真が、失敗すれば偽が返ります。またcopy関数が失敗すれば、$!にエラーの内容が、格納されます。 use File::Copy 'copy'; copy $file, $copy_name; ファイルをディレクトリの中にコピーすることもできます。 use File::Copy 'copy'; copy $file, $dir; サンプル ファイルをコピーするサンプルです。 use strict; use warnings; use Fcntl; use File::Copy 'copy'; # ファイルをコピーする。 my $file = "sample_20080521_$$.txt"; my $dir = "dir_20080521_$$"; # 準備

    ファイルをコピーする - Perl入門ゼミ
  • unlink関数 - ファイルを削除する - Perl入門ゼミ

    Perl › 関数 › here unlink関数を使用すると、ファイルを削除することができます。戻り値には、削除したファイルの個数が返ってきます。 unlink $file; サンプル ファイルを削除するサンプルです。 use strict; use warnings; use Fcntl; # ファイルを削除する。 # 準備のためにファイル作成。 my $file = "sample_20080520_$$.txt"; sysopen(my $fh, $file, O_CREAT | O_WRONLY | O_EXCL) or die "$file を作成することができません。: $!"; close( $fh ); print "準備: '$file'が作成されました。\n\n"; print "1: ファイルを削除する。\n"; if (unlink $file) { print

    unlink関数 - ファイルを削除する - Perl入門ゼミ
  • ファイルを作成する - Perl入門ゼミ

    Perl › ファイル操作 › here ファイルを作成する。書き込みモードでファイルをオープンします。Perl には、ファイルを作成するためだけの、関数がありません。ファイルを作成するには、open関数の書き込みモードを使います。 open my $fh, ">", $file; サンプル ファイルを作成するサンプルです。 use strict; use warnings; # ファイルを作成する。open my $fh, ">", $file print "1: ファイルを作成する。"; my $file = "sample_20080519_$$.txt"; # $$ はプロセスID if (-e $file) { die "$file は、すでに存在します。"; } else { open my $fh, ">", $file or die "$file を書き込みモードでオープン

    ファイルを作成する - Perl入門ゼミ
  • ファイル名から拡張子を取り出す - Perl入門ゼミ

    Perl › ファイル操作 › here ファイル名から、拡張子を取り出すにはFile::Basenameモジュールのfileparseの第二引数で拡張子を指定します。戻り値の三つ目で、拡張子が得られます。 use File::Basename; my ($base_name, $dir, $suffix) = fileparse($file_txt, '.txt'); File::Basename モジュールの fileparse 関数の第2引数に、拡張子名を指定することで、拡張子を取り出すことができます。 正規表現を使って、拡張子のパターンを指定することもできます。 use File::Basename; my $regex_suffix = qr/\.[^\.]+$/; my $suffix_txt = ( fileparse( $file_txt, $regex_suffix )

    ファイル名から拡張子を取り出す - Perl入門ゼミ
  • ファイル名からディレクトリ名とベース名を取り出す - Perl入門ゼミ

    Perl › ファイル操作 › here ファイル名から、ディレクトリ名とベース名を取り出すにはFile::Basenameモジュールのfileparseメソッドを使用します。 use File::Basename 'fileparse'; my ($base_name, $dir) = fileparse $file; File::Basename モジュールの fileparse関数を使えば、ファイル名を、ディレクトリ名とベース名を分けることができます。戻り値のリストの0番目がベース名、1番目がディレクトリ名で、元の順序と逆なので、注意してください。 File::Basename は、OSに依存しないように作成されています。Unix,Windows,MacOS では、ファイルの区切り文字が異なりますが、問題なく利用できます。 サンプル ファイル名からディレクトリ名とベース名を取り出すサ

    ファイル名からディレクトリ名とベース名を取り出す - Perl入門ゼミ
  • ディレクトリの上の階層を表す表現 .. - Perl入門ゼミ

    Perl › ファイル操作 › here ディレクトリは、自分自身を表す特別なディレクトリ名( . )と、1階層上のディレクトリを表す特別なディレクトリ名( .. )を、持っています。 # 自分自身のディレクトリを表す特別なディレクトリ名 . # 1階層上のディレクトリを表す特別なディレクトリ名 .. . と .. の確認方法 # Windows の コマンドプロンプトの場合 dir # Unix, Linux の シェルの場合 ls -a 上記のコマンドで、ディレクトリの中に、. と .. というディレクトリ名があるのを確認できます。 具体的な例 #以下のようなディレクトリ構成があるとする。 | Module ---| t --- | test1.t | | test2.t | | lib --- | SomeModule1.pm | SomeModule2.pm # カレントディレクト

    ディレクトリの上の階層を表す表現 .. - Perl入門ゼミ
  • 絶対パスと相対パス - Perl入門ゼミ

    Perl › ファイル操作 › here プログラムの中で、ファイル名を表現する方法に、絶対パスと相対パスという2通りの表現の仕方があります。絶対パスとは、ファイル名をルートから省略せずに記述したファイル名のことです。相対パスとは、カレントディレクトリから相対的に記述したファイル名のことです。 絶対パスと相対パスの例 Unix系OSの場合 Windowsの場合 絶対パスの例 /home/yk/sample1 c:\home\yk\sample1.txt 相対パスの例( *1 ) sample1 sample1.txt *1 カレントディレクトリが、それぞれ 「/home/yk」「c:\home\yk」の場合 絶対パスと相対パスの解釈のされ方。 ファイル名は、/ で始まっていれば、絶対パスであると解釈され、/ で始まっていなければ、相対パスであると解釈されます。Windowsの場合も似たよう

    絶対パスと相対パス - Perl入門ゼミ
  • 「_」 - ファイルテストの結果の再利用 - Perl入門ゼミ

    Perl › 演算子 › here 「_」を使用するとファイルテスト演算子、あるいはstat関数の結果を再利用することができます。 if( -s $file > $size && -A _ > $from_last_access ){ ... } -s $file で、サイズを取得しますが、実は背後では、stat を呼んでいます。そのときに、サイズ以外の情報も内部的に保存されます。_ を利用すれば、一回目のファイルテストで取得した、ファイルの情報を再利用できます。 _ を使う意義はパフォーマンスだけです。ファイルの情報を得るには、OSに対してシステムコールを行わなければなりません。システムコールは、一般的にコストがかかります。_ を使えば、すでに取得しているファイル情報を利用するので、2回目のシステムコールが省かれます。 注意点は、近接している場所以外では使わないことです。どこかで、sta

    「_」 - ファイルテストの結果の再利用 - Perl入門ゼミ
  • stat関数 - ファイルの詳細な情報を取得する - Perl入門ゼミ

    Perl › 関数 › here ファイルの詳細な情報を取得するにはstat関数を使用します。 my @infos = stat $file; 以下がstatで取得できる情報です。 0 ファイルシステムのデバイス番号 1 iノード番号 2 ファイルモード 3 このファイルへのハードリンク数 4 ファイルの所有者のユーザID( 数字 ) 5 ファイルの所有者のグループID( 数字 ) 6 デバイス識別子 7 ファイルのサイズ( バイト ) 8 最終アクセスしてからの経過したエポックからの秒数 9 最終更新してからの経過したエポックからの秒数 10 iノードが変更されてから経過したエポック時からの秒数 11 ファイルの読み書きに適切だと考えられるブロックサイズ 12 割り当てられている実際のブロック数 サンプル stat関数を使ってファイルの詳細な情報を取得するサンプルです。 use stri

    stat関数 - ファイルの詳細な情報を取得する - Perl入門ゼミ
  • Perlゼミ(サンプルコードPerl入門)