タグ

perlに関するingoのブックマーク (46)

  • 「Perl入学式の教科書」を公開しました! : Perl入学式 公式ブログ

    Perl入学式 公式ブログ プログラミング未経験者/Perl初心者を対象としたワークショップ『Perl入学式』のブログです。 一緒にプログラミングの楽しさを体感しましょう! みなさまこんにちは, Perl入学式校長のpapixです. いきなりですが, Perl入学式は今年で4年目となりました. ここまでの3年間, 多くの方と一緒にPerlを学ぶことができていて, とても嬉しく思っています. その中で, Perl入学式の卒業生からよく頂く意見の1つが, 「卒業後に使えるカリキュラムが欲しい」というものです. Perl入学式で扱う内容は, プログラミングを学ぶために不可欠な環境構築からスタートし, Perlという言語を通して「プログラミングに必要な考え方」を学んでいくという, まさに「基礎中の基礎」といえる内容になっています. 最終回でMojoliciousを利用したWebアプリケーションの開

    「Perl入学式の教科書」を公開しました! : Perl入学式 公式ブログ
    ingo
    ingo 2015/07/29
  • Time::Piece とタイムゾーンの甘い罠 - (ひ)メモ

    use Time::Piece; use Time::Seconds; use POSIX qw(strftime); sub print_tp { my $tp = shift; printf("date : %s\ntzoffset: %d\nepoch : %d\nstrftime: %s\n\n", $tp->strftime('%Y-%m-%d %T'), $tp->tzoffset, $tp->epoch, strftime('%Y-%m-%d %T', localtime($tp->epoch)), ); } print "Time::Piece ",$Time::Piece::VERSION,"\n"; my $tp; $tp = Time::Piece->strptime("2011-01-01", "%Y-%m-%d"); print_tp($tp); $tp = lo

    Time::Piece とタイムゾーンの甘い罠 - (ひ)メモ
    ingo
    ingo 2015/05/15
  • Plagger 入門 in 2014

    この記事は Perl Advent Calendar 2014 の 12日目の記事です。いいですか、2014 ですよ。あなたは間違えて2008年の Advent Calender を開いてしまったわけではないので安心してください。 11日目の記事は hisaichi5518 さんの Data::DumperとB::Deparseを合わせて使ってみる。 でした。 Plagger とは、(Rebuild.fm の)miyagawa さんが中心となって開発されていた Perl 製のフィードアグリゲータで、プラグインを組み合わせることで RSS フィードなど様々なデータを任意の形式に変換して出力させることができるものです。雑に言うと ifttt のようなもの(のはず)です。 今は代替となるような Web サービスがあったり、そもそも RSS フィードや Web hooks がきちんと用意されている

    ingo
    ingo 2014/12/13
  • Perlの食えない事情 - 演算子編 - アリ

    Perlえない事情 より おっと、そうです、Perlには演算子が多すぎるのでした。せっかくの機会なので、Perlの演算子を紹介します。 ビーナス演算子: 0+, +0 数値として評価してくれます。意外とよく見かけますね。 なぜこの演算子を使う必要があるのかというと、Perlは文字列と数値を明確に区別できないからです。scalarを文字列として解釈するならば文字列として、 print 0+ '10'; #=> 10 print 0+ '123b'; #=> 123 print '1.2e3' +0; #=> 1200 print [] +0; #=> 4303367864 ちなみに、文字列として評価するときにはこのようにするとかっこいいと言われています。 $obj.q(); 一見メソッド呼び出しのように見えますが $obj . ''; と等価です。 ベビーカー演算子: @{[ ]} 文字

    Perlの食えない事情 - 演算子編 - アリ
    ingo
    ingo 2013/02/04
  • 開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー

    開発メモその3です。今回は Perl のおはなし。 何年も前に作ったウェブアプリケーションのコードを開いてみたら黒歴史なコードが出てきて憂な気分になる、そんな経験ありませんか。私はあります。ずっとそんな現実から目を背けて生きてきました。 さて、先日 Perl + CGI で書いて Apache::Registry で高速化している、実行環境が Apache に癒着した CGIアプリケーションを発見しました。おえ〜っ。一から作り直したい気持ちをぐっと堪えて、これを Plack 化したりとリフォームしていくとしましょう。その過程を以下記します。劇的ビフォア・アフター! ・・・とかは期待せず、地道な変更を積み重ねていくのがコツです。 方針 いきなりコードをがりがり書き換えていくというよりは、試行錯誤のしやすい環境に移行させていきながらリフォームを進めます。遠回りですが、結果的にその後の運用が楽

    開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー
    ingo
    ingo 2013/01/29
    レガシーなままでいいや。。
  • Perlでは何が定数なのか - D-6 [相変わらず根無し]

    生のハッシュリファレンスを return したら遅い コメントを残せないブログなんて!どうなの!と、それは置いておいて、Perlでconstant foldingされるのは文字列・数値リテラルか、定数扱いできる関数だけです。 定数扱いできる関数というのは実は決まっていて、以下の条件がそろわないとconstant folding されない: その関数は 引数を取らない、とprototypeで明示的に宣言してあるその関数は文字列・数値リテラルを返し、それ以外の処理を行わないこちらのコードを実行してみるとわかりやすいuse strict; use O ('Deparse'); sub not_const { 1 } sub const_num() { 1 } sub const_string() { "foo" } sub const_list() { [ qw(1 2 3) ] } sub

    ingo
    ingo 2013/01/13
  • 第20回 Email::Sender:メールを送信する | gihyo.jp

    メール送信のあれこれ たとえばウェブアプリケーションでなにかの注文を受け取ったとき、あるいはシステム管理ツールでなにか異常を発見したとき、ユーザや管理者にメールを送れるようにしたい、というのはよくある要件です。昔はヒアドキュメントやテンプレートエンジンなどを使って送信したいメールを用意したあと、sendmailへのパイプを開いてメールを流し込んでいたものですが、いまはメールの作成から送信まで、すべてモジュールを使って実現できるようになっています。 とはいえ、需要が大きいだけにメール関係のモジュールは山のようにあります。ディストリビューション(パッケージ)の数だけで500を数えますし、メール関係の名前がついたモジュールは現在CPANにアップロードされている7万以上ものモジュールのほぼ1割を占めるほどです。これではどれを使えばよいのかわからないという声があがるのも当然でしょう。 そこで今回はP

    第20回 Email::Sender:メールを送信する | gihyo.jp
    ingo
    ingo 2012/07/31
  • Perlでセッション管理 - jitsu102's blog

    復習を兼ねて。 セッション管理 今さら説明する必要はないと思いますが、HTTPプロトコルはクライアントからWebサーバーへのリクエスト毎にコネクションの接続/切断が行われるため、画面遷移が発生するとリクエストが同一クライアントから送信されたものか判断できません。 そのため、ログインからログアウトまでユーザ情報を保持する必要があるシステムでは、セッション管理という仕組みが必要です。 セッション管理を実現するには、以下のような方法が考えられます。 情報をサーバ、クライアント(ブラウザ)間で渡し続ける hiddenフィールドやURLパラメータ 情報をクライアント(ブラウザ)に保存 cookie 情報をサーバに保存 今回は、"2"と"3"を併用する形としました。 クライアント(ブラウザ)側にはCookieでセッションIDのみを保存し、その他の情報はサーバ側のMySQLに保存することとしました。 P

    Perlでセッション管理 - jitsu102's blog
    ingo
    ingo 2012/07/24
  • Perlで、セッション管理をする(CGI::Session,CGI::Cookie,MySQL使用) - undiscoの日記

    Perlで、パスワードをハッシュ化してユーザー情報を管理する - undiscoの日記の続きです。 セッション管理というか、セッションIDを吐いてCookieに記録するだけです。 ユーザーIDとパスワードの認証後に実行します。 CGI::SessionCGI::Cookieを使用し、セッションIDはMySQLへ保存します。 今回は、http://www.yamareco.com/ippiki/detail.php?mid=25&mver=0とTutorial - CGI::Sessionのさらに広範囲に渡って記述されたマニュアル - perldoc.jpを参考にしました。 ユーザー名とパスワードを入力するsignin.html、ユーザー認証処理と、セッションIDを吐いてCookieに記録するsignin.plと、ページ遷移してセッションIDをCookieから読み取り表示するsession

    Perlで、セッション管理をする(CGI::Session,CGI::Cookie,MySQL使用) - undiscoの日記
    ingo
    ingo 2012/07/20
  • Tutorial - CGI::Sessionのさらに広範囲に渡って記述されたマニュアル - perldoc.jp

    名前¶ Tutorial - CGI::Sessionのさらに広範囲に渡って記述されたマニュアル 状態メンテナンスの大要¶ HTTPはステートレスなプロトコルですので、WEBサイトに対するそれぞれの webサイトに対するクリックはwebサーバーによって新しい訪問として扱われます。 サーバーは直前の訪問とは無関係です。したがって全てのそれ以前のリクエスト からの状態は失われます。このことによってショッピングカートや、 ログイン認証ルーチン、セキュリティー上の制限を設けるようなサービスなどは web上で不可能になります。よって人々はHTTPが我々を絶望的な状況に投げ入れる ことに対して何らかの対策を取らなければなりませんでした。 我々を救うべく、一定期間ユーザーのセッションを保つHTTPクッキーや クエリ文字列と言った技術が誕生しました。クッキー及びクエリ文字列だけでは RFC 2965, S

    ingo
    ingo 2012/07/18
  • CPANモジュールのアンインストール - holidays-l開発ブログ

    エントリの続きはこちら→CPANモジュールのアンインストール(改良版) - ヒルズで働く@robarioの技ログ あるCPANモジュール(以下ディストリビューションと呼びます)をアンインストールしてみます。 まずは色々紹介しながら回りくどくやってみます。最後に簡単な方法を紹介します。 消したいディストリビューションを確認 自分が消したいディストリビューションが分からなかったら、 % perldoc -tT perllocal | grep Module # 見た目より速さ優先ならこっち % grep Module `perldoc -l perllocal` でインストール履歴が出ます。perllocal.podにはインストールしたディストリビューションの一覧が時刻と共に記録されていて「昨日インストールしたアレアレ…何だっけ?」という時には割と使えます。 モジュール名とディストリビューショ

    CPANモジュールのアンインストール - holidays-l開発ブログ
    ingo
    ingo 2012/02/17
  • Perl公式ドキュメント日本語版

    このサイトは Perl の公式ドキュメントを日語翻訳したものを表示するサイトです。翻訳データは、perldocjp project からとってきたものです。 類似のものに perldoc.jp がありますが、それよりもみやすくなるようにがんばってみました。 ドキュメント一覧 概要(overview) perl - Perl の概要 perlrun - perl コマンドの実行とオプションについて チュートリアル perldebtut - デバッグのチュートリアル perlopentut - Perl でいろんなものを開くためのチュートリアル perlpacktut - pack と unpack のチュートリアル perlreftut - Mark によるリファレンスに関するとても短いチュートリアル perlretut - Perl の正規表現のチュートリアル perlt

    ingo
    ingo 2011/01/27
  • おそらくはそれさえも平凡な日々: モダンなPerlを「読む」上で覚えておくとよい構文 第2回「リストを理解すれば配列とハッシュをより活用できる」

    第1回から大分時間が空きましたが、なんと続きます。「次回は無名関数について書く」とか書いていましたが、先にリストについて言及することにします。 混同されがちですがこのエントリーでは「リスト」と「配列」を厳密に違うものとして扱います。結論を先に簡単に言ってしまうと、リストを配列に代入すれば配列になるし、リストをハッシュに代入すればハッシュになるということです。 Perlの式は値を返す サブルーチンに限らずPerlのあらゆる式は評価された値を返します。返された値は代入先があれば代入され、代入先がなければ捨てられます。 値を返さないケース ブロックは値を返しません(doを使えばブロックに値を返させることが出来ます)。例外的にuse文やpackage文は値を返しません。この二つはコンパイル時にコードを実行する前に最初に評価されるので値の返しようがありません。 さて、題です。Perlの式の値の返し

    ingo
    ingo 2010/11/30
  • ImagerとImage::Magickのよく使うメソッドをまとめてみた - 80nikki

    簡単に違いを書くと Imagerはインターフェースがかっけえ Image::Magickはなんか枯れてる 速度はあんまかわんない ファイル読み込み、書き出し、エラー出力 Imager my $img = Imager->new; $img->read(file => $filename) or warn $img->errstr; $img->write(file => $filename) or warn $img->errstr; Image::Magick my $img = Image::Magick->new; $err = $img->Read($filename); $err = $img->Write($filename); $err = $img->Read('-'); # 標準入力から読み込み $err = $img->Write('png:-'); # 標準出力へ書き

    ImagerとImage::Magickのよく使うメソッドをまとめてみた - 80nikki
    ingo
    ingo 2010/10/22
  • Image::Magick を使って大量画像のサムネイル画像を一括自動生成

    仕事で素材集 CD-ROM 内の画像ファイル全2万点を全てリサイズして欲しいという依頼が来た。自社のコンテンツに使うためのリサイズ作業です。初めは OPTPiX webDesigner のバッチ処理で何も考えず 50 x 40 px にリサイズ。縦横比が違う画像が一杯なので何とも無惨な画像が数時間後にできあがった・・・orz 仕方がないので、PhotoShop のバッチ機能でトリミング〜リサイズ処理をやってみた。どうやら素材集の jpeg の圧縮パラメータが違うようでリサイズ後の保存時にダイアログが開いて圧縮パラメータをどうするかいちいち聞いてくる。OK ボタンを押すだけなのだが、全然バッチになってない・・・orz 仕方がないのでリターンキーを押下状態にしてセロハンテープを貼り付けて帰宅時に放置。今日の朝に完成しているはずだったけど、しっかりと PC がフリーズしてました・・・orz し

    ingo
    ingo 2010/10/18
  • 類似しているプログラミング言語の文法などの比較まとめチートシートが良い感じ - goinger的日記

    以前見つけた資料。そういやそんなんあったなと久々に検索して探すのに少し手間取ったのでメモ 言語の比較対応で文法覚えられそうなんで便利じゃないかなと 参照: Big Script: PHP, Perl, Python, Ruby, Smalltalk http://hyperpolyglot.wikidot.com/scripting Small Script: Bash, Tcl, Lua, Javascript, IO http://hyperpolyglot.wikidot.com/small Platform: C, C++, Objective C, Java, C# http://hyperpolyglot.wikidot.com/platform Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp http://hyperpolyglo

    類似しているプログラミング言語の文法などの比較まとめチートシートが良い感じ - goinger的日記
    ingo
    ingo 2010/07/25
  • ニュータイプ研究所 WWW::Mechanizeで文字化け

    WWW::Mechanizeを使って自動でblog更新しようとしたら、文字化けしてはまったので覚書。 気をつけたポイント ソースコードはUTF8(改行コード=LF)で記述 use utf8; でUTF8フラグ付で処理 キャラクターセットをaccept_charsetで指定(ちなみにfc2はeuc-jp) 実際のソースコードは下記の通り #!/usr/bin/perl use WWW::Mechanize; use Encode; use warnings; use utf8; $agent = new WWW::Mechanize( autocheck => 1 ); $agent->agent_alias( 'Windows Mozilla' ); # 管理画面へアクセス $agent->get('http://blog42.fc2.com/control.php'); $agent->

    ingo
    ingo 2010/07/01
  • DBICのリレーションが苦手で使うたびに調べなおすのが面倒なのでまとめてみた - (゚∀゚)o彡 sasata299's blog

    2009年06月17日00:13 Perl DBICのリレーションが苦手で使うたびに調べなおすのが面倒なのでまとめてみた 「DBICのリレーションとか、毎回使うたびに調べてて時間が勿体無い」と思ってまとめてみました。簡単な例として、entryテーブルとcommentテーブルを考えてみましょう。 mysql> desc entry; +---------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment |

  • Perlでシストレ

    明日05月16日に株価上昇が見込まれる銘柄情報を抽出しました。 1381 アクシーズ(チャートを見る) 1775 富士古河E&C(チャートを見る) 2124 ジェイエイシーリクルートメント(チャートを見る) 2130 メンバーズ(チャートを見る) 2180 サニーサイドアップ(チャートを見る) 2475 WDBホールディングス(チャートを見る) 2488 日サード・パーティ(チャートを見る) 2763 エフティコミュニケーションズ(チャートを見る) 3032 ゴルフ・ドゥ(チャートを見る) 3140 イデアインターナショナル(チャートを見る) 3276 日管理センター(チャートを見る) 3753 フライトシステムコンサルティング(チャートを見る) 4344 ソースネクスト(チャートを見る) 4718 早稲田アカデミー(チャートを見る) 5184 ニチリン(チャートを見る) 5965 フ

    ingo
    ingo 2009/12/15
    システムトレード
  • 第18回 local::lib:ふだんと違う環境でPerlを使う | gihyo.jp

    いつでも理想の環境を使えるとは限りません 「弘法筆を択ばず」ということわざもありますが、なんであれ手になじむまで使い込んだ道具を持っている人は、環境が変わってその道具が使えなくなるとやはりいらいらするものです。 Perlの場合もそう。日頃から自分の必要や興味に応じてがんがんCPANモジュールをインストールしていると、何らかの事情でまっさらに近いPerlを使わなければならなくなったとき、途方に暮れます。来のコードを書き始める前に、モジュールのインストールだけで一日潰してしまった経験をお持ちの方も少なくないことでしょう。 今回は、そんな「ふだんと違う」環境でもなるべくストレスなくPerlを使えるようにするためのモダンな努力をいくつか紹介してみます。 PERL5LIBという環境変数を活用する Perlはディストリビューションに同梱されているコアモジュールを保護するために、CPANからインストー

    第18回 local::lib:ふだんと違う環境でPerlを使う | gihyo.jp
    ingo
    ingo 2009/10/19