タグ

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

タグの絞り込みを解除

perlに関するkamipoのブックマーク (1,467)

  • Hokkaido.pm #9

    自己紹介 twitter @xaicron works :DeNA CPAN https://metacpan.org/author/XAICRON 免責 日発表する内容は、個人的な考えや意見であり、 所属する組織、会社とは一切関係ありません。 免責 日発表する内容は、個人的な考えや意見であり、 所属する組織、会社とは一切関係ありません。 また、スピリチュアルトークはできません。 というわけで 今日は、最近使ってるモジュールの話とかを中心にまったりやっていこうと思います。 いきなり題に入る前に 自分がどんなふうに使うモジュールを選んでいるのか CPAN モジュールの選定基準 2008年ごろ書かれたいい記事があります。 CPANソムリエになる方法 ざっくりまとめると 最終更新日時がふるいモジュールは危険 テストが超絶少ないモジュールは危険 バグレポート溜まってるモジュールは危険 って感

    kamipo
    kamipo 2013/04/10
  • perlvar - Perl で定義済みの変数 - perldoc.jp

    The following names have special meaning to Perl. Most punctuation names have reasonable mnemonics, or analogs in the shells. Nevertheless, if you wish to use long variable names, you need only say 以下の名前は Perl では特別な意味を持ちます。 記号的な名前の多くは記憶法があるか、シェルでの類推が可能です。 それでも長い名前を使用したい場合には use English; at the top of your program. This will alias all the short names to the long names in the current package. Some e

    kamipo
    kamipo 2013/04/08
  • 1. Perl環境の設定 : Practical Modern Perl (仮)

    注:稿はまだ書きかけです!書きかけです!まだ一般に知らしめようとする前にブクマされました!w 間違いの指摘やコメント等は lestrrat @twitter にください! Perl環境の設定方法はここ数年で大きく進化し、変わってきました。ここではアプリケーションのデプロイも見据えた、モダンなperl環境の整え方を紹介していきます。具体的にはperl体や外部モジュールのインストール方法を解説したのち、Perlを使ったアプリケーションを管理・運用していく際に依存関係等はアプリケーション毎に管理できるようにしてグローバル環境に可能な限り干渉しない方法を紹介します。 目次 1.1 Perl体のインストール 1.2 依存モジュールの管理・インストール 1.3 Cartonによるアプリケーションの実行環境の構築 tl;dr 稿を読む前にポイントだけ知りたい!という方向けのまとめです: OSに同

    1. Perl環境の設定 : Practical Modern Perl (仮)
    kamipo
    kamipo 2013/04/02
  • PerlXS: sv_2mortal()やhv_store()のこと - EchizenBlog-Zwei

    そろそろXSをちゃんとやろうと思ったので、メモリ周辺のことが良くわからなくて放置していたsv_2mortal()やhv_store()のことについて調べた。 参考: perlguts http://www.kt.rim.or.jp/~kbk/perl5.005/perlguts.html 最初に結論を書いてしまうと [1: sv_2mortal()] - returnしない変数は常にsv_2mortal()を通す (揮発性をもたせる) - SVはreturnするときはsv_2mortal()を通してはダメ - AV, HVはreturnするときもsv_2mortal()を通す [2: newRV_inc()] - リファレンス変数(RV)を作るときはnewRV_inc()を 使い参照カウントをインクリメントしておく (newRV_noinc()はダメ) - リファレンス変数もsv_2mor

    PerlXS: sv_2mortal()やhv_store()のこと - EchizenBlog-Zwei
    kamipo
    kamipo 2012/09/26
  • 型一致ベースのテストに使えるPerlモジュール ~Test::Deep::Matcher,MouseX::Types~ | hirobanex.net

    PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 』って記事書いたら、ありがたいことにikasam_aさんに「Tes::Deep::Matcherを書いたよ」ってご紹介頂きましたので、続けざまに型一致ベースのPerlのテストについていろいろと思うところを整理しておきたいと思います。 【宣伝】Yapc::Asia2012のトークに応募しています この記事アップしようとして、先の記事みたら、私のブログからしたらたくさんはてぶが付いているじゃありませんか!!そして、そのわり・・・。だったので、最初に紹介します。 Perlの最大のイベントYapc::Asiaが今年も開催されますが、今年はトークに応募してみました。バッチ処理とかジョブキューシステムとのQudoとかについて普段やっていることをまとめて発表する予定です。ご興味ありましたら、是非『不安定な環境の中でのバッチ処

    kamipo
    kamipo 2012/08/03
  • PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 | hirobanex.net

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

    kamipo
    kamipo 2012/08/03
  • shipitのはじめかた - Perl日誌

    あらすじ macbookairを新調してから初めてshipitコマンドを実行したんですが、いろいろと忘れている事があったので備忘録を書いておきます。 Shipitを用意 インストールします。 % cpanm ShipIt設定ファイルを用意します。 % vi ~/project/your-Dist/.shipit steps = FindVersion, ChangeVersion, CheckChangeLog, DistTest, Commit, Tag, MakeDist, UploadCPAN git.tagpattern = %v git.push_to = origin cpan-upload-httpを用意 インストール % cpanm cpan-upload-http設定ファイル % vi ~/.pause user your-account password *******

    shipitのはじめかた - Perl日誌
  • Perlでハッシュのキーをdecode_jsonに渡すと壊れる - As a Futurist...

    タイトルの通りで、とりあえずperl-5.14.2/JSON 2.53でセグフォしました。。。 gfx 先生によると、実はハッシュのキーは単純な文字列じゃなくて、それをdecode_jsonに渡すと壊れる模様。 @riywo これは興味深いですね!ハッシュのキーは「FAKE」とよばれる特殊な文字列なのですが、それをJSON::XS::decode_json() に渡すとデータが壊れるようです。たとえば Dumper() ではなく $json に何か代入しようとしてもSEGVします。 — FUJI Goro (@__gfx__) June 15, 2012 perl-5.8.8 だと多分大丈夫そうな予感(use JSON::XSしてます)。あんまり色んなバージョンを手元に入れてないので試しきれてないですが、とりあえず報告ということで。 参考 - XS で共有文字列を活用する – Island

    Perlでハッシュのキーをdecode_jsonに渡すと壊れる - As a Futurist...
    kamipo
    kamipo 2012/06/16
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    kamipo
    kamipo 2012/04/26
  • ノンコードなファイルをモジュールと一緒にインストールしたければshareディレクトリを使う - ゆーすけべー日記

    Perlモジュールの話。当然のことかもしれないけど、知らなかったのでメモメモ。 配布したい小さなWebアプリがあって、出力のためのテンプレートファイルとかCSSとかどうやってモジュールに梱包したらよいだろうと思っていたんだけど、たぶんshareディレクトリを使うのがよさげ。Module::Installの場合はModule::Install::Shareにやり方とかが書いてある。通常はshareディレクトリにファイルを用意してMakefile.PLに以下でOK。 install_share 'share'; もしくはshareの部分を省略できる。 install_share; ちゃんとModule::Install::Shareのpodには、リードオンリーなコードとは関係ないファイルを同封したい時があるよね!例えば、XMLスキーマだったり、YAMLデータファイルだったり。だったらこれだよ!

    ノンコードなファイルをモジュールと一緒にインストールしたければshareディレクトリを使う - ゆーすけべー日記
    kamipo
    kamipo 2012/04/25
  • Parallel::Benchmark というモジュールを書きました - 酒日記 はてな支店

    プロセスを並列に立ち上げて負荷を掛けるようなベンチマークを実行することって、よくありますよね。(例 : クエリキャッシュを切ったほうがいイカ? ベンチマークしてみた - 酒日記 はてな支店) Perl で Parallel::ForkManager を使うとそういう処理も簡単に書けて便利なのですが、何度も同じようなコードを書くうちに、これもうちょっと抽象化したら使いやすいかも、と思って Parallel::Benchmark というモジュールを書いてみました。 リポジトリはこちらです。 https://github.com/fujiwara/p5-Parallel-Benchmark たとえばフィボナッチ数 fib(10) を求めるベンチマーク。 use Parallel::Benchmark; sub fib { my $n = shift; return $n if $n == 0 o

    Parallel::Benchmark というモジュールを書きました - 酒日記 はてな支店
  • Plack アプリで遅延ロードされるモジュールを見る

    アプリケーションで利用するモジュールは、できる限り先読み(preload)しておきたい。先読みしておけば、アプリケーション全体のメモリ消費が抑えられるし、遅延ロード(Lazy Load)のコストがなくなります。 モジュールの先読みは、例えば以下のように行います。 starman --preload-app MyApp app.psgi or starman -MFoo -MFoo::Bar -MBaz::DBI app.psgi あえて遅延ロードするという場合を除いて、先読みは行って損はないはず(小さいアプリだと、効果は小さいですお ^-^)。 Plack::Middleware::Debug::LazyLoadModules 明示的に use するモジュール群のピックアップはたやすい。なにせ明示されているから。しかし、暗黙に遅延ロードされてるモジュールやライブラリは調べてみると多く見つか

    Plack アプリで遅延ロードされるモジュールを見る
    kamipo
    kamipo 2012/02/19
  • にひりずむ::しんぷる - Data::Dumper と Data::Dump の実行速度の違い

    Data::Dump はデフォルトでそれなりに整形して表示してくれるのと、コンテキストを見てよしなに処理を変えてくれるので、スクリプトのデバッグなどに使うのはまぁまぁ便利だったりします。 が、この子は PurePerl で実装されているので実行速度が結構遅いです。 どのくらい遅いかというと use strict; use warnings; use Benchmark qw(cmpthese :hireswallclock); use Data::Dump (); use Data::Dumper (); my $data = { foo => [qw/bar/], bar => { hoge => 'piyo', }, heavy => So::Heavy::Object->new(10), }; cmpthese -1, { 'Data::Dump' => sub { my $res

    kamipo
    kamipo 2012/02/12
  • Asynchronous MySQL Queries in Perl Using DBD::mysql and AnyEvent | hoelzro [blogs.perl.org]

    A lot of people use MySQL, and these days, asynchronous-style programming has really taken off. If you're involved in both of these camps, you may be wondering how to send a query to MySQL and have it inform your event loop when it's ready with the results of that query. A common solution is to use a thread or child process for each connection, and exchange data using IPC. However, if you're using

  • perlbrew+Carton+Amon2+Test::mysqldみたいな - As a Futurist...

    モダンな感じで perl でウェブアプリ作りたいなーと思ってほげほげしてます。メモ書き。 最近の流行りでは、system perl なんてもう使わないわけで、自分で perl を make して入れるもの。それを簡単に管理できるのがperlbrew。で、アプリ毎に perl を入れてもいいなぁとは思ったんですが、さすがにそこまで仰々しくしたくはない。でも、CPAN モジュールについてはアプリ毎に依存が無いようにしたい(あるアプリが変にバージョンアップしちゃって他が動かないとか嫌)。 どうするのがいいかなーと色々考えたんですが、そういえば miyagawa さんのCartonというのが、依存関係やバージョンも含めて CPAN モジュール管理できるということでこれをアプリ毎に使うのが正統だろうなと思ったので使ってみた。 まずは perlbrew でインストール これは説明の通り。 $ curl

    perlbrew+Carton+Amon2+Test::mysqldみたいな - As a Futurist...
    kamipo
    kamipo 2012/01/02
  • Text::ASCIITableを 2文字幅の文字に対応させる - Shohei Yoshida's Diary

    Text::ASCIITableがmulti-width charactersに対応していないようですよ!腕に覚えのあるPerl Mongerにおかれましてはパッチを書いてみてはいかがでしょうか!! 2011-06-11 18:46:31 via Tween このようにText::ASCIITableはデフォルトでは半角文字だけで日語等の 全角幅の文字を含めるとテーブルにずれが生じてしまいます。 #!perl use strict; use warnings; use utf8; use Text::ASCIITable; binmode STDOUT, ":utf8"; my $japanese_table = Text::ASCIITable->new({headingText => '価格表',}); $japanese_table->setCols('名前', '値段', '在庫

    kamipo
    kamipo 2011/12/21
  • Text::ASCIITableによるアスキーテーブルレイアウト - Unknown::Programming

    MySQLの出力結果みたいなのが必要になったのでCPAN漁ってたらこんなの発見。 Text::ASCIITable - Create a nice formatted table using ASCII characters. - metacpan.org 地味に凄いめちゃ便利 use Text::ASCIITable; my @rows = ( [1,'foo','2011-03-16 11:22:33'], [2,'hogehogehoge','2011-03-17 11:22:33'], [3,'uwaaaaa','2011-03-18 11:22:33'], [4,'dio','2011-03-19 11:22:33'], [5,'jojo','2011-03-20 11:22:33'], ); my $t = Text::ASCIITable->new(); $t->setCol

    Text::ASCIITableによるアスキーテーブルレイアウト - Unknown::Programming
    kamipo
    kamipo 2011/12/21
  • テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test

    はじまりはパクり 最近あんまりコード書いてません、lestrratです。 テストを走らせる時にいろんな他のデーモンを立ち上げたり、そのテストのためだけの設定を先にしないといけなかったりとか色々ありますよね。結構長い間Makefile.PLはModule::Installで書いていたせいもあって、ちょっと前にxaicronさんが書いてたModule::Install::TestTargetでごにょごにょやってたのですが、ちょっと前にYappo/tokuhiromさんがproveで書いてたセットアップがまるっと自分の欲しい用途にも使える事に気づいたのでいろんなアプリケーションのテストをそのように変えてみました。 流れ proveでテストをすると、proveのプラグインを呼び出す設定ができるのですが、これをプラグインというよりテスト前に実行されるフックとして利用する事によって任意の設定用のコード

    テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test
  • DBI のお供になりそうなモジュールたち - Articles Advent Calendar 2011 Dbix

    師走にも関わらず風邪を引いてしましました。こんばんは、zigorou です。 今日は DBI のお供になりそうな拙作モジュールたちをご紹介します。 Data::RuledFactory p5-data-ruledfactory で開発中のモジュールです。 主要機能は大体出来てるんですが、後はテストを充実させて pod をきちんと書いたらリリースしようかなとか思ってる所です。 とはいえ現時点でもやりたいなと思っている事は既に出来ます。 論より証拠と言う事で、examples フォルダにある 001_define_rules.pl についてちょっと解説。 #!/usr/bin/env perl use strict; use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; use DateTime; use Data::RuledF

    DBI のお供になりそうなモジュールたち - Articles Advent Calendar 2011 Dbix
    kamipo
    kamipo 2011/12/12
  • Containerという名のPerlモジュール群 | hirobanex.net

    的には各PODを読めばいいと思うんですが、以下ではちょっとわかりづらい機能や注意したいことをあげていきたい思います。 インターフェースについて 個人的には、上述した例のようなContainerモジュールを継承したクラスを作成するサブクラス化インターフェースがあればいいんじゃないかな?と思うんですが、以下のようなオブジェクト型のインターフェースもあったりします。 use Object::Container; # initialize container my $container = Object::Container->new; # register class $container->register('HTML::TreeBuilder'); # register class with initializer $container->register('WWW::Mechanize

    kamipo
    kamipo 2011/12/12