タグ

関連タグで絞り込む (178)

タグの絞り込みを解除

Perlに関するjay777のブックマーク (280)

  • テスト駆動開発入門をPerlで写経してみた。1 - 目の前に僕らの道がある

    xUnitチックにテストが書けるTest::Classなるものがあることを技評の記事*1で知ったので、試してみました。 どうせ試してみるなら、『テスト駆動開発入門』の写経がいいかなと思いやってみました。RubyPythonはやったけどPerlは写経していなかったし、それにPerlのクラスは慣れていないのでちょうどいい機会です。 下準備 gcc とりあえず、gccとdmakeをcpan経由でインストールしておきます。確かこのコマンドだけでインストールできたはず…。 > cpan gcc Module::Starter Makefileをいちいち書くのは面倒なのでModule::Starterを入れておきます。 > cpan Module::Starter > cpan Module::Starter::PBP初期設定としてひな形を作っておきます。 > perl -MModule::Star

    テスト駆動開発入門をPerlで写経してみた。1 - 目の前に僕らの道がある
  • PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 | hirobanex.net

    最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日語記事

  • Perl の基礎知識

    Perl の解説は、いろいろあるので、ここでは、 C言語を知っている人が Perl を使うことに重点を当てて比較しながら説明します。UNIX ユーザー対象なので正規表現についても知っているものとして説明します。ううむ、するとあまり書くことないかなあ... はじめに Perl は、インタプリタ言語で、記述された Perl プログラム(スクリプト)を perl コマンドが実行していきます。プログラムの記述は、ファイルの先頭に #!/usr/bin/perl というように perl コマンドを指定する必要があります。この記述は、Shell スクリプトと同じです。

    jay777
    jay777 2014/01/30
  • Perl Tips | Perl

    シリコンバレー在住エンジニアの、PerlPHP、AJAX、Drupal、Java の小枝集です。( 7,823,387 since 2005.02.20 ) user warning: Table 'twinkle_perltips.perltips_cache' doesn't exist query: DELETE FROM perltips_cache WHERE cid = 'variables' in /var/www/drupal-5.23/includes/database.mysql.inc on line 174. user warning: Table 'twinkle_perltips.perltips_cache' doesn't exist query: DELETE FROM perltips_cache WHERE cid = 'variables' in

    jay777
    jay777 2014/01/16
  • 標準Perl+CPANから、Perlbrew+cpanmへ乗り換え

    複数バージョンのPerlを管理、切り替えできるPerlbrewのインストールメモ。 perlbrewのインストール まず最初に、インストール先の設定を行う $ export PERLBREW_ROOT=$HOME/.perlbrew その後、続けてperlbrewのインストール $ curl -L http://xrl.us/perlbrewinstall --insecure | bash perlbrew初期設定 以下のコマンドで、初期設定を行う $ ~/.perlbrew/bin/perlbrew init $ echo 'source ~/.perlbrew/etc/bashrc' >> ~/.bashrc $ source ~/.bashrc perlのインストール お好みで、バージョンを変更してください 現時点での安定版は、5.14.2なので、5.14.2のインストールを行いま

    標準Perl+CPANから、Perlbrew+cpanmへ乗り換え
  • Perlの正規表現をマスターしよう - Perl入門ゼミ

    Perl › 正規表現 Perlの正規表現の解説です。この記事を読めば、日常で利用する正規表現のすべてを短時間でマスターすることができます。正規表現を使えば、文字列の集合を表現することができ、正規表現にマッチする文字列を検索したり、置換したりすることができます。 正規表現を使って文字列の集合を表現できます。たとえば「a」「aa」「aaa」という三つの文字列を正規表現で表現してみましょう。連続する文字の個数を表現する正規表現「{}」を使って次のように書くことができます。 a{1,3} 「a」「aa」「aaa」という文字列の集合をひとつの正規表現「a{1,3}」で表しています。{}は量指定子と呼ばれるもので、連続した文字を表現することができます。 a aa -> a{1,3} aaa 正規表現の例をもう一つみてみましょう。「p1」「q1」「r1」という文字列の集合をひとつの正規表現「[pqr]

    Perlの正規表現をマスターしよう - Perl入門ゼミ
  • perldoc.jp

    このサイトは Perl の公式ドキュメント、モジュールドキュメントを日語に翻訳したものを表示するサイトです。 サイト内の翻訳データは、有志が翻訳しているperldoc-jp/translationから取得しています。 最近の更新 / RSS commitログから最新の50件を取得しています。稀に翻訳者とcommitした人が違う場合があります。また、修正のcommit、登録しただけで未翻訳のものも含まれる場合があります。 2024-02-04 github.com ppc0018-module-true / melonsode 2024-02-03 Data::Dumper Dumper(2.183) / melonsode 2024-01-25 github.com ppc0016-indexed-builtin / kobaken 2024-01-08 perlclassguts(5.

  • Perl Hackers Hub:連載|gihyo.jp … 技術評論社

    最終回 Carmelによる依存モジュール管理 CPANモジュールの更新を高速⁠⁠、安全に(2) 宮川達彦[著],牧大輔,福貴之,松木雅幸,大沢和宏[監修] 2023-10-17 最終回 Carmelによる依存モジュール管理 CPANモジュールの更新を高速⁠⁠、安全に(1) 宮川達彦[著],牧大輔,福貴之,松木雅幸,大沢和宏[監修] 2023-10-16 第79回最近Perlに追加された実験的機能 try文⁠⁠、defer文⁠⁠、class文(2) 石垣憲一[著],牧大輔,福貴之,松木雅幸,大沢和宏[監修] 2023-08-18

    Perl Hackers Hub:連載|gihyo.jp … 技術評論社
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Test::Moreのsubtestで困っていること - $shibayu36->blog;

    最近はperlでテスト書く時はTest::Classを使うようにしている。その理由の一つとして、subtestだけのテストだと少しだけ困ることがあるからだ。 具体的には以下の事がある。 subtestは書かれている順に実行されるため、前のテストの状態に依存したコードが書かれがち 特定のsubtestだけを実行するのが面倒 前のテストの状態に依存したコードが書かれがち 僕の中では、テストが前のテストの状態に依存しないようにすべきと思っている。各テストの依存度が増えると、その後テストを追加したいときにコードの見る範囲が増え、テストが書きづらくなってしまうからだ。 しかし、subtestは単に書かれた順にテストが実行されるので、前のテストの状態に依存したコードが書きやすいと思っている。例えば以下の様なコードが書かれがち(少し極端な例だが)。 use Test::More; # insert_en

    Test::Moreのsubtestで困っていること - $shibayu36->blog;
    jay777
    jay777 2013/07/22
  • grepをよく使うプログラマはどう考えても乗り換えるべき新しいgrepコマンド「ack」:phpspot開発日誌

    Beyond grep: ack 2.04, a source code search tool for programmers grepをよく使うプログラマはどう考えても乗り換えるべき新しいgrepコマンド「ack」。 サーバに入ってコードを書いている人はかならず使うgrepですが、grepよりも高速に検索でき、git,svn等のソースコード以外のソースはgrepしないで検索できるツールらしいです。 Perlで書かれていて、Perlの強力な正規表現が使え、ハイライトしてくれます。ソースツリーの下で「ack 検索ワード」で検索するだけというシンプルさもいいです WEBサービスを書いているとhtmlphp等色々なソースをいじりますが、ファイルの検索対象も選べるため、便利です。 ack --php <検索ワード> でphpのソースのみを対象とし、ack --nophp <検索ワード>でphp

  • 初めて Perl でコードを書く時に知っておきたかったこと - あらびき日記

    この記事は abicky.net の 初めて Perl でコードを書く時に知っておきたかったこと に移行しました

    初めて Perl でコードを書く時に知っておきたかったこと - あらびき日記
  • はてなのサーバ管理ツールの話 - YAPC::Asia Tokyo 2013

    はてなの自社製サーバ管理ツールの思想と設計を紹介します。 はてなでは数千台のホストを運用しており、運用を効率化するためにサーバ管理ツールを自社で開発しています。 このセッションでは、「はてなにおけるサーバ運用に求められるもの」と「パフォーマンスメトリクスの可視化」の話をしたいと思います。 実装言語はもちろんPerlです。 はてなにおけるサーバ運用に求められるもの 数千台ホストの管理 デプロイツール(Capistrano)、監視ツール(Nagios)、プロヴィショニングツール(Chef)との統合 自社データセンタ環境とクラウド環境(AWS)の透過的な管理 パフォーマンスメトリクスの可視化のしくみ MySQLNginxなどの様々なミドルウェアのメトリクスを取得するためのエージェントの実装 メッセージキュー(TheSchwartz)を用いたエージェントのタスクマネージメント RRDToolを用

  • 処理のtimeoutを簡単に書くためのSub::Timeoutというモジュールを作りました - $shibayu36->blog;

    ある処理をするときに一定以上の時間かかったらtimeoutして処理を終わりたいみたいなことをしたい時がたまにあるので、それを行うSub::Timeoutというモジュールを作りました。 https://github.com/shibayu36/p5-Sub-Timeout 使い方 use Sub::Timeout; use HTTP::Tiny; my $res = timeout 3.5, sub { HTTP::Tiny->new->get('http://example.com/foo'); }; 基的には上のように、タイムアウトしたい秒数と処理のcoderefを渡します。 上の例だと3.5秒間で処理が終わった場合、その返り値を$resとして返し、処理が終わらなかった場合、その時点で処理を打ち切って例外を投げるようにしています。例外を投げるのでその後も処理を続けたい場合は例外処理をし

    処理のtimeoutを簡単に書くためのSub::Timeoutというモジュールを作りました - $shibayu36->blog;
  • Q. Perl5 のどのバージョンをつかったらいいのですか? - tokuhirom's blog

    5.18.x, 5.16.x, 5.14.x をつかいましょう。 というのがフォーマルな回答です。日時点での Perl5 の最新版は 5.18.0 です。 このあたりのポリシーについては perlpolicyというドキュメントが公式ドキュメントとなっていますのでごらんください。 このブログエントリーでもかいつまんで説明します。 バグフィックス 私たちが「公式に」サポートするのは、最新の安定版とそのひとつ前の安定版のみです。 5.12.x以前のバージョンはもうサポートの対象外です。5.18.0がリリースされたら 「公式に」Perl 5.14.xのサポートを終了します。ただし、後述するセキュリティ アップデートの提供は例外とします。 バグがみつかっても、過去2つのメジャーバージョンにたいしてしかアップデートは提供されません。今でいうと、5.18.x と 5.16.x 以外にたいするバグフィッ

    jay777
    jay777 2013/06/10
  • Perl5 Census Japan 2013をまとめてみました : D-7 <altijd in beweging>

    Perl5 Census Japan 2013に回答いただいた皆様、ご協力ありがとうございました!知らなかった人のために説明しておくと、私が2013年4月7日から19日までの間アンケート形式で日でのPerlの利用状態等を知りたいと思い回答を募りました。回答数は394でした。 なるほどねー、へー、と思いつつデータを見ていました。取り急ぎ今回はシンプルな回答の集計結果をお知らせしようと思います。これからさらに面白い解析は是非このエントリの最後にあるデータを使ってみていただけると嬉しいです。 それでは一個一個紹介していきます。まずは回答者の居住地域。圧倒的に関東優勢。調べた事ないけど、やっぱりIT系の人はほとんど東京近郊に集まってる、ということでいいんかな。ちなみに中国地方がゼロ、ってのがなかなか味わい深いw Perl歴。古くから広まっている言語、という事もあり10年選手が多い。 Perl熟練

    Perl5 Census Japan 2013をまとめてみました : D-7 <altijd in beweging>
  • Perlの m// は中身が固定文字列だと爆速になる - Islands in the byte stream (legacy)

    [追記] 実際に検証してみると、パターンが短いと index() のほう速いこともあるようです。パターンが長いと正規表現のほうが高速になるのでそもそもアルゴリズムが違うようですね。 よってこのエントリの内容は必ずしも正確ではありません! cf. https://gist.github.com/kazuho/5410635 [/追記] Perlの話題を日語で – Lingr で出た話題です。 Perlの正規表現マッチはパターンが単純だと index() とおなじく Boyer-Moorアルゴリズムで検索するので非常に高速です。要は最適化のつもりでパターンマッチをindex()に書き換えるのは無意味なのです。 ソースは pp.c や regexec.c あたりを fbm_instr() で検索かな? ドキュメントもどこかで読んだ気がするのですが思い出せず>< perl -MDevel::Pe

    Perlの m// は中身が固定文字列だと爆速になる - Islands in the byte stream (legacy)
  • Starman と Starlet のベンチマークと Accept Serialization - Hateburo: kazeburo hatenablog

    StarmanとStarletの違いはいくつかありますが、Starletにいくつか手を加えたあと、速度はどうなっているのか比較してみた。 なお、以下の記事はHello Worldのベンチマークなので、実際のアプリケーションのパフォーマンスにはあまり影響がないと思われます。 各ソフトウェアのバージョンは以下。 Plack-1.0023 Starman-0.3008 Starlet-0.18 Starletのベンチマークとほぼ同じアプリケーションを書いてサーバを起動した use Plack::Builder; use Plack::Request; my $length = 12; my $body = 'x'x$length; builder { enable 'AccessLog', logger => sub { }; sub { my $env = shift; my $req = P

    Starman と Starlet のベンチマークと Accept Serialization - Hateburo: kazeburo hatenablog
  • [perl] Perlで同じコードを違うバージョンのモジュールでベンチマークする - 酒日記 はてな支店

    複数バージョンのモジュールで同じコードを実行してBenchmark.pmで計測したい、というケースにこう書けばいいかな、という例。 普通にBenchmark.pmを使ってしまうと同一モジュールを違うバージョンで複数読み込むことができないため、 バージョンごとに子プロセスを fork 子プロセスで use lib して @INC を追加してから use 計測した結果をファイルに保存して親プロセスで集約、表示 という流れで書きます。 use strict; use Benchmark qw/ :all /; use File::Temp qw/ tempfile /; use Storable qw/ nstore retrieve /; # 計測したいコード my $code = sub { my $c = Cache::Redis->new; for ( 1 .. 10 ) { $c->s

    [perl] Perlで同じコードを違うバージョンのモジュールでベンチマークする - 酒日記 はてな支店
    jay777
    jay777 2013/04/02
  • perlでforkしたプロセスとの通信を簡単に行う方法が知りたい - $shibayu36->blog;

    今作っているもので、「forkした後、子プロセスの実行の結果を最後に親プロセスに通知し、親プロセスは子プロセス群の状態をまとめて取得する」、ということがやりたいのですが、モダンかつ簡単な方法って何があるんでしょうか? 具体的には use Parallel::ForkManager; $pm = Parallel::ForkManager->new(5); foreach $data (@all_data) { # Forks and returns the pid for the child: my $pid = $pm->start and next; # ... do some work with $data in the child process ... # 実行結果のサマリーを親プロセスに投げておく $pm->finish; # Terminates the child proc

    perlでforkしたプロセスとの通信を簡単に行う方法が知りたい - $shibayu36->blog;
    jay777
    jay777 2013/03/28