IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
CPANで % install Task::Catalyst などとすると *** Module::AutoInstall version 1.02 *** Checking for Perl dependencies... [Core Features] - Catalyst ...missing. (would need 5.65) ==> Auto-install the 1 mandatory module(s) from CPAN? [y] [Log4perl Support] - Params::Validate ...missing. - Catalyst::Log::Log4perl ...missing. (would need 0.1) ==> Auto-install the 2 optional module(s) from CPAN? [y] [HTML::Wid
Perl-5.12.1 がリリースされたということで早速インストールされたかたも多いと思いますが、新しい Perl にモジュールを全部入れ直すのは面倒ですよね。 ExtUtils::Installed を使うと楽ができます。 今まで使ってる perl でインストールされているモジュールの一覧をファイルに落として、新しい perl で cpanm に食わせるだけです。 $ cpanm ExtUtils::Installed $ perl -MExtUtils::Installed -e 'print "$_\n" for ExtUtils::Installed->new->modules' > modules.txt $ perlbrew switch perl-5.12.1 $ cpanm < modules.txtあと、perlbrew でインストールした直後は cpanm も perl
OS X 10.6 以降の xcode では Objective-C に Blocks というシンタックスが追加されている。 Blocks Programming Topics: Introduction Perl でいうところの無名関数(コードブロック)を作ることができる機能で、Perlでいうところの my $f = sub { ... }; $f->(); は void (^f)() = ^{ ... }; f(); のように書ける。書式がきもいのはObjective-Cの定めなのであきらめましょう。 より詳しい書式については上記ドキュメントを見ると良い。 しかしデフォルトではPerlのコードブロックとはレキシカル変数の扱いが異なる。 my $i = 0; my $f = sub { return $i + 1 }; $i++; $f->(); # 2 を返す perlではこのようにレ
当サイトのblogのエントリーで検索ワードが多いのはCPANなんですがこの古い記事はperl5.6時代に書いた記事(多分10年近く前だと思う)で今時のperl使いにお勧めできるものではありません。 2010年2月にあの miyagawa さんが書いた cpanminus が非常に素晴らしいので CPAN::shell を捨てて App-cpanminus を積極的に利用しましょう。 と言うことでcpanに関連して新しい記事を書いてみました。 CPAN::shell の欠点 設定が面倒 動作が遅い(cpanmと比較して) 多くのメモリが必要(制約のきついレンタルサーバで使うのは無理) 依存するモジュールが多い 基本root権限が必要 cpanm の利点 一枚岩のプログラムで可搬性に優れる 高速で小メモリでも動作可能 pluginで拡張できる local::lib と組み合わせるとユーザーラン
Perl 5.12がリリースされました。5.12は5.10からの様々なバグフィックスや新機能・改良が追加されていますが、ユーザーにとってより重要なのは、それらの変更よりよりフォーマルかつ定期的ななリリースサイクル(開発版を毎月リリースしていくスタイル)を経て開発が進められた事が重要なリリースであると言えます。 Perlの主開発者達はPerl 5.8のリリースからPerl 5.10のリリースまでに5年間という長い期間を要した反省を生かし、定期的なリリースを繰り返すことにより確実に、そしてより早いタイミングでバグフィックスや新機能をユーザーに届けようという試みを5.10のリリース後に始めました。そしてはこれはその結果を反映した最初のリリースなのです。 This release cycle marks a change to a time-based release process.Beginn
最近ちょっとしたことはperlのワンライナーでやるので便利そうなのを抜き出してみる。必要に応じてzshの関数とかaliasにしたりとか。ちなみにperlのワンライナーといえばsugyanなのできっともっと便利なのをいくつも紹介してくれるはずです。 画像をbase64にエンコード $ perl -MMIME::Base64 -0777 -wne 'print encode_base64($_)' < file HTMLにdataスキームで画像埋め込むときとか、出力を改行したくないときはencode_base64の第二引数に空文字を渡す。 $ perl -MMIME::Base64 -0777 -wne 'print encode_base64($_,"")."\n"' < file 画像のリサイズ $ perl -MImager -se 'Imager->new->read(file=>$f
CGIをPlackで開発(2) 前のエントリ書いたら宮川さんにオススメ方法を教えてもらった http://twitter.com/miyagawa/status/10271128928plackup \ -L Shotgun -MPlack::App::WrapCGI -e 'Plack::App::WrapCGI->new(script => "/path/to/cgiscript.cgi")' だそうです!これなら全ての要件を満たせるもよう!そしてapp.psgiを作る必要ありません。 今これやってみて一つだけ問題点。多分POD入りのCGIは動かない。それと、__DATA__は見てくれるけど、__END__があると動かない。__END__さっき簡単なパッチのpull requestを送っておきました! カテゴリ 開発 タグ cgi perl plack 2
CGIをPlackで開発 ちょっと案件で簡単なCGIスクリプトをを開発することになった。StarmanとかTwiggyでほとんど全て書いているのに今更CGIとかそういう突っ込みはとりあえずおいておいて・・・環境を作るのも面倒くさいし、簡単にサーバーを立ち上げたり落としたりしたい。 そこでPlackです!具体的にはplackupとCGI::Emulate::PSGIを使います。 何も考えずにとりあえず開発したいので、以下のようにapp.psgiにコードを書いていく。 use strict; use CGI::Emulate::PSGI; return CGI::Emulate::PSGI->handler(sub { CGI::initialize_globals(); # 重要 # ここから #!/usr/bin/env perl use strict; use warnings; use
UTF-8で作成されたメール本文をMIME::Lite及びEncodeを使用してメールを送信をする。 そこで問題となってくるのが下記の3点。 1.チルダ(全角)等の文字化け("〜 ‖ − ¢ £ ¬ ") 2.機種依存文字が含まれていた場合の対応 3.MIME::Lite で smtp送信する場合、Return-Pathが有効にならない 1.チルダ(全角)等の文字化け("〜 ‖ − ¢ £ ¬ ")に関する解決方法: これは有名らしいのですが、Encode::JPが採用している UnicodeConsortium の写像表 に問題があるとかで、 一部の文字が化けます。チルダとか。 しようがないので こんな風に対応しておきました。 my %map = ( "\x{ff5e}" => "\x{301c}", # 〜 (1-33, WAVE DASH) "\x{2225}" => "\x{201
$. と <> と for と while forでは$.はカウントされない ちょっと違うので横から。 これはforの動作というより、式の評価コンテキストの問題。 forはその性質上、捜査対象は配列になる: for (<>) { .... } # 上記はこれと同等 my @lines = <>; for(@lines) { .... } なので、<>も配列として評価されるべく*まず最初に*<>を最後まで読み切って、行区切りの配列を作ってからforに渡す。このときファイルハンドルを読み切っているので、当然 $.はファイル全体の行数になる。 これに対して、whiileは対象を毎ループ評価するので、1行ずつの読み込みになる。だから$.は行毎の値になる。B::Deparseを使うとちょっとわかるかも。 # こっちはちょっと正直わかりにくいとは思うけど・・・ daisuke@beefcake $ p
2009年06月23日15:30 カテゴリLightweight Languages perl - use CGI; use Encode; # 非英語Webプログラミング3原則 これは、実はPerlに限らず未だに事実だったりするのですが.... Perl でフォームデータから UTF-8 日本語文字をとりだす方法 (プログラミングの小石・大石) UTF-8 のフォームによっておくられたデータのなかから日本語文字をとりだすことは,日本の Perl CGI プログラマならたいてい必要になることである. ところが,その方法は意外に確立されていないようにみえる. しかし、元発言の方法は先祖帰りすぎるので。 Perlプログラマー以外にも、Webプログラマーであれば有用なentryです。 PerlでWebプログラミングする場合の三原則 QueryはCGIモジュールで処理する 文字コードはEncode
元ネタ:Perl基礎文法最速マスター(id:perlcodesample) XSを始めるための手順といくつかの要素の解説です。C言語をある程度知っている人でも,これを読んだだけでXSの基礎をマスターしてXSを書くことができるようにはなっていません。リファレンスでもありません。 XSとは,狭義ではPerlでエクステンションを書くためのマクロ言語の名前ですが,広義ではエクステンションを書くための技術の総称です。ここでは,広義のXSを俯瞰します。 XSはいろいろと特殊なのでテンプレは無視で行きます。 目次: h2xsで空のディストリビューションを作る XSファイルの構成 スレッドコンテキスト SVファミリ GCとスコープ さらなる学習のために h2xsで空のディストリビューションを作る 以下のコマンドで空のXSディストリビューションを作ることができます。 h2xs -A -b 5.8.1 -n
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く