タグ

ブックマーク / perlcodesample.hatenadiary.jp (21)

  • googleのエンジニアが書いたPerlの入門記事を紹介してほしいと依頼されたので紹介するよ - Perl入門ゼミ

    1ヶ月ちょっとくらい前に、僕のgmailの方に「googleエンジニアが150時間」かけて書いたPerlの入門記事を紹介してほしいというメールが来た。YAPCなどがあって忙しかったが、ようやく落ち着いたので紹介するよ。僕の英語のブログの方でも紹介予定だけど、先にここで紹介しておく。 PERL Tutorial for Beginners - Complete Guide シリコンバレーのエンジニアは、Perlを紹介してくれることが少なかったような気がするけれど、最近は、Google APPエンジンのところでPerlに対応したことを伝えてくれたり、Amazon人工知能のスケーラブルなMXNetクラウドでは、Perlのライブラリを公式に加えてくれたりしている。 そして、一か月くらい前には、googleのベテランのエンジニアが、Perlの入門記事を150時間かけて書いているのを、まとめたので

    googleのエンジニアが書いたPerlの入門記事を紹介してほしいと依頼されたので紹介するよ - Perl入門ゼミ
  • Perlの最新バージョン 5.24リリース - サブルーチンと数値計算の高速化、Unicode 8.0のサポート、文法機能強化 - Perl入門ゼミ

    Perl › バージョン情報 › here Perlの最新バージョン5.24がリリースされました。今回のリリースでは、Perlのサブルーチンと数値計算の高速がなされています。また、機能面では、Unicode 8.0のサポートがなされました。文法的な強化として、前方デリファレンスの実験的なステータスがはずされています。その他、細かなバグフィックスがなされました。 Perl 5.22に引き続きPerl 5.24では、Perlの内部コードの改善がなされています。パフォーマンスの改善という大きなメリットがありますが、いくつかの副作用もありますので、合わせて、解説します。 自分が技術的に不慣れで、安定的なPerlを望むなら、今のところPerl 5.20がおすすめです。技術的に強く、パフォーマンスの改善や新しい機能にチャレンジしたい方は、Perl 5.24にトライしてみてください。 以下で、Perl

    Perlの最新バージョン 5.24リリース - サブルーチンと数値計算の高速化、Unicode 8.0のサポート、文法機能強化 - Perl入門ゼミ
  • DDP - データをわかりやすく出力する - Perl入門ゼミ

    Perl › モジュール › here データをわかりやすく出力するのにDDPというモジュールを利用することができます。 ハッシュや配列が入れ子になった複雑なデータの内容を見るのに便利です。 # データをわかりやすく出力 use DDP; p $data; DDPはData::Printerというディストリビューションに含まれているので。Data::Printerをインストールすれば、DDPもインストールされます。 Perlのデータを出力するためのツールとしてコアモジュールとしてData::Dumperがあります。Data::Dumperは次の点で使いにくい部分があります。一つ目は、文字列が内部表現で出力されるので、どのような文字列が含まれているかを、確認しにくということです。もうひとつは、データのダンプはよく使う機能なのに、タイピングが少し長いという点です。 DDPには以下のような特徴が

    DDP - データをわかりやすく出力する - Perl入門ゼミ
  • delete関数 - ハッシュのキーの削除 - Perl入門ゼミ

    Perl › 関数 › here delete関数を使用すると、ハッシュのキーを削除することができます。キーに対応する値も削除されます。戻り値は削除されたキーに対応する値です。 my $value = delete $hash{$key}; ハッシュのリファレンスに対してdelete関数を使用する場合は次のように書きます。 my $value = delete $hash->{$key}; delete関数を使って、ageというキーを削除するサンプルです。 # ageというキーを削除 my %person = (name => 'Ken', age => 19); delete $person{age}; ハッシュのリファレンスの場合のサンプルです。 # キーを削除。リファレンスの場合。 my $person = {name => 'Ken', age => 19}; delete $pe

    delete関数 - ハッシュのキーの削除 - Perl入門ゼミ
    m_shige1979
    m_shige1979 2014/12/14
    ハッシュ型のキーを削除する方法
  • アプリケーションとコントローラーの機能 | Mojolicious入門 - Perl入門ゼミ

    Perl › Mojolicious MojoliciousはWebアプリケーションを作る為の便利な機能をたくさん持っています。その中でも、使用頻度が高いものを紹介したいと思います。最初にこれらを覚えておけば、どうしたらいいかを迷わなくてすむと思います。 アプリケーションオブジェクト アプリケーションの体を表すオブジェクトをapp関数で取得することができます。app関数はMojolicious::Liteを読み込んだときに、自動的にインポートされます。 use Mojolicious::Lite; # アプリケーションオブジェクト my $app = app; アプリケーションオブジェクトはMojoliciousクラスに属しており、Mojoliciousクラスのメソッドを呼び出すことができます。メソッドの一覧についてはMojolicious API リファレンスを参考にしてください。 ホ

    アプリケーションとコントローラーの機能 | Mojolicious入門 - Perl入門ゼミ
  • XML::Simple - 簡単にXMLを解析 - Perl入門ゼミ

    Perl › モジュール › here XML::Simpleモジュールを使うと簡単にXMLを解析してPerlのデータ構造に変換することができます。XMLの解析手法には「先頭から順次解析を行うSAX」と「XMLツリー構造を構築するDOM」が有名ですが、簡単に扱うという点では、XML::Simpleが一番です。 XMLはテキストファイルにデータを記述するときの一般的なフォーマットです。プログラムの設定ファイルを記述するときなどに利用することができます。 # モジュールの読み込みとオブジェクトの生成 use XML::Simple; my $xml = XML::Simple->new; XMLファイルを読み込むにはXMLinメソッドを使用します。XMLはPerlのデータ構造(多次元のハッシュや配列)に変換されます。 # XMLファイルのパース my $data = $xml->XMLin('

    XML::Simple - 簡単にXMLを解析 - Perl入門ゼミ
  • パラメーターを取得する / Mojolicious - Perl入門ゼミ

    Perl › Mojolicious Mojoliciousでパラメーターといった場合次の三つの要素を含むことが多いので、まず次の三つのものの区別をしておきましょう。 クエリ文字列に含まれるデータ POSTで送信されたHTTPボディに含まれるデータ URLの中でキャプチャされたデータ (1)クエリ文字列に含まれるデータ クエリ文字列とはURLの?以降に設定されるデータのことです。 http://somehost.com/search?name=Ken&age=19 それぞれのパラメーター「パラメータ名:値」は「&」で結ばれた形になっています。クエリ文字列によるパラメータは、何かを検索するときによく利用されいます。 (2)POSTで送信されたHTTPボディに含まれるデータ これはフォームの送信などでHTTPボディに含まれるデータです。 URLの中でキャプチャされたデータ Mojoliciou

    パラメーターを取得する / Mojolicious - Perl入門ゼミ
  • ヒアドキュメント - 複数行の文字列を簡単に作成 - Perl入門ゼミ

    Perl › 演算子 › here ヒアドキュメントを用いれば複数の文字列をわかりやすく記述することができます。 my $text = <<'EOS'; aaaa iiii uuuu EOS ヒアドキュメントを用いれば、<<'EOS' と EOS にはさまれた行にある文字列を、改行を維持して文字列に代入することができます。 セミコロンの位置に注意しましょう。最後のEOSのあとには、セミコロンはなくて、 最初の行の最後にセミコロンがあります。 EOSという部分は任意の文字列で構いません。このサンプルでは「End Of String」という意味でEOSを使っています。 ヒアドキュメントの中で変数展開する <<'EOS' を <<"EOS" に変更すれば、ヒアドキュメントの中で、変数展開が可能になります。 my $message = 'Hello'; # 変数展開可能なヒアドキュメント my $

    ヒアドキュメント - 複数行の文字列を簡単に作成 - Perl入門ゼミ
  • Mojoliciousですべての処理の前に実行する処理をアンダーで記述する - Perl入門ゼミ

    Perl › Mojolicious たとえば認証などを行う場合は、すべての処理の直前で、ログインしているかどうかを確認したいと思います。このような場合はアンダーという機能を利用します。ルートからunder()でアンダーを作成して、実行したいコールバックを指定します。コールバックの戻り値が、真の場合は続きの処理を行い、偽の場合は続きの処理を行いません。 sub startup { my $self = shift; my $r = $self->routes; # 認証 $r = $r->under(sub { my $self = shift; if ($self->session('login_name')) { return 1; } else { my $url = $self->req->url->to_string; if ($url =~ m#login$#) { retur

    Mojoliciousですべての処理の前に実行する処理をアンダーで記述する - Perl入門ゼミ
  • Digest::SHA - SHAによるダイジェスト値を求める - Perl入門ゼミ

    Perl › モジュール › here Digest::SHAモジュールを使用すると、各種SHAの値を求めることができます。SHA-1値を求めるには以下の関数を使います。 # モジュールの読み込みと関数のインポート use Digest::SHA 'sha1_hex'; sha1_hex関数を使用するとSHA-1の値を40桁の16進数の文字列として取得できます。 # SHA-1値を求める my $sha1_sum = sha1_hex 'alkeiop2lkj39'; 結果は次のような40桁の16進数になります。 # SHA-1値(16進数の文字列で取得) 20b07a8050be5dd980b1c17109fbbffaf3194498 Digest::SHAに関するFAQ Q. 簡単にいうとSHAとはなんでしょうか。 A. 「ある値」から「元の値を推測することがとても難しい値」を作り出す

    Digest::SHA - SHAによるダイジェスト値を求める - Perl入門ゼミ
  • Perl 5.20がリリース - ipv6のサポート、サブルーチンの新しい文法、新しいスライス記法、Unicode 6.3への対応など - Perl入門ゼミ

    Perl › バージョン情報 › here Perl 5.20がリリースされました。今回は結構盛りだくさん。ピックアップして紹介します。 Perl 5.20で追加・変更された機能 IO::Socket::IPがコアモジュールに Perl 5.20ではIO::Socket::IPがコアモジュールになりました。Perlではソケットを使う場合にIO::Socket::INETを使っていましたが、ipv6のサポートを含めて、同一のインターフェースで利用できるモジュールのようです。 CGI,Module::Buildが廃止予定になります 長年コアモジュールだったCGIモジュールが、次期リリースでコアからはずれます。。また、ピュアPerlでmake相当のことができるModule::Buildが次期リリースでコアからはずれます。 次期リリースのPerl 5.22からは、CGIモジュールは必要であればcp

    Perl 5.20がリリース - ipv6のサポート、サブルーチンの新しい文法、新しいスライス記法、Unicode 6.3への対応など - Perl入門ゼミ
  • 現代的なPerlの記述方法一覧 - Perl入門ゼミ

    Perl › here Perl5.8以降における標準的なPerlの書き方を解説します。 インターネットで検索するとPerl4のころの古い記述がたくさんあります。また書籍などの多くもPerl4の記法で書かれています。Perl4の記法は複雑になりやすく間違いを生みやすいのでこれからPerlを書く人はPerl5の現代的な記法で記述することを強くお勧めします。 strictプラグマとwarningsプラグマ (必須) strictプラグマとwarningsプラグマを有効にします。 use strict; use warnings; use strict;とuse warnings;の2行はスクリプトの最初に必ず記述してください。これらはPerlの文法チェックを厳しくするためのものです。面倒だという軽い気持ちでこれを記述しないと後々当に面倒なことになります。 use strict;とuse wa

    現代的なPerlの記述方法一覧 - Perl入門ゼミ
  • rand関数 - 乱数を生成する - Perl入門ゼミ

    Perl › 関数 › here 乱数を生成するにはrand関数を使用します。引数で指定した数より小さい0以上の数値がランダムで生成されます。 $ret = rand 10; 乱数とはランダムな数のことです。アプリケーションを作成するときは、時にランダムな数がほしいときがあります。ゲームでさいころを投げたりクイズを出したりするときに使われます。またデータを暗号化するときの鍵の作成などにも使われたりします。 rand関数に、たとえば「10」を指定すれば、「2.34...」「5.36...」「9.45...」など、0以上で、10より小さい数が、生成されます。 サンプル rand関数で生成した乱数を利用するサンプルです。 use strict; use warnings; print "(1)乱数を発生させる。( 10以下の整数 )\n"; for my $i (1 .. 10) { # ran

    rand関数 - 乱数を生成する - Perl入門ゼミ
  • Exporter - 関数のエクスポート / Perlモジュール徹底解説 - サンプルコードによるPerl入門

    Perl › モジュール › here Exporterモジュールを使用すると、モジュールから関数をエクスポートすることができます。 # パッケージの宣言 package YourModule; # Exporterを継承 use Exporter 'import'; # エクスポートする関数を記述 our @EXPORT = qw/func1 func2/; # エクスポート可能な関数を記述 our @EXPORT_OK = qw/func3 func4/; # 関数 sub func1 { ... } sub func2 { ... } sub func3 { ... } sub func4 { ... } Exporterを使ってモジュールを作成すると、そのモジュールをuseしたときに関数がインポートされます。 「use モジュール名;」という形でuseを実行した場合は@EXPORT

    Exporter - 関数のエクスポート / Perlモジュール徹底解説 - サンプルコードによるPerl入門
  • Mojoliciousのテンプレートヘルパー - Perl入門ゼミ

    Perl › Mojolicious テンプレートで利用すると便利なヘルパーについて解説したいと思います。ヘルパーとは、テンプレート内で呼び出すことのできる関数のようなものだと考えてください。layoutヘルパー、stashヘルパーについては、すでに解説していますので、それ以外のヘルパーについて解説します。 スタイルシートの埋め込み テンプレートの中にスタイルシートを記述したい場合はstylesheetタグヘルパーを使用します。beginとendで囲った部分にスタイルシートを書きます。 %= stylesheet begin body { background:blue; } % end 通常の方法でstyleタグを使って書いてもよいのですが、こちらのほうが簡潔ですし、汎用性のあるタグに展開されるので便利です。以下のようなタグに展開されます。 <style>/*<![CDATA[*/ bo

    Mojoliciousのテンプレートヘルパー - Perl入門ゼミ
    m_shige1979
    m_shige1979 2014/04/14
    これでテンプレートを指定できる
  • ルーティングの基礎 | Mojolicious入門 - Perl入門ゼミ

    Perl › Mojolicious 次にルーティングについてもう少し詳しく解説します。ルーティングとはURLと処理の対応の記述のことです。 簡単なルーティングについては、これまでも使ってきました。 get '/' => sub { ... }; get '/info' => sub { ... }; get '/date/:date' => sub { ... }; ここでは、ルーティングについてもう少し詳しく解説します。 プレースホルダー 最初にプレースホルダーについて解説します。 通常のプレースホルダー 先頭にコロンをつけると、その部分はパラメーターとして取得できることは説明しました。 get '/date/:date' => sub { my $self = shift; my $date = $self->param('date'); }; Mojoliciousでは、これをプレ

    ルーティングの基礎 | Mojolicious入門 - Perl入門ゼミ
  • GitPrep - ポータブルなGithubシステムをUnix/Linuxにインストール - Perl入門ゼミ

    Perl › here GitPrepはGithubのクローン、ポータブルなGithubシステムをUnix/LinuxにインストールできるWebアプリケーショGitPrepです。インストールはとても簡単で、ひとつのコマンドだけでインストールすることができます。 Githubの機能を、会社などでも無料で使いたいという自分の要望のために書き始めましたが、だんだん機能がそろってきて、どなたでも使ってもらえるところまできました。バージョン1.0をリリースしました。gitというツールは、Githubがないと、使いにくいsvnくらいの認識しかされないので、社内リポジトリのsvnからの移行のためには、こういうツールがあると、便利だと思います。 ユーザーの作成は無制限、プライベートリポジトリも無制限に作成することができます。GitPrep自体はオープンソースですので、無料で利用することができます。さくらレ

    GitPrep - ポータブルなGithubシステムをUnix/Linuxにインストール - Perl入門ゼミ
  • Mojoliciousのインストール - Perl入門ゼミ

    Perl › Mojolicious › 入門 Mojoliciousをインストールしましょう。Perlでは、モジュールをインストールするのにcpanコマンドあるいはcpanmコマンドを使用します。CPANは有志によって作られたたくさんのモジュールが、登録されているサイトです。モジュールというのは、プログラムの部品のことです。 MojoliciousもモジュールとしてCPANに登録されているので、インストールして利用することができます。 Windowsの場合 Windowsの場合はモジュールをインストールするには、cpanコマンドを使用します。cpanコマンドを使ってMojoliciousをインストールすることができます。 cpan Mojolicious Mac OS X, Linux, Unix系OSの場合 Mac OS X, Linux, Unix系OSの場合は、Perlのインストー

    Mojoliciousのインストール - Perl入門ゼミ
  • Perl基礎文法最速マスター - Perl入門ゼミ

    Perl › 基礎文法 ITの現場でPerlが必要になって、今勉強しているという方はおられませんか? 他の言語をある程度知っている方が「Perl基礎文法最速マスター」を読めば、Perlの使い方の基礎をマスターしてPerlを書くことができるようになっています。 基礎 文法チェック 文法をチェックを厳しくするために最初に必ず次の2行を書くようにします。 use strict; use warnings; 「use strict」と「use warnings」という2行を加えることで事前に文法チェックが行われるので、ソースコードを記述する作業は速くなり、コードの品質が上がります。 print関数 文字列を出力するにはprint関数を使用します。 print "Hello world"; Perlでは標準関数や事前に定義されている関数で括弧を省略することができます。 コメント Perlのコメントで

    Perl基礎文法最速マスター - Perl入門ゼミ
  • Perl入門ゼミ

    Perlプログラミングを学びたい人向けのPerl入門講座です。 Perlはテキスト処理に最適化されたプログラミング言語です。Linuxシステム管理、Web開発という分野でも大活躍。後方互換性、ライブラリの安定性、数多くのOSサポートに定評があります。 Perl入門 PerlのインストールPerlのインストール方法を解説。WindowsmacOS、Unix/Linux対応。 基礎文法最速マスターPerlプログラムの基のすべて 文字列処理Perlは文字列処理が得意。文字列の連結や文字列関数などを解説 if文による条件分岐if、elsif、elseの条件分岐の構文をマスターすれば、条件で処理を変えるPerlプログラムが書ける。 for文、while文による繰り返しfor文、while文と繰り返し構文を覚えれば、Perlで繰り返し実行する処理が書けるようになります。 正規表現正規表現を覚えると

    Perl入門ゼミ