タグ

perlに関するemergentのブックマーク (63)

  • Data::Dumper - perlデータ構造の出力/eval両用文字列化

    名前 Data::Dumper - perlデータ構造の出力/eval両用文字列化 概要 use Data::Dumper; # simple procedural interface # 簡単な関数的インターフェース print Dumper($foo, $bar); # extended usage with names # 名前付きの拡張用法 print Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]); # configuration variables # 設定変数 { local $Data::Dumper::Purity = 1; eval Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]); } # OO usage # OO 用法 $d = Data::Dumper->new([

  • perlの特殊変数一覧

    $0の使用例 [例: test.pl] #!/usr/bin/perl print "$0\n"; [実行結果] [testuser@server testuser]$ ./test.pl ./test.pl [testuser@server testuser]$ /home/testuser/test.pl /home/testuser/test.pl [例 argv.pl] #!/usr/bin/perl print @ARGV"; [実行結果] [testuser@server testuser]$ ./argv.pl a b c d e a b c d e « Digest::SHA | | XML::RSS::Parser »

  • 404 Blog Not Found:perl - There's more than one way to die

    2008年05月10日15:00 カテゴリLightweight Languages perl - There's more than one way to die いよいよ来週はYAPC::Asia::2008ですが、Hotel DANは日から開業。我が家では日から20日までが「YAPC旬間」です。 というわけで、その間は少なくとも一つはperlがらみのentryにしていく所存です。 で、第一回はいきなりdieの話題です。 開発日誌 pp-perl: Perlのエラー処理プログラムを停止して、メッセージ(LIST)をSTRERRに出力します。 間違っていませんが正しいとは言えません。 die = throw die()とは何か? まずは、以下のコードをご覧下さい。 [Run via codepad] eval { my $zero = 0; my $dead = 1 / $zero;

    404 Blog Not Found:perl - There's more than one way to die
  • perl - use Carp; # warn() と die() だけじゃなくて : 404 Blog Not Found

    2008年06月30日04:00 カテゴリLightweight LanguagesTips perl - use Carp; # warn() と die() だけじゃなくて 以下のエラー処理の方法にちょっと口を挟みたくなったので。 エラー処理を行う。 - サンプルコードによる Perl 入門 warn() vs. die() まず、warn()の使い方。エラーに対して使ってはいけません。warnはその名の通り、あくまでもエラーではなく警告です。エラーの際にはdie()を使わなければなりません。 警告とエラーの違いですが、警告は「続けて処理してもいいけど、これはあなたの意図ではないかもしれません」という場合、エラーは「このままでは処理を続けられません」という場合です。 たとえばperlの場合、抜けた引数はundefなので、数値としては0、文字列としては''として解釈されます。それらをデフ

    perl - use Carp; # warn() と die() だけじゃなくて : 404 Blog Not Found
  • 置換後の文字列を別変数に格納する - Perl勉強メモ アルパカDiary出張版

    my $var = "hogehoge123"; $var =~ s/hoge/fuga/g; このようにPerlの一般的な置換を行うと変数そのものを置換する。 しかし、置換後の結果を別変数に格納したい場合もある。 その場合は以下のように記述する (my $tmp_var = $var) =~ s/hoge/fuga/g;

    置換後の文字列を別変数に格納する - Perl勉強メモ アルパカDiary出張版
  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • はてなブログ | 無料ブログを作成しよう

    台北市立動物園と迪化街めぐり 子連れ台湾#5 年越し台湾旅行5日目、レジャーや友人との事を楽しむ日です。前日の様子はこちら www.oukakreuz.com 台北市立動物園へ パンダ館 パンダが見られるレストラン 迪化街へ 林茂森茶行でお茶を購入 小花園で刺繍グッズを購入 黒武士特色老火鍋で夕 台北市立動物園へ 松…

    はてなブログ | 無料ブログを作成しよう
  • tips - 十まで数える二千百一の方法 : 404 Blog Not Found

    2009年05月01日18:15 カテゴリTips tips - 十まで数える二千百一の方法 絶望した!誰も「笑」ってないことに絶望した! 斬新な数の数え方を考えた。 - NaokiTakahashiの日記 よく「正」って字を書いて数を数えるでしょ。一画ずつかいて、ひとつで5。 あれを「殺」って字にしたら一文字で10数えられるんじゃないかとさっき思いついた。十画だから。で、十数えた、じゃなかった笑った後に、気になったわけです。十画の字ってどれだけあるだろうか、と。 こんなにありました。 㑣㑥㑦㑧㑨㑩㑪㑫㑬㑭㒭㓐㓑㓒㓬㓭㓮㓯㓰㔝㔞㔟㕋㕌㕍㕖㖏㖐㖑㖒㖓㖔㖕㖖㖗㖘㖙㖚㖛㖜 㖝㖞㘣㘿㙀㙁㙂㙃㙄㙅㙆㛍㛎㛏㛐㛑㛒㛓㛔㛕㛖㛗㛘㛙㛚㛛㛜㛝㛞㛟㛡㛢㛣㛤㝂㝃㝗㝘㝙㝚 㝶㝸㞂㞗㟇㟈㟉㟊㟋㟌㟍㟎㟏㟐㟑㟒㟓㟔㟕㟖㠫㠬㡇㡈㢃㢄㢅㢆㢇㢸㢹㣢㣣㤟㤠㤣㤩㤪㤫㤯 㤱㤳㤴㤶㤷㤸㤹㤼㤽㦴㦵㦶㧬㧭㧱㧲㧴㧵㧶㧷㧸㩻㩼㪇㪈㪉㪰㪶㪾㪿㫅

    tips - 十まで数える二千百一の方法 : 404 Blog Not Found
    emergent
    emergent 2009/05/03
    プログラムで漢字の画数を数える
  • #!,alt-ctrl-del,char **argvって読める?記号検定 : 404 Blog Not Found

    2009年04月23日15:30 カテゴリiTechLogos #!,alt-ctrl-del,char **argvって読める?記号検定 漢字よりこっちの方が大事だろJK 押下、筐体、輻輳…って読める?漢字検定エンジニア版/Tech総研 以下の表記を読み上げなさい。 CGIが動かない?chmod +xしましたか? #!の後はどうなってますか? 画面が真っ青でALT-CTRL-DELを押すしかないオレ真っ青。 それでは早速書きましょう。int main(int argc, char **argv) qsortの比較関数の型はint (*compar)(const void *, const void *)です。 シングルユーザーモードで止まってる?fsck -yって打ってみて。 SCSIって最近聞きませんねえ。 アドレスは222.co.jp。 以下の読みを書きなさい。 私の名前ですか?U+

    #!,alt-ctrl-del,char **argvって読める?記号検定 : 404 Blog Not Found
  • perl - B::Concise で VM の気持ちに触れる : 404 Blog Not Found

    2009年03月27日19:30 カテゴリLightweight Languages perl - B::Concise で VM の気持ちに触れる こういう時に便利な標準モジュール、B::Conciseを紹介します。 YappoLogs: CPUの気持ちは大事だけど、VMの気持ちも考えようよ ブロックがあるという事は、スコープがあると同義なのは当たり前ですが、スコープが変わるという事はレキシカル変数の処理などをやらなきゃいけないわけで、{}があるだけでもPerlは処理をいっぱいするわけですコマンドラインから B::系列のモジュールは、こちらが標準的な使い方。 % perl -MO=Concise -e '{$a=1}' 9 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 2 -e:1) v:{

    perl - B::Concise で VM の気持ちに触れる : 404 Blog Not Found
  • 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

  • YappoLogs: CPUの気持ちは大事だけど、VMの気持ちも考えようよ

    CPUの気持ちは大事だけど、VMの気持ちも考えようよ CPUの気持ちになってプログラムを書くということ Kansai.pm#11 参加記その1 - プログラマになりたい ちなみに、下記のコードはデータハザードを解消する為のコーディング例です。データハザードは、命令が利用するデータ間に依存関係がある場合に発生します。前の命令が終わらないと後ろの命令が実行できないとか。ですので、それを解きほぐしてやれば、並列で処理が出来るようになります。という感じでnaoyaさんもぶこめで loop unrolling は perl でもちゃんと効果があるって書いてるけど、それforブロック(スコープ)が一段増えてる事で差が出てるんじゃないかと思うわけです。はい。 以下検証コード use strict; use warnings; use Benchmark qw(:all); cmpthese(500000

  • 芸能人の相関関係を探ってみるスクリプト - download_takeshi’s diary

    ちょっとした実験をしてみました。芸能人の相関関係を機械的に探索してみます。 具体的には「○○というタレントと関係が深い芸能人は?」といった、芸能人にフォーカスした類似検索みたいな実験です。 技術的には「潜在的意味インデキシング」(Latent Semantic Indexing)といった手法を使います。 これは普通は自然言語処理の世界で使われるテクニックですが、なにも言語だけでなく他のデータ素材でも面白い結果が得られるかもしれないので、やってみようという試みです。 以下に大まかな手順をまとめます。 wikipedia から有名人のリストを抽出 それらの有名人リストについて、一人ずつ「誰と関連が深いか」を集計。具体的には有名人個々のwikipediaのページ中に、先ほど抽出しておいた人名リストとマッチする人名がどれだけ掲載されているかをピックアップしていきます。 上記の方法で有名人の間の相関

    芸能人の相関関係を探ってみるスクリプト - download_takeshi’s diary
  • del.icio.us から同期してるはてブのタグが変なことに - YAA's personal log (2008-02-27)

    _ 日記溜めすぎ なんか忙しかったり、めんどくさかったりで、1ヶ月以上日記書いてなかった。 ローカルにはちょこちょこ書いてたりするので、 そのうち補完していく所存であります。 _ del.icio.us から同期してるはてブのタグが変なことに plagger を使って del.icio.us から同期してるんだが、 はてブのタグが変なことになっているのに気付いた。 「apple mac」みたいに、space で split する前の状態でまるごとタグになっちゃってる。 これは来、 P::P::Filter::DeliciousFeedTags を使えばよろしく split してくれる。 でも使ってるのになぜかうまくいってない。 調べてみたところ、 http://del.icio.us/rss/ の feed が http://feeds.delicious.com/rss/ にリダイレク

    emergent
    emergent 2009/01/06
    今頃気づいた…
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • Wavelet Tree - naoyaのはてなダイアリー

    圧縮全文索引の実装などでしばしば利用される Rank/Select 辞書と呼ばれるデータ構造があります。詳しくは参考文献を参照していただくとして、今回は一般の文字列に対して効率的に Rank/Select を可能とするデータ構造である Wavelet Tree (ウェーブレット木) のライブラリを作りました。 http://github.com/naoya/perl-algorithm-wavelettree/tree/master my $wt = Algorithm::WaveletTree->new("abccbbabca"); is $wt->rank(6, 'a'), 2; is $wt->rank(6, 'b'), 3; is $wt->rank(9, 'b'), 4; is $wt->select(0, 'a'), 0; is $wt->select(1, 'a'), 6;

    Wavelet Tree - naoyaのはてなダイアリー
  • 京都観光を終えて - mala

    Shibuya.pm Technical Talk #10 (2008-11-27) mala 最初: sm5377260 (lestrrat) マイリスト: mylist/9691133http://shibuya.pm.org/blosxom/techtalks/2008011.html

    京都観光を終えて - mala
  • ギターのタブ譜を perl で簡単に出力するモジュールを作ってみた : にぽたん研究所

    一個前のエントリで、はてなダイアリーのウクレレ記法をけっこう使ってるだなんだって話をしましたが、私はどちらかというとウクレレとか全然弾かなくて、ギターばっかり弾いてたりするので、なんか Music::Image::Chord という、それっぽいモジュールがあったので使ってみたら、何だか色々と残念な結果だったなんてつぶやきました。 で、やっぱ、ギターのタブ譜を出力するのは大変だなーって思ってたら、コメント欄でようちゃんから むしろ、GD::Tab::Ukuleleを改造する方向でどうでしょう? と提案してもらったので、その方向で検討してみました。 まず、ギターの場合、ウクレレと違って弦が 6 なので、2 追加して、フレットの長さを変えました。 それにともない、画像のサイズはウクレレのものより大きくしました。 ギターには、ミュート弦という概念があって「この弦は音を鳴らさないんだよー」なんて

  • Makefile.PLを書こう

    今日で株式会社ソフリットが設立されて1年です。また「会社を作って1年たったまとめ」を書こうかとも思ったんですが、あんまり面白くならなかったので、今年覚えたことのうちでいちばん重要そうなことをまとめようと思います。それは「Makefile.PLを書こう」ということ。 ではさっそく、これからHoge.pmというperlモジュールを書くとしましょう。 [danjou@guido] $ mkdir Hoge [danjou@guido] $ cd Hoge ここでおもむろにMakefile.PLを書き始めます。 [danjou@guido] $ vim Makefile.PL use inc::Module::Install; WriteAll; とりあえずこれだけ書いて保存します。そしてperl Makefile.PLとして実行します。 [danjou@guido] $ perl Makefil

  • 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