タグ

perlに関するnamaniku_keroのブックマーク (24)

  • Perlでroot権限で動作させる場合の注意点 - pepponの日記

    root権限で動作させたい常駐プログラムを作って動作させてみたものの、うまくいく場合とうまくいかない場合があって、かなりはまってしまった。 シェル上でrootユーザでperlプログラムを実行した場合と、なんらかのトリガー(メールや、xmlrpcとかでコマンドを受け取って)を経て自動で実行させるときの違いを調べてみた。 perlsec - Perlセキュリティ http://perldoc.jp/docs/perl/5.6.1/perlsec.pod Perl は、そのプログラムが異なる実ユーザー ID、実効ユーザー ID、実グループ ID、実効グループ ID を使って実行されることを検出したときに、自動的に 汚染モード (taint mode) と呼ばれる特別なセキュリティチェックのセットを有効にします。 UNIX パーミッションにおける setuid ビットはモード 04000 で、

    Perlでroot権限で動作させる場合の注意点 - pepponの日記
  • Encode::decode_utf8()であってもis_utf8()を使うべき理由 - このブログはURLが変更になりました

    404 Blog Not Found:#perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 Validationの観点だけではなく、簡潔性の観点からも、Encode::decode_utf8()はおすすめです。すでに UTF-8 flag がついた文字列はそのままコピーするだけなので、条件分岐も不要です。 これは厳密にはこうなる。 Validationの観点だけではなく、簡潔性の観点からも、Encode::decode_utf8()はおすすめです。すでに UTF-8 flag がついた文字列はEncode-2.13以降であればそのままコピーするだけなので、条件分岐も不要です。 Encode-2.12ではそのままコピーしてない。そのままコピーするのは2.13以降での実装。 --- Encode-2.12/Encode.pm 2005-0

    Encode::decode_utf8()であってもis_utf8()を使うべき理由 - このブログはURLが変更になりました
  • 初めてのCatalyst入門(1) PerlによるWebフレームワークCatalystとは?

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    初めてのCatalyst入門(1) PerlによるWebフレームワークCatalystとは?
  • 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

  • perl - use encoding; #は黒歴史 : 404 Blog Not Found

    2009年06月08日14:30 カテゴリLightweight Languages perl - use encoding; #は黒歴史 ぎゃあぁぁ length関数で文字列の長さを求める - perl初心者BLOG - Hatena::Group::Perl語の文字数を正確に求めたい場合、use encodingを指定する use encoding;は、jperlなど、かつて存在したL10Nされたperl用に書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。こういう目的で利用すべきではありません。 このあたりのことは、以前 404 Blog Not Found:perl - no encoding; # whenever possible でも書いたのですが、大事なことなのでまた書きます。 スクリプトはUTF-8で書き、use utf8;する のがモ

    perl - use encoding; #は黒歴史 : 404 Blog Not Found
    namaniku_kero
    namaniku_kero 2009/06/09
    こういうエントリだけ書いていればいいものを・・。
  • HTMLから本文を抜き出せるモジュールHTML::ExtractContent - perl-mongers.org

    This domain may be for sale!

  • Perl 5.8.x における日本語コード変換★

    Perl 5.8ではEncode.pmが標準モジュールとなり、多バイト文字を標準で簡単に扱えるようになりました。が、jcode.plやJcode.pmを用いたコード変換の経験があると、逆にこれが仇となって文字化けの嵐に遭います。(私の場合そうだったというだけで、普通はそんなこと無いのかもしれないのですが。)漸く最近になって基的な考え方が飲み込めるようになって来たので、この辺をまとめておこうと思います。なお、メモは新たにPerl 5.8.x的なPerlスクリプトを書く際に気をつけることをまとめたものであり、基的には既存のスクリプトにPerl 5.8 + Encode.pmを適用するためのものではありません。また、utf8でスクリプトを書くことを前提にしています。が、どちらにせよ、この知識は参考になると思います。(たぶん。) 文冒頭ですが、まず参照先を示しておきます。以下のドキュメント

  • Wide character in print at ...

    [Perl] Wide character in print atというエラーはUTF-8フラグが付いた文字列をprintしようとしているからである。なのでUTF-8フラグを取り外してからprintすればエラーがでなくなります。UTF-8フラグが付いているかどうかはutf8::is_utf8を使用すればよい。 #UTF8フラグが付いているかの確認 utf8::is_utf8では実際の文字列がUTF-8かどうかではなく、あくまでフラグがついているかどうかを確認します。そのため、UTF-8の文字列もフラグが付いていなければ上記の出力はno flagとなります。またutf8::is_utf8はuseしなくても使用できる。useすると全然違う意味あいになるので注意。 UTF-8フラグが付いていたら、encodeを使用してフラグをはずします。以下の例では$stringをutf-8に変換して出力します

  • perl から Web ページを読み込む

    概要 このページでは、perl プログラムから Web ページを読み込む方法を説明します。perl プログラムの文法や、書き方、実行の方法は、既に知っている事を前提にしています。 ファイルハンドルを使ってファイルを読み込むのと同じ感覚で、Web 上のコンテンツ、つまり HTML や画像データを perl の変数にセットする事ができます。 この方法を使って、例えば自作 CGI に、次のような演出を加えられます。 天気予報が載っているページから今日の予想気温を読み込み、真夏日だったら画面の背景を青く、真冬日だったら赤くする プロ野球速報のページで贔屓のチームが勝ってるか調べ、勝っていたらフォントを全体的に大きくする バナー広告カット機能のついた、プロクシサーバもどきを作る ブラウザクラッシャーを検知する CGI を作る いくつかの検索エンジンに同じキーワードを一気に投げ、結果を同一画面に表示さ

  • 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

  • 第81回 高階関数を理解できないとRubyは理解できない - bingo_nakanishiの他言語出身者のためのPerl入門

    Rubyにはブロックというものが存在する。 array = [1,3,5,9] array.each{|i| puts i}.each{|i| print ' '; puts i*2} 結果: 1 3 5 9 2 6 10 18このブロックは、高階関数なのである。 まつもと直伝 プログラミングのオキテ 第5回(1) | 日経 xTECH(クロステック) eachには { }と中括弧で囲むブロックを渡しているのである。 このブロックとは処理の集まりである。つまり名前のない関数と考えることができる。 そうだ無名関数だ。無名関数については、 第14回 無名関数 - bingo_nakanishiの他言語出身者のためのPerl入門 あたりで詳しく説明してきたとおり。 高階関数については、 第15回 map - bingo_nakanishiの他言語出身者のためのPerl入門 第16回 無名関数をも

    第81回 高階関数を理解できないとRubyは理解できない - bingo_nakanishiの他言語出身者のためのPerl入門
  • 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

  • 第78回 ソースコードリーディングのコツ - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、プロジェクトに配属されたら、 すでにできあがっているソースを読まなければならないだろう。 そこで今回は、ソースコードリーディングのコツをひとつ紹介したい。 変数に着目せよ 1: my $c = 10; 2: 3: ############## 4: # 何か処理 5: ############## 6: 7: my $d = $c * 2; 8: ############## 9: # 以後の処理 10: ############## 今、このソースを上から順に下に読んでいたとして、1行目で$cが10であることがわかる。 つぎに7行目を読む事になるのだが、7行目に発想すべきことを説明しよう。 7行目では、$dに代入が行われている。 $dに代入が行われているので、「7行目以降は$cをもう使わないのではないか?」 と考えるごとができる。よって代入を見た瞬間、着目する変数を$cから$dに変

    第78回 ソースコードリーディングのコツ - bingo_nakanishiの他言語出身者のためのPerl入門
    namaniku_kero
    namaniku_kero 2009/03/09
    研修材料
  • Web::Scraperに入門した - 日曜プログラマのそゞろ事

    かなーり今更感がありますが。 モジュール自体は、大分前にウェブにあったスクリプトをコピペして使ったときにインストール済みでしたが、なんとなく難しそうで敬遠していたところもありました。 が、やってみると簡単かつパワフルなモジュールであることがわかりました。 参考:use Web::Scraper; - 今日のCPANモジュール XPathがなかなかわからないのですが、CSSセレクタでもいけるのが超絶簡単です。 例えば、aタグのhref属性を取得する場合のprocessは以下のとおり。 process 'a', 'urls[]' => '@href'; で、この場合だと、href属性がないaタグも対象になってしまうので、未定義(undef)が入る場合があります。 なので、href属性があるものだけを対象としたのが以下のprocessです。 process 'a[href]', 'url

  • オブジェクト指向の利点 その1 名前の衝突を防ぐ - Perl入門ゼミ

    Perl › オブジェクト指向 › 名前衝突防止 オブジェクト指向で書かれたモジュールは、使いやすいことが多いです。オブジェクト指向で書くのは、便利だからであって「関数型の記述が古い」からではありません。 今回からはしばらく、関数型のモジュールにはないオブジェクト指向型のモジュールの利点を挙げていきます。 1. 名前の衝突を防いでくれる オブジェクト指向のひとつ目の利点は、名前の衝突を防いでくれることです。関数型のモジュールのEncodeと、オブジェクト指向型のモジュールのXML::Simpleを比較してみましょう。 Encode Encodeをuseすると、decodeという関数が使用できるようになります。 use Encode; my $string = 'あ'; my $dec_string = decode('utf8', $string); XML::Simple XML::Si

    オブジェクト指向の利点 その1 名前の衝突を防ぐ - Perl入門ゼミ
    namaniku_kero
    namaniku_kero 2009/02/27
    研修材料
  • モダンPerl入門の読む順番 - masartz->log(type=>'hatenablog')

    前回なんとか1章を読みましたが、やっぱりよく理解出来てなかったのと2章に至っては「???」だったので、読めそうなところから読んで行って、一通り読み終わりました。 んで、僕のような初心者向けの読む順番として経験から一考察を。 一応目次には ========== 初心者 9章 1章、2章 ========== ========== Web系の方 4章 5章 6章 3章 ========== ========== システム管理を行っているかた 1章 5章 8章 ========== というような振り分けがなされています。 僕の感想としては、 (9章) ⇒ (「1章の6ページまで」) ⇒ (6章) ⇒ (3章→4章) ⇒ (7章→5章→8章) ⇒ (1章→2章) かなと思います。 9章 9章はホントに「Perlとは」っていうところについて。「perl≒CPAN」と取れなくもない図式のCPANについ

    モダンPerl入門の読む順番 - masartz->log(type=>'hatenablog')
  • kndb.jp

    This domain may be for sale!

  • 『モダンPerl入門』感想 - Kentaro Kuribayashi's blog

    id:lestrratさん期待の新刊『モダンPerl入門』をさっそく読みました。結論からいうととてもいいで、他の言語はよく知っててイケてるコード書きまくりだけどPerlはよくわからないというひと、もっとPerlのことを知りたいひと、昔やったけど最近の事情はどうも知らないというひと、様々な方にとってマストバイな一品に仕上がっていると思いました。もちろん、僕自身にとってもいろいろ知ることが多くて、とてもためになりました。 以下、自分が実践できてるかどうかをまったく度外視して、あれこれと書いてみました(たまには書評の真似事をしてみたいブーム)。 モダンPerl入門 (CodeZine BOOKS) 作者: 牧大輔出版社/メーカー: 翔泳社発売日: 2009/02/10メディア: 大型購入: 25人 クリック: 506回この商品を含むブログ (113件) を見る よいコードとは よいコードとひ

    『モダンPerl入門』感想 - Kentaro Kuribayashi's blog
    namaniku_kero
    namaniku_kero 2009/02/10
    これ読んで買うことにした
  • 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

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

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