タグ

Perlに関するzetamattaのブックマーク (252)

  • perl - Tie::Storable : 404 Blog Not Found

    2006年03月22日03:27 カテゴリLightweight Languages perl - Tie::Storable ありそでなかったmodule。 現在のPerlには、DBMからDBIまでさまざまなSerializerが存在するが、便利なのに意外と知られてい、というのか紹介されてないのがStorable。Perlのデータ構造をそのままファイルに落としてしまうというもので、むっさ高速、ちょー簡単な上、Perl 5.8以降であれば標準装備だ。これを使ったModuleも多く、例えばTie::MLDBMもサポートしていたり、DBI絡みでも裏で使っているモジュールも多い。 でもなぜか、Vanillaな奴がなかった。名付けてTie::Storable。こんな感じで使う。 tie $scalar => 'Tie::Storable', "filename"; tie $array => 'T

    perl - Tie::Storable : 404 Blog Not Found
    zetamatta
    zetamatta 2008/02/18
    オブジェクトの永続化モジュール Storable はPerl 5.8以降で標準装備…な割に使われていない。もったいない
  • 404 Blog Not Found:perl - utf8::is_utf8("\x{ff}") == 0

    2008年02月18日10:00 カテゴリLightweight Languages perl - utf8::is_utf8("\x{ff}") == 0 ちょうどいい機会なので、Perl 5.8以降におけるutf8フラグの立ち方を。 unknownplace.org - 2008/02/17 - utf8::is_utf8 ということで、"\x{6751}\x{702c}\x{5927}\x{8f14}" などというData::Dumper表記でかならずしも utf-8フラグがたつわけじゃない。ということがいいたかったんだと思うのだけれど、 \x{UUUUUU}とutf8 flag まずはクイズです。以下がどう出力されるかを答えなさい。 sub pfrag{ print utf8::is_utf8($_[0]) ? 1 : 0, "\n" } pfrag "Hell\xC3, worl

    404 Blog Not Found:perl - utf8::is_utf8("\x{ff}") == 0
    zetamatta
    zetamatta 2008/02/18
    utf8 フラグが立つ条件について
  • mapで要素除去 - Unknown::Programming

    意外と知られてないかと思ったのでメモ。 grep {$_} map { $_ ? $N/$_ : undef } @_; って書くの? mapで特定要素を除外したいときとか - ロックスターになりたい mapを使って特定の要素を除去する方法ですが、上記の方法はこの用途であれば問題ないですが、undefという要素もちゃんと要素として見なしたい場合には困ります。 で、どうするかというと、mapの戻り値に空リストを返すことで要素の除去ができます。 my $n = 1000; my @array = (2, 1, 0, -1, -2); my @new_array = map { $_ ? $n/$_ : () } @array; たまーに使うので覚えておくと吉です。

    mapで要素除去 - Unknown::Programming
    zetamatta
    zetamatta 2008/02/13
    曰く『mapの戻り値に空リストを返すことで要素の除去ができます』
  • perl-5.40.0

    The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

    perl-5.40.0
    zetamatta
    zetamatta 2008/02/09
    CPANでのPerl 本体配布場所。付属のモジュール一覧を参照するのに使える → と思ったが、標準モジュールでもリストに出ていないものがあるようだ(StorableやEncode)
  • perl - parser書くならgoto : 404 Blog Not Found

    2007年04月24日18:00 カテゴリLightweight Languages perl - parser書くならgoto しかし、当の当の番はこちらだったりする。 404 Blog Not Found:perl - POO と goto Perl 5のgotoは、仕組みを理解した上で使いどころを誤らなければかのごとく強力なのである。 前回の例では、それでも"One of many ways to do it"で、「知らなくても困らない」レベルのものであった。しかし、今回の例は、gotoがなければ当にきつい。 以下の例を考えてみよう。 入力: (define (fact n) (if (= n 1) 1 (* n (fact (- n 1))))) 出力: [['define',['fact','n'],['if',['=','n','1'],'1',['*','n',['f

    perl - parser書くならgoto : 404 Blog Not Found
    zetamatta
    zetamatta 2008/01/19
    タイトルどおり。goto を使った方がシンプルだし、速く動く例
  • 404 Blog Not Found:perl - warn()とdie()の振る舞いを変更する

    2007年04月12日01:30 カテゴリLightweight Languages perl - warn()とdie()の振る舞いを変更する こういった場合の対処法です。 shag の日記 - inetd 経由で起動されても peeraddr は取得可能 ところで Perl で inetd 起動のスクリプト書くと STDIN から入力を読み取って, STDOUT に出力すれば良いだけなんだけど、実は STDERR も inetd を通してネットワークストリームに出力されるので use warnings; する人は注意が必要です。これは、例を見てもらうのが一番速いでしょう。 #!/usr/local/bin/perl use strict; use warnings; use Fcntl; # for sysopen our $LOGFILE = 'warn.log'; warn $0;

    404 Blog Not Found:perl - warn()とdie()の振る舞いを変更する
    zetamatta
    zetamatta 2008/01/12
    warn や die をトラップする方法など
  • whileでファイルハンドルをループする時の暗黙の$_について - Unknown::Programming

    こんな記事をみつけた。 Perlプログラムをコンパクトに記述する方法 - builder by ZDNet Japan 短く書けてPerlってすげーんだよ的な記事でまぁそれはそれでいいんだけどこういう場合はデメリットもちゃんと説明すべきかと。 というのも上記記事にこういうコードがあったのです。 while (<STDIN>) { print $_; } $_を使うことによって「while( $line = ) {}」と書くよりも短く書けて良いっちゃ良いんですが、このコードにはバグが含まれています。 whileでの暗黙の$_はローカル化されないのです。コレ超重要。 つまり、 $_ = 100; while ( <STDIN> ) { print $_; } print $_; こう書くと$_に格納してた100が上書きされてしまうので、whileを抜けたあとに$_を参照しても100という値は消

    whileでファイルハンドルをループする時の暗黙の$_について - Unknown::Programming
    zetamatta
    zetamatta 2007/12/26
    foreach の $_ はローカル化されるが、while の $_ はローカル化されない。
  • perldelta - perl 5.10.0 の新機能

    perldelta - perl 5.10.0 の新機能 perldelta - what is new for perl 5.10.0 名前 NAME perldelta - perl 5.10.0 の新機能 perldelta - what is new for perl 5.10.0 説明 DESCRIPTION このドキュメントでは 5.8.8 リリースと 5.10.0 リリースとでの相異点を 説明します. This document describes the differences between the 5.8.8 release and the 5.10.0 release. 5.10.0 でのバグ修正の多くは既に 5.8.X メンテナンスリリースで見ることができます; それらはここには重複しないで, perl58[1-8]?delta の マニュアルページ群に記載し

    zetamatta
    zetamatta 2007/12/22
    ついにでた Perl 5.10。Defined-or演算子、レキシカルな$_、say あたりが嬉しいかな。
  • Perl on Railsの話 - Charsbar::Note

    英国放送協会(BBC)がPerl on Railsを名乗るMVCフレームワークを開発したという話が一部をにぎわしていたので、簡単なまとめ。英語で話を追える人は下記を(コメント欄含めて)順に読んでいけばOKです(これ以外にもスラッシュドット(家)をはじめ、いくつかのソースに情報が分散していますが、必要な流れはだいたいこの三つで把握できるはず)。 http://www.bbc.co.uk/blogs/radiolabs/2007/11/perl_on_rails.shtml http://derivadow.com/2007/11/30/perl-on-rails/ http://iamseb.com/seb/2007/12/perl-on-rails-why-the-bbc-fails-at-the-internet/ さて、題。2007年11月30日に「BBCが自社フレームワークとして

    Perl on Railsの話 - Charsbar::Note
    zetamatta
    zetamatta 2007/12/08
    曰く「本番環境に入っていたのはPerl 5.6とBBC公認のいくつかのモジュールだけだったから、CatalystやJiftyを使うわけにはいかなかったんよ」―― それ、なんて俺?
  • 404 Blog Not Found:紹介 - 一つのファイルでperl,javascript,HTMLそしてGIF

    2007年11月05日23:30 カテゴリLightweight Languages 紹介 - 一つのファイルでperl,javascript,HTMLそしてGIF takesako['www']++; TAKESAKO @ Yet another Cybozu Labs: Real UNIX MAGAZINE Day ライトニングトーク 若輩者ながら、昨今のAjaxの技術のGIF89a(ハック)について newtype と oldtype の話を交えながら、ライトニングトークさせていただきました。これが、問題のソース。ちょっとだけ改変してあります。以下のリンクを追ってお試しあれ。 polyglot.(html|gif|pl) GIF89a(q=/*=);sub GIF89a{ print "Hello, Perl!"} __END__#*/1);function GIF89a(){ale

    404 Blog Not Found:紹介 - 一つのファイルでperl,javascript,HTMLそしてGIF
    zetamatta
    zetamatta 2007/11/11
    スライドショーによる解説
  • [mixi]perlでwikiをつくりたいんですけど。 - Perl | mixiコミュニティ

    非難される覚えは無いと.... 主はとりあえずスレッドを読み返すといいと思うよ. 就職先云々で言うなら,あなたに零細だ中小がどうのこうの言われる覚えも無いわけで,あなたの発言は零細に勤める人にとっては大変失礼な言い方だと思いますが,それは棚に置いておくわけですね?(私は非常に傷付きましたが...) 世の中,あなたがすぐにつぶれると思ってる中小が努力して,社会を支えているんですよ.大きな(?)会社に入れば気づくと思いますが,実際の仕事は中小がやるわけなので,上流の SE というのは,そんな中小をまわって頭を下げて,下流工程をやってもらうわけです. もし取引先の前でこのスレッドなどの態度を示そうものなら,取引中止されクライアントから大目玉をらうようなことになるでしょうから,社会に出たら態度に気をつけましょうね. > 必要以上のことまでいわれるとちょっと許せないですよ・・・。 このスレ読みまし

    [mixi]perlでwikiをつくりたいんですけど。 - Perl | mixiコミュニティ
    zetamatta
    zetamatta 2007/11/11
    Help Vampire の名にふさわしい例。本人の為にもならないんだから、相手にする人も悪い。
  • Part1 正しいPerl/CGIの書き方:ITpro

    Shibuya Perl Mongers 2代目リーダーにして,ppencodeの作者。広島市立大学卒業後,大企業向けmod_perl製品の開発に従事。2005年よりサイボウズ・ラボ株式会社に入社。LL Ringに参戦。Namazu for Win32,Plagger,Ajajaのコミッターでもある。 CGIといえばPerl。そんな風にいわれていた時期もありました。レンタル・サーバーのCGIで手軽にPerlが使えたこともあり,ちょっとした掲示板のスクリプトやアクセス・カウンタなど,CGIプログラムの多くがPerlで書かれていました。このためPerlが爆発的に普及したのです。Perlは日のインターネット黎明期を支えたプログラミング言語として,広くその名が知られています。 その半面,Perlで書かれたプログラムの保守性に悩む声も聞かれるようになりました。事実,Perlのプログラミング経験が少

    Part1 正しいPerl/CGIの書き方:ITpro
    zetamatta
    zetamatta 2007/10/27
    どちらかというと、モジュールの作り方!
  • ActivePerlでメールを受ける

    by Hippo2000( 2001/3/18,1999/1/20,1/7) 「Perlを使ってメールを送る」につづいて「Perlでメールを受ける」なのです。 受信そのものは、Net::POP3モジュールを使うとあっというまに実現できます。 メールを送るでは当初考えていなかった日語の対応もこちらではおこなっています。 ここでは私が作ったサンプルの紹介だけにとどめます。(説明が面倒なのと、まだ深く調べきれていないのと) とりあえずは使えるかなというレベルにはなったと思っていますが、もっといい方法があったら教えてください。 99年1月20日 変更(追加) 「添付ファイル名が日語の場合、うまくメールの取得ができない」という指摘を受けて、調査したところ、添付ファイル名をデコードする必要があることがわかりました。 さらにPOP3サーバからのメールの削除についても記述を加えました.(サンプ

    zetamatta
    zetamatta 2007/09/26
    libnet(NET::POP3)、MIME-Base64、MIME-tools(MIME::Entity)、MailTools(Mail::Internet)、IO-stringy などのパッケージ(モジュール)を使う
  • 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
    zetamatta
    zetamatta 2007/09/22
    最も速いのは『sub is_a_num { $_[0] != 0 or $_[0] =~ /\A0(?:\.0+)\z/ }』
  • Perlで予約語プログラミング

    記号もセミコロンも使わずにPerlプログラミング。ITpro Challenge終了後の飲み会での、takesakoさんによるプレゼンです。斜めから撮ったので、ちょっと見にくいかも>< 続きはppencodeでググると吉。

    Perlで予約語プログラミング
    zetamatta
    zetamatta 2007/09/10
    記号もセミコロンも使わずに行うPerlプログラミング「ppencode」
  • perl - ニコニコ動画ダウンローダー新認証対応版 : 404 Blog Not Found

    2011年08月13日21:00 カテゴリLightweight Languages perl - ニコニコ動画ダウンローダー新認証対応版 初出2007.08.26; 追記2011.08.13 この仕様変更の影響は、ニコニコ動画ダウンローダーにも及びます。というわけで改訂版。 パスワード変更のお知らせ【更新 20:31】 - ニコニコ動画 開発者ブログ(新着情報) 以前プレミアムパスを設定していなかった、または設定したが忘れてしまった方はログインフォームの下にある【パスワードを忘れた】から新しいパスワードを設定してください。 とはいっても、変更する必要があったのはわずか一カ所、認証用のURIだけでしたが。 #!/usr/bin/env perl # # $Id: nicoget.pl,v 0.3 2011/08/13 12:12:02 dankogai Exp dankogai $ # o

    perl - ニコニコ動画ダウンローダー新認証対応版 : 404 Blog Not Found
    zetamatta
    zetamatta 2007/09/09
    ActivePerl の時は、あと「ppm install YAML::Syck」が必要
  • PDFJをインストールしてみる - octech

    PDFを書き出せるライブラリを探していたら、PerlPDFJモジュールが良さそう、ということがわかったので、早速試してみた。 中島 靖 割ときちんと出来ているライブラリのようですが、ここまで出来ていたら、CPANに登録して欲しいなー。インストールするユーザはそっちのほうがかなり楽になる。 CPANで依存ライブラリインストール PDFJのページを見ると、CPANで提供されているTeX::Hyphenモジュールが必要と書かれているので、PDFJの前にインストールしておく。 コマンドラインで以下のように入力し、CPANの対話モードに入ってインストールした。 >perl -MCPAN -e shell cpan shell -- CPAN exploration and modules installation (v1.7602) ReadLine support enabled cpan

    PDFJをインストールしてみる - octech
    zetamatta
    zetamatta 2007/09/04
    Perl で PDF を出力するライブラリ(PDFJ)
  • The Perltidy Home Page

    Perltidy is a Perl script which indents and reformats Perl scripts to make them easier to read. If you write Perl scripts, or spend much time reading them, you will probably find it useful.

    zetamatta
    zetamatta 2007/09/03
    Perl ソース整形ツール。
  • Perl モジュールのバージョン指定インストール 【VISH+サイトマスター.jp Blog 】

    システム開発の効率を上げる上で重要な事の1つは、 すでに存在する製品やライブラリを利用して工数を削減する事です。 しかし、外部ライブラリを使用すると、バグが自然に直るというメリットもありますが、こちらが意図しない仕様変更が発生する事もあります。 この問題に対処するには、バージョンを指定して使用するのが確実です。私の身の回りの世話には、Perl を使っていますが、Perl の場合のバージョン指定によるモジュールのインストール方法を紹介します。 Blogランキング参加しています モジュールのインストールの際、多くはコマンドラインより cpan YAML (cpan コマンドが使用できない場合は 「cpan」 の部分を 「perl -MCPAN -e "install shift"」 で置換します) とします。このコマンドにより、YAML モジュールの最新バージョンがインストールされます。 例に

    zetamatta
    zetamatta 2007/08/17
    cpan コマンドのお手軽導入方法。これはいい。
  • *「ふっかつのじゅもんがちがいます。」 PerlではRuby風のiteratorは書けない?

    Perl で手軽にイタレータっぽいことをやりたいんだが うぅむ、呼出し元にて丸括弧の中に中括弧があるのが、みっともないなぁ。もっと美しい書き方は無いものか。で、dankogai氏のページを見た: 404 Blog Not Found:perl - for(1..1e10) と Iterator というのを見て、プロトタイプ宣言してやれば map とかみたいにコードブロック渡せるんじゃないか?とおもってやってみたら無理だったという話。 多分、元々やりたいことはRubyiteratorみたいに $sar->each { my ($time, $p) = @_; print ("$time : $p\n"); }; こんな風に書けるメソッドを書きたいということだろうと思う。 でも↓のbad_eachでは期待したようには動かない 勉強不足で知らなかったのだけど、コードブロック

    zetamatta
    zetamatta 2007/08/12
    うーん、残念。でも、メソッドではなく、関数ならばできるのか…メモメモ