タグ

perlに関するtk18のブックマーク (75)

  • File::Copy - ファイルの移動とコピー - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説

    # モジュールの読み込みと関数のインポート use File::Copy qw/copy move/; copy関数でファイルをコピー、move関数でファイルを移動することができます。rename関数というファイルを移動する標準関数がありますが、ファイルシステムを隔てた移動に対応していません。ファイルを移動する場合はFile::Copyのmoveを使用するのがよいでしょう。またmoveはディレクトリを移動するときも利用することができます。 # ファイルのコピー copy($from, $to); # ファイルの移動 move($from, $to) ファイルをコピーするサンプルです。ファイルのコピーに失敗(※1)したときのためにエラー処理を行います。エラーメッセージにはOSのエラーメッセージ「$!」を含めるようにします。 # ファイルのコピー my $from = 'xxx'; my $t

    File::Copy - ファイルの移動とコピー - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説
    tk18
    tk18 2022/08/16
  • 受け取ったデータの処理 (あいまいモード)

    tk18
    tk18 2021/08/12
  • perljp - 日本語 Perl ガイド - Perldoc Browser

    tk18
    tk18 2021/01/03
  • Perlの細道・けもの道

    WindowsPerlの細道・けもの道 ■ナビゲータ [南北館(最初のメニュー)] [WindowsPerlの細道・けもの道] [1.準備編] [2.基編] [3.応用編] [3-1.固定長データとCSVデータとの変換] [3-2.重複データの処理] [3-3.フォルダ内の一括処理] [3-4.1つのファイルを複数のファイルに分割する] [3-5.文字コードの変換] [3-5-1.文字コードの変換(Encodeモジュール利用)] [3-5-2.文字コードの変換(perl IO レイヤ使用)] [3-5-3.文字コードの変換(open プラグマ 使用)] [3-6.半角全角変換] [3-7.多次元配列の処理] [3-9.その他] [スクリプトと入力データのサンプル] rubyではどう処理する? 同じことをrubyではこうしています。 3.応用編 3-5.文字コードの変換 3-5-1.

    tk18
    tk18 2021/01/03
  • ファイルのコピー - SMART 開発者のためのウェブマガジン

    Perlにはmkdir()やrmdir()、unlink()といったディレクトリの作成や削除関連の関数は用意されているのですが、ファイルコピーに関する関数は用意されていません。そのため、system()を使ってシステムのコマンドを呼び出すか、モジュールを使う必要があります。 system()からシステムのcpコマンドを呼び出した場合 system("cp ./a.csv ./b.csv"); モジュールを使う場合は、デフォルトでインストールされているFile::Copyが便利です。File::Copyにはcopy()、move()、syscopy()、rmscopy()が用意されています。 File::Copyモジュールを使った場合 use File::Copy; copy("./a.csv","./b.csv") or die "error: $!"; copy()の実行でエラーが発生す

    ファイルのコピー - SMART 開発者のためのウェブマガジン
    tk18
    tk18 2018/12/24
  • ファイルの存在を確認する - Perlゼミ(サンプルコードPerl入門)

    Perl › 演算子 › ファイルテスト › here ファイルが存在するかどうかを確認するには、ファイルテスト演算子「-e」を使用します。 -e $file ファイルが存在すると真値を、存在しないと偽値を返します。ディレクトリやシンボリックリンクなどもファイルとして扱われます。Unixではディレクトリも特別なファイルとみなしファイルという概念でとらえるからです。 通常ファイルが存在するかどうかを確認 ディレクトリではない通常のファイルが存在するかどうかを確認したい場合は、ファイルテスト演算子「-f」で確認できます。 -f $file 通常ファイルが存在すると真値を、存在しないと偽値を返します。通常ファイルとはテキストファイルやバイナリファイルなどのデータを格納しているファイルのことです。 存在を確認できるファイルの種類 その他に、ディレクトリの存在やシンボリックリンクの存在を確認できるフ

    ファイルの存在を確認する - Perlゼミ(サンプルコードPerl入門)
    tk18
    tk18 2018/12/24
  • おかか梅干し: CPAN モジュールを追加する

    ► 2017 (1) ► 2月 (1) ► 02/25 (1) ► 2014 (3) ► 9月 (1) ► 09/22 (1) ► 6月 (1) ► 06/25 (1) ► 1月 (1) ► 01/21 (1) ► 2013 (15) ► 9月 (1) ► 09/30 (1) ► 6月 (7) ► 06/30 (1) ► 06/26 (2) ► 06/22 (2) ► 06/19 (1) ► 06/09 (1) ► 4月 (3) ► 04/19 (1) ► 04/04 (1) ► 04/03 (1) ► 2月 (2) ► 02/28 (1) ► 02/03 (1) ► 1月 (2) ► 01/11 (1) ► 01/07 (1) ▼ 2012 (113) ► 12月 (6) ► 12/13 (1) ► 12/08 (1) ► 12/05 (2) ► 12/03 (1) ► 12/01 (1

    tk18
    tk18 2018/12/22
    >解凍したDIR内に「Round.pm」があるので、それをperlのモジュールDIR(ワシのlocalだとC:\Perl\lib\)に入れる →訂正: Math:Round の場合は、「C:\Perl\lib\Math\」に入れる。
  • Perlで半角全角混じりの文字列を指定数で切り取る | work.log

    Perl で半角全角が混じった文字列を指定した文字数で切り取るメモです。 早い話、PHP の mb_substr 関数ライクなものを Perl でやってみようと思います。 調べるといくつか方法があるみたいですが、自分的にしっくりきたのは Perl の substr 関数を使う方法です。ただ、そのままでは上手く切り取れないので文字列は一度、内部コードにエンコードする必要があります。 何はともあれソースコードはこんな感じになります。 #!/usr/bin/perl ## file: mb_substr.pl use strict; use warnings; use Encode; my $enc = find_encoding 'utf8'; ## EUC-JP の場合 # my $enc = find_encoding 'euc-jp'; my $crop = $ARGV[0] || ex

    tk18
    tk18 2018/08/25
  • 関係演算子 - 条件分岐 - Perl入門

    関係演算子には数値を比較するための演算子と文字列を比較するための演算子の二種類が用意されています。例えば 2 つの値が等しいかどうかを判別する場合、数値を比較するには == 演算子を使い、文字列を比較するには eq 演算子を使います。関係演算子は結果として真(true)又は偽(false)を返します。 文字列を比較する場合には、両辺の文字列の値を1文字ずつ順に比較していきます。大きいか小さいかの判別は比較する2つの文字列をソートしてどちらが先にくるのかで比較しています。 なお文字列の比較の場合には数値用の演算子を使うこともできます。

    関係演算子 - 条件分岐 - Perl入門
    tk18
    tk18 2018/01/27
  • jcode.plでdefined(%hash) is deprecated at ../perllib/jcode.pl line 684.のエラー - アイスポテト - C#|Tex|Perl|東京凰籃学院

    jcode.plでdefined(%hash) is deprecated at ../perllib/jcode.pl line 684.のエラー defined(%hash) is deprecated at ../perllib/jcode.pl line 684. (Maybe you should just omit the defined()?) defined(%hash) is deprecated at ../perllib/jcode.pl line 693. (Maybe you should just omit the defined()?) sub z2h_euc { local(*s, $n) = @_; &init_z2h_euc unless defined %z2h_euc_inited; $s =~ s/($re_euc_c|$re_euc_kana)/

    jcode.plでdefined(%hash) is deprecated at ../perllib/jcode.pl line 684.のエラー - アイスポテト - C#|Tex|Perl|東京凰籃学院
    tk18
    tk18 2017/07/10
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    tk18
    tk18 2017/05/03
    >@F = sort { "\L$a" cmp "\L$b" } @F; # 大文字と小文字を区別しないソート
  • URLエンコード / URLデコードするには (urlencode, urldecode) | 文字列 | プログラミング言語の比較 | hydroculのメモ

    hydroculのメモ > プログラミング言語の比較 > 文字列 > URLエンコード / URLデコードするには (urlencode, urldecode) URLエンコード / URLデコードするには (urlencode, urldecode) 2014/09/27 各プログラミング言語でのURLエンコードまたはURLデコードする方法。 PHP 2014/02/18 例 // URLデコード $str = urldecode("%2B+%3D%26 %E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A"); echo $str; // => + =& あいうえお urlencode 関数 | PHP Manual http://www.php.net/manual/ja/function.urlencode.php urldecode 関数 |

    tk18
    tk18 2017/05/02
  • sort関数 - 配列の並べ替え - Perl入門ゼミ

    Perl › 関数 › here 配列を並べ替えるにはsort関数を使用します。第1引数には比較のためのコードブロックを渡します。昇順で並べ替える場合は$aを$bより先に記述し、降順で並べ替えるには$bを$aより先に記述します。比較演算子には数値として比較したい場合は<=>を使用し、辞書順で比較したい場合はcmpを使用します。コードブロックの直後にカンマがないことに注意してください。 # 昇順で並べ替え @sorted = sort { $a 演算子 $b } @array; # 降順で並べ替え @sorted = sort { $b 演算子 $a } @array; 並び替えのサンプル 数値の昇順で並べ替えるサンプルです。@numsは(2, 3, 5, 11)になります。 # 数値の昇順で並び替え my @nums = (5, 11, 3, 2); @nums = sort {$a <=

    sort関数 - 配列の並べ替え - Perl入門ゼミ
    tk18
    tk18 2017/05/02
  • quotemeta関数 - 正規表現文字のエスケープ - Perl入門ゼミ

    Perl › 関数 › here quotemeta関数を使用すると、正規表現で利用される文字列を通常の文字として扱うことができます。ワード文字以外のすべての文字の直前に\がつけられます。 # 正規表現文字列を通常の文字として扱う $ret = quotemeta $str; 正規表現文字を含んだ文字列を通常の文字列としてパターンマッチさせるサンプルです。 # 正規表現文字を含んだ文字列を通常の文字列としてパターンマッチ my $message = 'This message contains a{2}'; my $match = "a{2}"; $match = quotemeta $match; if ($message =~ /$match/) { print "Match!\n"; } quotemetaは正規表現の特殊文字である\Qと同じ意味を持ちます。上記のquotemetaは

    quotemeta関数 - 正規表現文字のエスケープ - Perl入門ゼミ
    tk18
    tk18 2017/05/02
  • 【保存版】正規表現でエスケープが必要な文字一覧表 - Qiita

    エスケープを行う文字そのものなので、\ だけの記述はできません。\ にマッチングさせたい場合は \\ と記述してください。

    【保存版】正規表現でエスケープが必要な文字一覧表 - Qiita
    tk18
    tk18 2017/05/02
  • PERLの強味、文字列操作をやるぞ

    1-3. PERLの強味、文字列操作をやるぞ PERLの文字列操作は、awkを基としていて非常に便利ですが、はじめての人には 判りにくいかもしれません。まずは、何が出来るのかと、その処理の理解のポイント を説明して、その後例を示して細かく説明します。 1-3-1. 文字列操作で何が出来る? PERLの文字列操作は、主に行単位で行います。これは、前に示したwhile等で 判るように行毎に同じ処理を考えると納得がいくと思います。 それで、できる事は ○文字列の検索 ○文字列の削除 ○文字列の置き換え ○文字列の抽出 これらの処理が、簡単な記述で実現できます。 1行単位の処理だと言う事を頭に入れておくと、非常に考えやすいです。 1-3-2. 文字列検索 まずは、良く使う”文字列の検索”いきます。 以下のプログラムを(pr31.pl)で作って下さい。 #!/usr/local/bin/jperl

    tk18
    tk18 2015/12/06
  • next文 - 次の繰り返しの先頭にジャンプする - Perl入門ゼミ

    Perl › 構文 › here next文を使うと次の繰り返しの先頭にジャンプすることができます。これは、C言語やJavaのcontinue文に該当します。 next next文はwhile文やfor文などの繰り返し文の中で使うことができます。 while (1) { if (条件) { next; } } for (my $i = 0; $i < 10; $i++) { if (条件) { next; } } foreach my $animal (@animals) { if (条件) { next; } } 特定の条件の時だけ、処理を飛ばしたい場合にnext文を利用することができます。 サンプルプログラム next文を使ったサンプルプログラムです。 特定の文字に一致したときにループの先頭にジャンプ ループ処理の途中で、ある条件の場合に、次のループの先頭にジャンプしたい場合にnext

    next文 - 次の繰り返しの先頭にジャンプする - Perl入門ゼミ
    tk18
    tk18 2015/12/06
  • 簡単!たった13行のコードでHTML取得&解析をするPerlスクリプト - DQNEO起業日記

    13行のコードで、Yahoo!Japanのトピックス一覧を取得する! PerlHTML取得・解析したいときはLWP::UserAgentHTML::TreeBuilderというのを使うと簡単にできます。 LWP::UserAgentを使うと、Webページの取得ができます。 HTML::TreeBuilderを使うと、HTMLのDOM解析ができます。 この2つのモジュールを使って、Yahoo!Japanのトピックス一覧を取得してみましょう。 コメント行と空行を除くとたったの13行です。 use strict; use warnings; use LWP::UserAgent; use HTML::TreeBuilder; # urlを指定する my $url = 'http://www.yahoo.co.jp'; # IE8のフリをする my $user_agent = "Mozilla

    簡単!たった13行のコードでHTML取得&解析をするPerlスクリプト - DQNEO起業日記
    tk18
    tk18 2014/05/17
  • qr - 5部 関数リファレンス - [SMART]

    この演算子はSTRINGを正規表現としてクォートします (可能ならコンパイルします)。引数STRINGはm/PATTERN/内のPATTERNと同様に文字変換されます。 ダブルクォーテーション( " )がデリミタとして使用された場合、文字変換は行われません。 簡単な使い方 # $patternの値を正規表現としてクォート $re = qr/$pattern/; # qrの返却値を利用してマッチング $string =~ /$re/; 上記のように、qrの返却値はパターンマッチのサブパターンとして使えます。 Perlはqr演算子を実行する際にパターンをコンパイルするので、qrを使うことでいくつかの場面で速度的に有利になります。特にqrの結果が独立して使われる場合に有利になります。 sub match { my $patterns = shift; # $patternsの値(複数)を一括して

    qr - 5部 関数リファレンス - [SMART]
    tk18
    tk18 2014/02/19
  • qr演算子 - 正規表現のリファレンスを作成する - Perl入門ゼミ

    Perl › 演算子 › here 「qr演算子」で正規表現のリファレンスを作成することができます。qr演算子を使うと、正規表現をリファレンスとして変数に保存できます。正規表現のオプションも含めて保存できます。正規表現が、コンパイルされるので、繰り返しパターンマッチを行う場合、高速に動作します。 # 正規表現のリファレンス my $regex = qr/\d+/sm; パターンマッチを行うときは//の中に入れることもできますし、そのまま使用することもできます。//の中にいれたほうが少し見やすと思います。 # //の中で使用 if ($str =~ /$regex/) { ... } # そのまま使用 if ($str =~ $regex) { ... } リファレンスって何? リファレンスについては以下の記事で詳しく解説しています。 リファレンスの使い方をマスターしよう サンプル 正規表現

    qr演算子 - 正規表現のリファレンスを作成する - Perl入門ゼミ
    tk18
    tk18 2014/02/01