タグ

perlとtipsに関するemergentのブックマーク (13)

  • split の研究 - bkブログ

    split の研究 split 関数の挙動が言語ごとに微妙に異なると知人と話題になったので調べてみました。結果はまとめをどうぞ。 Ruby まずはRubyから調べてみます。irb を使って調べました。 % irb ... まずは普通に分割 >> "a,b,c".split(",") => ["a", "b", "c"] 末尾に空要素があると、省略されてしまう >> "a,,c,,".split(",") => ["a", "", "c"] 末尾の空要素を省略しないためには -1 が必要 >> "a,,c,,".split(",", -1) => ["a", "", "c", "", ""] 空文字列だと結果も空 >> "".split(",") => [] -1 をつけても同様 >> "".split(",", -1) => [] 分割パターンを指定しない場合も同様 >> "".split

  • Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記

    先日のShibuya.pm #9のLightening Talkで「gdbでXS on mod_perlをデバッグ」という話をしてきました。XSを使い出すと、従来のPerl的デバッグだけでは不十分なのでgdbをうまく使って、効率的にデバッグしましょう、という話です。実は、はてな社内では1年近く前に勉強で話したネタだったのですが、ようやく公開することができました。 Shibuya.pmでは5分という枠があったのでショートver.でしたが、ここでは制限はないので、来のロングバージョンの資料をアップします。ちょっと公開できない情報が混っていたので、xxxで隠していますが、ご了承ください。 ちなみに、Rubyとかでも似た感じでデバッグできると思うので、そちらの人も参考にしてください。長いよ!という人は、最後の「これは設定しておけ的gdb初期化マクロ」だけでもどうぞ。かなり便利です。 (資料公開が

    Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記
  • Hadoop Streaming - naoyaのはてなダイアリー

    id:naoya:20080511:1210506301 のエントリのコメント欄で kzk さんに教えていただいた Hadoop Streaming を試しています。 Hadoop はオープンソースの MapReduce + 分散ファイルシステムです。Java で作られています。Yahoo! Inc のバックエンドや、Facebook、Amazon.com などでも利用されているとのことです。詳しくは http://codezine.jp/a/article/aid/2448.aspx (kzk さんによる連載記事)を参照してください。 Hadoop Streaming 記事にもあります通り、Hadoop 拡張の Hadoop Streaming を使うと標準入出力を介するプログラムを記述するだけで、Hadoop による MapReduce を利用することができます。つまり、Java 以外

    Hadoop Streaming - naoyaのはてなダイアリー
  • YappoLogs: ShipItつかわなくて良いのは小学生まで

    ShipItつかわなくて良いのは小学生まで 超クールな CPAN リリースツール 1 選。ShipIt がスバラシイ件 - TokuLog 改め だまってコードを書けよハゲが火種になってるけど、今ShipItが熱い! という事でちょっと前からShipItに移行してます。 一昨日辺には、オレオレpmsetupもplaggerからコピペしてきたリリースツールを消してShipItしてます。 http://coderepos.org/share/changeset/3295 結構どうでも良いBKがあって、cpanに上げる時にShipIt::ProjectType::Perlを利用してperl Makefile.PLするフェーズがあるのですが、ShipIt::ProjectType::Perl::MakeMakerの実装を見てわかるとおり sub prepare_build { my $self =

  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • Plagger + Catalyst = Plalyst or PlaCata ? メソッド (Yusukebe::Tech)

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    Plagger + Catalyst = Plalyst or PlaCata ? メソッド (Yusukebe::Tech)
  • 技術メモ帳: [unix]複数のファイルの名前をまとめて変更する

    複数のファイルの名前を変更する際に、 便利なコマンドというものがある。 いくつかご紹介させていただこう。 カレントディレクトリにあるファイルの名前を、 たとえば、*.html を *.htm と名前を変更するという課題に対し どのぐらいエレガントに書けるかというのを比較してみる。 まず、普通にやったらどうだろう。 おそらく、for文 をつかうことだろう。 for file in *.html do base=`basename $file .html` mv $base.html $base.htm; done; zshだともうちょっとスマートにかけて、 for file in *.html do mv $file:r.html $file:r.html; done; こんな具合。 for文 が嫌いなネット右翼のために、 xargs を使ってこの問題を解いてみよう。 ls -1 *.htm

  • 一足早く「Plagger」の便利さを実感してみよう − @IT

    2006年初頭から「Plagger」という技術が、一部で話題になりました。まだまだ知名度が低い「Plagger」ですが、便利でカスタマイズ性が高いものなので、2007年では爆発的に流行するかもしれません。豊富なプラグインを自在に組み合わせ、欲しい情報を収集し、加工して出力するPlaggerの仕組みや使い方を紹介します。 1. 何でもできる? Plaggerの正体に迫る 今回は話題のPlagger(プラガー)を取り上げます。 この連載を読んでいる読者の皆さんは、ネットワーク技術や知識に興味を持っている人が多いでしょうから、「Plagger」という単語は一度は耳にしたことがあるでしょう。しかし、Plaggerという言葉を聞いたことはあっても、いったいどんなものかピンと来ない人もいるかもしれません。今回はPlaggerがどういった働きをするか? その動きの仕組みなどを中心に紹介していきます。 ●

    一足早く「Plagger」の便利さを実感してみよう − @IT
  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

  • CLON - 2006/09/15 - plaggerライクなHTTP::Proxyフロントエンドスクリプト

    を書いた。会社のrepos内にアップしてしまったのでここに貼り付けちゃう。 #!/usr/bin/env perl use strict; use warnings; use File::Spec; use File::Find::Rule; use FindBin; use Getopt::Long; use Pod::Usage; use HTTP::Proxy; use YAML; # load config my $config = do { my $config_file = File::Spec->catfile( $FindBin::Bin, 'config.yml' ); my $port = 0; my $host = ''; my $help = 0; GetOptions( 'port|p=s' => \$port, 'host|h=s' => \$host, 'co

  • Perl の数値変換

    Last Updated: 2002/03/26 Perl で、16進文字列、10進整数、2進文字列、バイナリー文字列の相互変換を行うための、スクリプトメモです。 特に断っていない限り、Perl 5.001 以上で動作します。 目次 16進文字列からの変換 10進整数からの変換 2進文字列からの変換 バイナリー文字列からの変換 16進文字列→10進整数への変換 hex() 関数は、16進文字列を整数値に、手軽に変換できます。 $num10 = hex("4A"); # $num10 には 74 が入る $num10 = hex("FFFFFF"); # $num10 には 16777215 が入る 余談ですが、数値リテラル中では 0x に続けて 16 進数で記述することで、数値を表すことができます。 $num10 = 0x4A; # 74 $num10 = 0xFFFFFF; # 1677

  • いまさら聞けない? 初心者向けPlagger設定覚え書き その1 - Muibrog

    Plaggerをいじってみて、とても便利でなにより楽しくてしょうがない。まだ「それPla」ってほどなんでもできるわけじゃないけど、RSSを配信してないサイトから欲しい情報を取り出すことはできるようになった。意外と初心者向けの手引き的なものが見つからなかったので、初心者向けにメモしておきます。まだ簡単なことしかわからないし、間違ったことも書いてあるかも知れないのでいろいろ試してみながら確認してください。 まずはFilter::EntryFullText(みんなEFTって呼んでるみたい)について。 企業ニュースサイト(新聞社とか)のトップページにあるような自分のサイト内へのリンクのあるHTMLをフィードと変換するときに使うFilter。下のはYOMIURI ONLINEの科学のトップページから科学ニュースを取り出すためのyamlWikipedia)。 author: Toshi custo

    いまさら聞けない? 初心者向けPlagger設定覚え書き その1 - Muibrog
  • Perlモジュール/WWW::Mixi - Walrus, Digit.

    Mixiに簡単にアクセスするためのLWP::UserAgentライクなモジュール。 更新情報、不具合情報などはmixiのWWW::Mixiコミュニティにも挙げていきます。 WWW::Mixiコミュニティ WWW::MixiモジュールはCPANにも登録済みです。 Mixiに特化したLWP::RobotUAモジュールのサブクラスです。 WWW::MixiはふつうのLWP::UserAgentのように使うことができます。 例えば、次のような手順でCookieを有効にし、ログインし、トップページ(home.pl)を取得することができます。 この書き方であれば、use WWW::Mixiの代わりにuse LWP::UserAgentとかuse LWP::RobotUAとして、WWW::Mixi->newの行を適当に書き換えてやると、それでもトップページの取得ができます。 use WWW::Mixi;

  • 1