タグ

perlに関するmaRkのブックマーク (84)

  • いまだに Data::Dumper で消耗しているの?

    Data::Dumper::AutoEncode というモジュールがありまして、主に printデバッグのお供に便利な変数のダンプモジュール君です。 デファクトスタンダードであるところの Data::Dumper でダンプすると「\x{304a}\x{3067}\x{3093}」こんな感じにエスケープされてしまうマルチバイトな文字列を、 Data::Dumper::AutoEncode の eDumper という関数を使うと、自動的にエンコードして普通に読める状態で出力してくれます。 use utf8; use Data::Dumper::AutoEncode; # export `eDumper` and `Dumper` my $foo = +{ bar => 'おでん' }; print Dumper($foo); # { bar => "\x{304a}\x{3067}\x{309

    いまだに Data::Dumper で消耗しているの?
    maRk
    maRk 2017/09/20
  • [技術継承の現場] useとrequireの違い - NDiS Tech

    物事には順番というものがあります。 連続テレビドラマでもアニメでもコミックでも小説でもなんでもいいですが、いきなり最終回やエピローグを見せられても大抵なにがなんだかわからない。ごく単純なレベルから少しずつ複雑度が増していく過程を見ていたからこそついていける話もあるものです。 プログラミングの世界も似たようなもので、たとえばWeb関連の技術も、table タグもない状態からフレームだ JavaScriptCSS だ Flash だ…と進んできた過程を見ているからこそ大まかにでも全体像が把握できている面は否定できず、いま1から理解するのは大変かもしれないなあ、と社内の新人さんを見ていると思います。 先日周囲で話題になっていたのは Perl での「use と requireの違い」。 まあこれも、大変大雑把に返答させてもらえば、 「use使っとけ」 の一言で済む話ではあります。Perl4の

    maRk
    maRk 2016/05/03
  • LWP::UserAgentのHTTPS接続の不安定さを解消 - Qiita

    LWP::UserAgentを使いHTTPSで通信する際、正常にレスポンスが返ってこない場合があった。 正常に返ってくることもあるが、7〜8割の確率で失敗するという不安定さ。 以下の記事のようにモジュールをインストールしたり環境変数にいろいろと設定はすでにしていたがどうすればいいものかとハマっていた。 LWP::UserAgentでHTTPSプロキシ越しに通信する ロードバランサがプロキシとして働き、そのせいもあるのかとドキュメントを漁ったり試行錯誤していたが結局Crypt::SSLeayのドキュメントを見直して解決。 Crypt::SSLeay DO YOU NEED Crypt::SSLeay? どうやらCrypt::SSLeayとIO::Socket::SSLがどちらもインストールされていてCrypt::SSLeayを使用したい場合、LWP::UserAgentをuseする前にNet

    LWP::UserAgentのHTTPS接続の不安定さを解消 - Qiita
  • 2008年、Webは文字列解析で変わっていく

    リスト1■Webを巡回する例 use strict; use utf8; use encoding 'utf8', STDIN=>'utf8', STDOUT=>'utf8'; use Encode::Guess; use Encode; use WWW::Mechanize; use HTTP::Response::Encoding; my $url = 'http://blogs.itmedia.co.jp/'; my $mech = WWW::Mechanize->new(); $mech->get($url); # 追うリンク階層数 my $linknum = 2; use vars qw(%followed_link); %followed_link = {}; # すでに辿ったかどうかのフラグ getcontent($mech, $linknum); exit(); sub g

    2008年、Webは文字列解析で変わっていく
    maRk
    maRk 2016/03/06
  • Big Sky :: Perl6 の無限リストとダイナミックバインディングが最強すぎる

    Perl には x 演算子があり、x 3 といった具合に繰り返し回数を付ける事で連続した文字列を簡単に作り出すことが出来る。 say 1 x 3; # 111 say "foo" x 3; # foofoofoo これは Perl5 でもお馴染み。しかし Perl6 の Range は凄い。 say 1 xx 3; # (1 1 1) say "foo" xx 3; # (foo foo foo) 連続した配列要素が作り出せる。それどころか無限リストが作り出せる。 say 1 xx *; # (...) say "foo" xx *; # (...) もちろん無限数列も作れる。 (1 .. *)[^10].perl.say; # (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) fibonacci 数列もこんなに簡単。 (1, 1, *+* ...^ *)[^100].per

    Big Sky :: Perl6 の無限リストとダイナミックバインディングが最強すぎる
    maRk
    maRk 2015/11/03
  • PerlのXML::FeedPPモジュールでRSSフィードを作成する | work.log

    Perl の XML::FeedPP モジュールで RSS フィードを作るメモです。 オリジナルの CMS もどきを作ろうとしていて、これに RSS フィードが必要なのでちょっとやってみました。 各種情報はベタ書きしていますがとりあえず、RSS 2.0 形式のフィードを作成してみました。 #!/usr/bin/perl use strict; use warnings; use Encode; use DateTime; use XML::FeedPP; my $language = 'ja'; my $title = 'Example RSS フィード'; my $url = 'http://example.jp/'; my $dt = DateTime->now(time_zone => 'local'); my $pubdate = $dt->strftime('%Y-%m-%dT%

    maRk
    maRk 2015/07/16
  • Perlワンライナー集 - ablog

    障害対応でのログ解析、ソースコードの調査といったテキスト処理で使った Perl ワンライナー集です。 マルチライナーやいけてないのもありますw Perl ワンライナーの好きなところ PerlOracle Database (10g以降) に同梱されているので、Windows プラットフォームでも使える*1。 awk、sed、grep の正規表現の書き方などをそれぞれ覚えれない。awk、sed、grep でできることはだいたい Perl でできるので、Perl に絞ると覚えることを減らせる*2。 最小限の労力で最大限の仕事ができる。ちょっとしたプログラムを書くような処理でも Perl ワンライナーを使うとたった1行で済むことがあります*3。 Perlワンライナー集 一部、Perl 以外に bash、find、xargs なども含んでいます。 レコードセパレータを変更する perl -w

    Perlワンライナー集 - ablog
    maRk
    maRk 2015/07/13
  • WWW::Mechanizeで Basic認証 - Shohei Yoshida's Diary

    ちょっと必要になったので調べてみた。 my $mech = WWW::Mechanize->new(); $mech->credentials( username => password ); $mech->get($url); credentialsメソッドでユーザ名、パスワードを指定 してあとは通常通り getメソッドで urlを取得という ことでいいみたい。LWP::UserAgentとはメソッド名は 同じでも若干使い方が違いますね。 こちらの方がイメージとしてはつかみやすいかな。 しかし最近は Javascriptを多用しているサイトが多くて 単純に WWW::Mechanizeだけではどうにもならないことが多い ということを改めて思いました。

    WWW::Mechanizeで Basic認証 - Shohei Yoshida's Diary
    maRk
    maRk 2015/06/11
  • perl の require を知る - skaji's blog

    今、perlがあつい!よって require について知るしかない! "普通" のrequire require(もしくはuse)関数は Module をロードしたいときに使う。 例えば、 require Foo::Bar; # もしくは use Foo::Bar とすると、perlは@INCに入っているディレクトリ以下のFoo/Bar.pmファイルを探しload(eval)しようとする。 すなわち仮に@INCが @INC = ("/path/to/dir1", "/path/to/dir2", "/path/to/dir3") ならば、perlは 候補1: /path/to/dir1/Foo/Bar.pm 候補2: /path/to/dir2/Foo/Bar.pm 候補3: /path/to/dir3/Foo/Bar.pm の順に Foo/Bar.pm を探し、見つかった時点でそれをlo

    perl の require を知る - skaji's blog
    maRk
    maRk 2015/06/08
  • Perl 5.22がリリースされました - 数学関連の機能強化、メソッドのパフォーマンスの改善、正規表現の改善 - Perl入門ゼミ

    Perl › バージョン情報 › here 2015年6月1日に、最新バージョンのPerl 5.22がリリースされました。 Perl 5.22 リリース 今回のリリースでは、活発な機能追加が行われています。 パフォーマンスの改善 Perl 5.22の一番うれしな点は、性能改善です。マルチデリファレンスの構文解析とメソッドの構文解析の改善によって、パフォーマンスがアップしています。 複数階層のデリファレンスの性能改善 Perlの内部パーサーは、複数階層のデリファレンスを効率的に解析できるようになりました。このために、複数階層のデリファレンスのパフォーマンスが上昇しています。 $scores->[0]{math}; メソッド呼び出しとSUPER擬似クラスの性能改善 メソッド呼び出しと、SUPER擬似クラスは、事前に解析され、その情報がキャッシュされるようになっています。そのため、実行時の、メソ

    Perl 5.22がリリースされました - 数学関連の機能強化、メソッドのパフォーマンスの改善、正規表現の改善 - Perl入門ゼミ
    maRk
    maRk 2015/06/03
  • perltrap - 不注意による Perl の罠 - perldoc.jp

    The biggest trap of all is forgetting to use warnings or use the -w switch; see warnings and perlrun. The second biggest trap is not making your entire program runnable under use strict. The third biggest trap is not reading the list of changes in this version of Perl; see perldelta. 最も大きな罠とは、use warnings あるいは -w スイッチを使うのを 忘れてしまうということです; warnings と perlrun を 参照してください。 二番目に大きな罠とは、あなたのプログラム全体を use s

    maRk
    maRk 2015/02/27
  • root権限無しでPerlモジュールを使う

    色々な方法はあるようですが、local::libすらない環境でもPerlモジュールを使う方法があっりました。 CPANMをインストール wget --no-check-certificate -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib # モジュールをインストール。 例ではMojoliciousを入れました。 cd ~/perl5/bin ./cpan Mojolicious 環境変数に自分のパスを設定。 setenv PERL5LIB ~/perl5/lib/perl5 # 動作確認 ./mojo get www.google.com 環境変数を使わない場合でもPerlスクリプトの先頭で読み込ませる事が出来ます。 #!/usr/local/bin/perl BEGIN { push ( @INC,

    maRk
    maRk 2015/02/23
  • perltie - オブジェクトクラスを単純な変数に隠す方法 - perldoc.jp

    perltie - オブジェクトクラスを単純な変数に隠す方法 概要¶ tie VARIABLE, CLASSNAME, LIST $object = tied VARIABLE untie VARIABLE 説明¶ Prior to release 5.0 of Perl, a programmer could use dbmopen() to connect an on-disk database in the standard Unix dbm(3x) format magically to a %HASH in their program. However, their Perl was either built with one particular dbm library or another, but not both, and you couldn't extend this

    maRk
    maRk 2015/01/22
  • Perlで日本語全文検索できるCPANモジュール作りました - 俺とお前とlaysakura

    この記事は↓に移転しました。 laysakura.github.io

    Perlで日本語全文検索できるCPANモジュール作りました - 俺とお前とlaysakura
  • Kindle本「Perlについて語ろう」を出版しました - ゆーすけべー日記

    プログラミング言語「Perl」の入門書「Perlについて語ろう」をKindle向け電子書籍として出版し販売を開始しました。 書は週刊で発行しているメルマガ「 ゆーすけべーラジオ」内の連載を原稿とし、加筆修正したものとなります。文字数はトータルで11万文字ちょい。紙媒体にして100ページ前後というボリュームで、480円という値付けにしてみました。Perl処女脱出から、基的なデータ構造の解説、様々なCPANモジュールの紹介、Webアプリケーションフレームワークの使い方などを「サクっと」した文章とコードでまとめました。Perl初心者の方を対象に、読み終わった頃にはWebアプリ開発ができている!ところまで持っていくことを目標にした入門書です。以下目次になります。 はじめに Perlとは? 初めてのPerl 関数とスカラー、配列 Perlにおけるデータ表現 データを操作する CPANモジュールを

    Kindle本「Perlについて語ろう」を出版しました - ゆーすけべー日記
  • 「なぜ国内でPerlが急速に萎んだのか」という記事を読んで - Perl入門ゼミ

    Perl › 読み物 僕もPerl入門書いている身なので反応しておこうと思います。 メインコンテンツの「サンプルコードによるPerl入門」の目次はこちらです。こちらがメインコンテンツになります。Perlはとても便利なプログラミング言語ですので、一緒に学びましょう。 なぜ国内でPerlが急速に萎んだのか まずこの人はRubyPythonが好きで、Perlが嫌いな人です。まぁ好き嫌いはあってよいんですけど、書いている内容が不誠実すぎて、信用ができないです。 Perlが萎んでいるという議論をする前に、ライブラリの数とか、アプリケーションの数とか、求人とか賃金とか採用している企業とかなんでもいいけれど、何か目に見える統計情報がないと、単なるイメージを落とすために書いていると思われても仕方がないと思う。 2005年 Railsの襲来 2005年に突如現れたRailsによって国内でRuby利用者が急

    「なぜ国内でPerlが急速に萎んだのか」という記事を読んで - Perl入門ゼミ
    maRk
    maRk 2013/03/07
  • 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の食えない事情 - 演算子編 - アリ
    maRk
    maRk 2013/02/05
  • 生のハッシュリファレンスを return したら遅い

    ハッシュリファレンスは畳み込み的に定数扱いじゃなかったのね、ってのに気づいて驚いた(というのが当に遅い原因か確定させて無いけど)(【追記2】参照)。 #!/usr/bin/perl use strict; use warnings; use Benchmark qw/timethese cmpthese/; my $HASH = { foo => 123, bar => 456, baz => 789, }; my $result = timethese (750_000, { 'VAL' => '&logic1;', 'RAW' => '&logic2;', }); cmpthese $result; sub logic1 { _logic1()->{foo}; } sub _logic1 { return $HASH; } sub logic2 { _logic2()->{foo};

    生のハッシュリファレンスを return したら遅い
    maRk
    maRk 2013/01/18
  • CPANモジュールのアンインストール - holidays-l開発ブログ

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

    CPANモジュールのアンインストール - holidays-l開発ブログ
    maRk
    maRk 2012/07/31
  • MovableTypeとWordpressは何が違うか? - omnioo lab.

    MovableType(以下MT)とWordpress(以下WP)は同じCMSでもかなり質の違ったシステムで出来上がっています。実はCMSなどと呼ばれている現状のシステムもそれほどはっきりとした概念ではなくかなり便宜的なものなので、触って構築して動かしている人間にとっては半ばどうでもいい感じがしないでもないわけですが、しかしながら近年においてはこれらのシステムがいろんな意味で便利になっているのは確かです。  MTとWPはそもそもの考え方が全然違うんですね。最大級に違うのはPerlPHPの違いではなく、コンテンツ出力の方法です。かつて2000年前後にITの夜明けがやってきた頃、WEB上に出力されるファイルはHTMLでした。HTMLが最も安定していて軽くて優れた機能を有していたからです。勿論その考え方は今でも尚引き継がれているしHTMLはいずれにしろWEBの根幹をなしています。これらのHTM

    maRk
    maRk 2012/06/14
    よみもの