static linkするにあたっての動機、諸注意(ハメがあるので必読)は [twitter:@sonots] さんの mysql2 gem を mysql5.6 の libmysqlclient.a と static link したい話 - sonots:blog を参照してください。 ここではDBD::mysqlをビルドする際のオプションのみ記します。 http://dev.mysql.com/downloads/mysql/ からダウンロードできるrpm MySQL-client-5.6.21-1.el6.x86_64.rpm MySQL-devel-5.6.21-1.el6.x86_64.rpm MySQL-shared-5.6.21-1.el6.x86_64.rpm の場合、 $ ldconfig -p | grep libmysqlclient libmysqlclient.s
The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending. <html> <head> <title>PerlGuts Illustrated</title> <!-- Generated, do not edit! Edit index-work.html instead --> <style> span.i58, span.i510 {display: inline;} img.i514, div.i514 {text-align: center;} img.i58, img.i510, img.i514, img.i518 {border: none;} </st
今回のお題 foo.so に含まれている関数 void func(void) をPerlから呼び出す。 プロトタイプ宣言の通り、引数は取らないし戻り値もない(あるいは見ない)。 やりかたはいくつかあって、 普通ならXSモジュールを書いて対応する。 ただこのシンプルな目的のためにXSモジュールを書くのはいささか大袈裟すぎる。 もう少し簡単にやろうと思うと Inline::C を利用する。 これでも別に構わなかったのだけど、今回はこのPerlスクリプトをほぼ同時に並列起動する可能性があり、コンパイルが多重に走るのを避けたい。 ということで、ちょっと珍しいアプローチとしてXSモジュールのベースに使われているDynaLoaderモジュールを直接使ってみることにした。 DynaLoaderとは? Perlで昔からあるコアモジュールで、*.soファイルをロードし、その中のシンボルをモジュール名前空間に
XSを使ってみたい.ついでにC++も勉強したい.とりあえず今日はShibuya.pm #9 のXSトークを何個か見てみた. PerlからXSの世界をながめてみる まずは,PerlからXSの世界をながめてみる.整数値は一度文字列化すると文字列表現がキャッシュされる.Devel::PeekでXSレベルの構造体をダンプするとわかるよ. コード #!/usr/bin/env perl use strict; use warnings; use Perl6::Say; use Devel::Peek; my $x = 100; say Dump $x; "$x\n"; # 文字列化 say Dump $x; 実行結果 SV = IV(0x80cebc) at 0x800b88 REFCNT = 1 FLAGS = (PADBUSY,PADMY,IOK,pIOK) IV = 100 SV = PVIV
This document provides tips and tricks for optimizing mod_perl performance. It discusses measuring Apache child process memory sharing to identify optimization opportunities. Key recommendations include spawning child processes during Apache startup instead of on request, and tuning configuration settings like MaxRequestsPerChild to control process recycling.Read less
Sub::Retry はクールでクレバーなモジュールなのですが、retry の条件が exception のみでちょっと悲しかったので、retry 条件をカスタマイズ出来るようにしてみました。すでに取り込まれて、0.03 としてリリースされています。 Sub-Retry-0.03 - FrePAN ユースケース としては、Cache::Memcached::Fast とかで set とか get に失敗したときに retry するとかが挙げられます。 第4引数に coderef を指定することで、retry 条件を変えられます。 retry したいときは、true を返し、そうでない場合は(つまり、成功した場合は)false を返すようにします。default は 以前の挙動と同じです。 coderef の引数は return value と同じなので、その結果如何で処理を切り替えることが
前提知識Perl5 は minor version 間ではバイナリ互換性が保証されているPerl5 の minor update では、bug fix しか基本的に行われないPerl5 Porters の保守的さ度合いは信用できるperlbrew でセットアップするときに気をつけることインストール名をデフォルトの perl-5.16.3 などとせず、perl-5.16 と minor version を含めないようにする。 例: perlbrew install perl-5.16.2 --as perl-5.16セキュリティフィックスがでた場合の処理chromaticの記事で知ったのだが、perlbrew には upgrade-perl というコマンドがあり、最新のバージョン(マイナーアップデートのみ)にアップグレードすることが簡単にできる。 perlbrew upgrade-perlこ
Perlでコマンドラインオプションをparseしようと思うと組込みモジュールとしては Getopt::Std と Getopt::Long がある。が、long style option *1 つまり --option-name のようなオプションを解釈してくれるのは Getopt::Long だけだ。なので普通はこちらを使おう。 ただし 絶対にデフォルト、つまり以下のようにして使ってはいけない。 use Getopt::Long; my (@primary, @secondary, $silent); GetOptions( "server-primary|p=s" => \@primary, "server-secondary|s=s" => \@secondary, "silent|S" => \$silent ); これダメ! 絶対ダメ! 死ぬ! 最初に結論を書く 必ず以下のように
注:本稿はまだ書きかけです!書きかけです!まだ一般に知らしめようとする前にブクマされました!w 間違いの指摘やコメント等は lestrrat @twitter にください! Perl環境の設定方法はここ数年で大きく進化し、変わってきました。ここではアプリケーションのデプロイも見据えた、モダンなperl環境の整え方を紹介していきます。具体的にはperl本体や外部モジュールのインストール方法を解説したのち、Perlを使ったアプリケーションを管理・運用していく際に依存関係等はアプリケーション毎に管理できるようにしてグローバル環境に可能な限り干渉しない方法を紹介します。 目次 1.1 Perl本体のインストール 1.2 依存モジュールの管理・インストール 1.3 Cartonによるアプリケーションの実行環境の構築 tl;dr 本稿を読む前にポイントだけ知りたい!という方向けのまとめです: OSに同
開発メモその3です。今回は Perl のおはなし。 何年も前に作ったウェブアプリケーションのコードを開いてみたら黒歴史なコードが出てきて憂鬱な気分になる、そんな経験ありませんか。私はあります。ずっとそんな現実から目を背けて生きてきました。 さて、先日 Perl + CGI で書いて Apache::Registry で高速化している、実行環境が Apache に癒着した CGIアプリケーションを発見しました。おえ〜っ。一から作り直したい気持ちをぐっと堪えて、これを Plack 化したりとリフォームしていくとしましょう。その過程を以下記します。劇的ビフォア・アフター! ・・・とかは期待せず、地道な変更を積み重ねていくのがコツです。 方針 いきなりコードをがりがり書き換えていくというよりは、試行錯誤のしやすい環境に移行させていきながらリフォームを進めます。遠回りですが、結果的にその後の運用が楽
perlでプログラムデバック時に Data::Dumper を使って変数内のデータ構造を見たいことがあると思います。 #!/usr/bin/env perl use strict; use warnings; use Data::Dumper; my $var = { array => [1,2,3], hash => { key1 => "val1", key2 => "val2" }, coderef => sub { "this is coderef"} }; print Dumper $var; 普通のarrayやhashであれば dumper メソッドを使い構造を確かめることはできますがcode reference(コードリファレンス)を見ようとすると sub { "DUMMY" } となってしまい内容が分からず枕を涙で濡らすことになってしまいます。 $VAR1 = { 'has
2010年08月23日08:00 カテゴリLightweight Languages perl - Data::Decycle で悪循環を断とう! Data::Decycleというモジュールをリリースしたのでお知らせします。 /lang/perl/Data-Decycle/trunk - CodeRepos::Share - Trac dankogai's p5-data-decycle at master - GitHub Dan Kogai / Data::Decycle - search.cpan.org Perlは循環参照が苦手 有名な話ですが、Perlで循環参照を作ると、プログラムが終了するまでその分のメモリーは解放されません。 perlobj - search.cpan.org use strict; use warnings; { package Dummy; sub new
2007年02月11日13:45 カテゴリLightweight Languages perl - B::Deparse 尻馬乗るべし、ということでB::Deparseの紹介。 いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。実は私も、デバッガーはperl -de1ぐらいしか使っていない(perl -de1は非常によく使うので、Terminal.appのウィンドウの一つがそれ専用になっている。スクリプト言語のインタラクティブな利用法に関しては以前「404 Blog Not Found:LL Intaractive」にまとめたのでそちらをご覧頂くとして、ここではなぜスクリプト言語では滅多にデバッガーを使わないかをおさらいした
(There is the Japanese version bellow) There are reasons why Xslate so fast, so this article explains them, which will be added to the Xslate document. Taking precompiling style Template engines which precompile templates are always faster than line-by-line interpreters. Almost all the engines implemented in scripting languages (e.g. Template-Toolkit or Text::MicroTemplate) takes precompiling styl
TTの158倍速いというxslateですが、このベンチマークはSyntax::Kolonを使っています。 TT互換なSyntaxであるところの、Syntax::TTerseを使うとどうなるのかなということでhttp://github.com/nihen/p5-Text-Xslate/tree/add_tterse_benchのbenchmark/x-rich-enc.plとbenchmark/x-poor-env.plにTTerseも追加してみました。 以下結果 %perl benchmark/x-rich-env.pl Perl/5.12.1 i686-linux Text::Xslate/0.1056 Text::MicroTemplate/0.15 Text::MicroTemplate::Extended/0.11 Template/2.22 Text::ClearSilver/0
こんにちは、最近 PSP1000 の電池が一瞬で切れてしまってまともにゲームができない xaicron です。 さて、みなさんは DBI から吐かれた SQL をみたいなーと思うこともあるでしょう。 そんな時は、$ENV{DBI_TRACE} = 2 とかしてみると、ドバーッといっぱいデバッグログが出てきて、 その中に実際に発行された SQL がちょろっと出てたりするのでこいつを頑張ってパースすればいい感じですね! っていうのはだいぶ面倒だったりしますね。あたりまえですね。 そこで、use するだけでとりあえず全部の発行された SQL を STDERR にはいてくれるモジュールを書きました。 その名も DBIx::QueryLog です。そのままですね。 つかいかた 使い方は至極簡単で、どっかで適当に use するだけです。ほかには何もいりません。 そうすると、以下のような感じで STDE
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く