タグ

tipsとperlに関するsbg3のブックマーク (9)

  • 複雑なデータ構造の中にうまっているデータのパスをさがす方法 - tokuhirom's blog

    Perl5 の場合、Data::DPath をつかえば、 my $data = { foo => { bar => 'candy', }, }; のようなデータから、 say dpath('/foo/bar')->match($hashref); などとして、candy を簡単にとりだすことができます。 しかし、ここで、たとえば以下のように複雑なデータになってしまった場合は、DPath をつくるのがまじめんどいかんじになります。 my $data = { foo => { bar => 'candy', boz => 3, iyan => { bakan => 7, yappo => 'candy', dan => [ 'suspender', 'hige', 'candy'] }, }, }; そんな場合、以下のようなコードをささっと書いてcandyをさがしましょう。 #!/usr/bi

    sbg3
    sbg3 2014/02/24
  • 安定的な Perl アプリケーション運用のための perlbrew 運用テクニック - tokuhirom's blog

    前提知識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

  • Kazuho@Cybozu Labs: crontab を使って効率的にサービス監視する方法

    監視とは継続的なテストである、という話 (もしくは cronlog とテストスクリプトを組み合わせた監視手法について)に続きます 今日ようやく、積ん読状態だった「Software Design 2010年1月号」を手に取ったのですが、特集が「今日から使えるスクリプト満載! [プロ直伝]お手軽サーバ監視術」。興味深く拝読したのですが、もっと楽ができるのにと思うところも。ちょうど、昨年末に運用しているサービス「パストラック」のサーバを移転し、crontab と perl で書かれたスクリプト群を使った監視環境を構築したところなので、そこで使っているスクリプト cronlog を紹介したいと思います。 特集の前書きにも書かれていることですが、サーバやネットワーク機器が多数ある環境なら、Nagios を始めとする、専ら監視のために作られたソフトウェアを使って、監視システムを構築すべきです。逆に小規

  • Perlまわりの環境を整備した - はこべにっき#

    Leopardにした and Perl5.10-RC1が出た機会にPerl環境の整備をしたのでそのメモ。要求としては以下。 MacPortsのPerl5.8を使いたい MacPortsの管理領域(/opt/local)は汚したくない 最新のCPANモジュールは使いまくりたい Perl5.10を簡単に試したい これまでも、MacPortsでインストールしたPerl5.8を使ってた。そのPerlでCPAN使うときには、 $ sudo -H cpan としてたんだけど、これはMacPortsの管理領域をいじるので若干気持ち悪かった。 自分でコンパイルしたPerlを使ってもよかったんだけど、SubversionのPerl bindingとかのコンパイル時にPerlを求めるやつのインストールとかはMacPortsでやるのががだんぜん簡単なので、そのへんは楽をしておきたい。 そこで、CPANのモジュー

    Perlまわりの環境を整備した - はこべにっき#
  • 動的パッチは一つのモジュールにまとめてuseした方が良いかも - ヒルズで働く@robarioの技ログ

    言語的に云々という話ではなくて、複数人で開発するときにハマりそうなので(というかハマったので) 動的にパッチを当てるには # gotoするよ版 BEGIN { use UNIVERSAL::require (); if ( Foo->require ) { my $orig = Foo->can('func'); no warnings qw(redefine); *Foo::func = sub { my ($foo) = @_; # shiftしない方が楽なことが多い # pre-process... goto &{$orig}; # post-processが必要な場合は記事の最後で }; } } とするのが定石(Hook::LexWrap使えっていう話もあるけど筋とは違うので割愛)だと思いますが、これをどこでやるかという話。 とあるCatalystControllerで変なデバッ

    動的パッチは一つのモジュールにまとめてuseした方が良いかも - ヒルズで働く@robarioの技ログ
    sbg3
    sbg3 2009/06/01
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    sbg3
    sbg3 2009/05/26
  • 404 Blog Not Found:perl - ワンライナーの書き方入門

    2008年03月30日19:45 カテゴリLightweight Languages一日一行野郎 perl - ワンライナーの書き方入門 まあ、ruby のコマンドラインオプションって、Perl由来ですから。 Rubyでワンライナーを書く方法のまとめ まぁ、Perlもあるしあんまり需要が無いのかも知れませんが。 というわけで、Rubyistにも役立つPerlのワンライナー入門です。 基中の基 コマンドとしてのperlは、スイッチがない場合、引数はスクリプト名として扱われます。 % cat hello.pl print "Hello, world!\n"; % perl hello.pl Hello, world! % コマンドライン中の文字列をスクリプトとして解釈させるには、-eを使います。 % perl -e 'print "Hello, World!\n"' Hello, worl

    404 Blog Not Found:perl - ワンライナーの書き方入門
    sbg3
    sbg3 2008/04/02
  • perl - the best friend of find(1) : 404 Blog Not Found

    2008年02月24日22:45 カテゴリLightweight Languages perl - the best friend of find(1) find(1)ネタというのも、定期的にネットを賑やかにする時候ネタになりつつあるようです。 いまさらxargsの便利さを主張してみる findでファイル検索入門 - builder by ZDNet Japan というわけで、いまさらfindとperlの相性のよさを再確認してみることにしてみます。 基形 まずは、これを覚えておきましょう。 find [options and args of find] -print0 | perl -l0ne 'perl program' findが見つけたファイルを一つ見つけると、perlの$_にそのファイル名が入るのでそれに対して何らかの処理を行います。 perl側の-l0neというのは、以下と同等

    perl - the best friend of find(1) : 404 Blog Not Found
  • perl - $scalarの中身が数値か否かを判定する : 404 Blog Not Found

    2007年09月21日00:45 カテゴリLightweight Languages perl - $scalarの中身が数値か否かを判定する 詳しくはCookbookの2.1を参照してもらうとして、これは以外とよく出てくる設問なので。 Perl Cookbook (English) Christiansen / Torkington [邦訳: Perlクックブック] Kazuho@Cybozu Labs: MySQL の高速化プチBKところで、実数の場合はどうすればいいんでしょうね。 Scalar::Util::looks_like_number() Perl 5.8.1以降であれば、第一選択はこれです。第一引数の結果が数値か否かを、Perl APIに直接問い合わせるので高速です。ベンチマークを最後に示しますが、真偽ともに正規表現と比較して250倍高速です。 Regexp::Common

    perl - $scalarの中身が数値か否かを判定する : 404 Blog Not Found
    sbg3
    sbg3 2007/09/21
  • 1