タグ

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

  • Perlの最新バージョンPerl 5.26リリース。インデント可能ヒアドキュメント、Unicode 9.0、長いキーのハッシュの性能改善 - Perl入門ゼミ

    Perl › バージョン情報 › here 2017年5月30日にPerl 5.26がリリースされました! Perlの登場が1987年ですから、ついに30年目を迎えます! 機能の追加 Perl 5.26におけるいくつかの機能の追加です。便利そうなものをピックアップしてみます。 インデント可能ヒアドキュメント インデント可能ヒアドキュメントの構文が追加されました。これは便利そうです。 my $message = <<~EOS; Hello World EOS 末尾の文字(ここではEOS)の位置が、左の位置になって、出力結果は以下のようになります。 Hello World エディタで、ソースコードの色付けがうまくできるようになるとさらによい感じです。 Unicode 9.0のサポート Unicode 9.0がサポートされました。Unicode 9.0でさらに追加された顔文字などを扱うことができ

    Perlの最新バージョンPerl 5.26リリース。インデント可能ヒアドキュメント、Unicode 9.0、長いキーのハッシュの性能改善 - Perl入門ゼミ
    n2s
    n2s 2017/06/01
  • 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入門ゼミ
  • 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入門ゼミ
    n2s
    n2s 2014/05/29
  • 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入門ゼミ
    n2s
    n2s 2013/04/24
  • Mojoliciousをサブディレクトリで運用する - Perl入門ゼミ

    Perl › Mojolicious 番環境で複数のアプリケーションをデプロイするときには、サブドメイン運用ができるのであれば、リバースプロキシ + サブドメインでのデプロイをお勧めします。難しいことを考えないでも、サブドメインごとにバーチャルホストを設定してあげれば、アプリケーションの変更がいらないからです。 でもMojoliciousを使えばサブディレクトリで運用することも可能です。リバースプロキシ + サブディレクトリで運用する方法を紹介します。httpサーバーはApacheとします。 まずApacheの設定ファイルです。 <VirtualHost *:80> ServerName perlcodesample.com <Proxy *> Order deny,allow Allow from all </Proxy> ProxyRequests Off ProxyPreserve

    Mojoliciousをサブディレクトリで運用する - Perl入門ゼミ
  • metaCPAN APIを利用してモジュールの情報を取得する - Perl入門ゼミ

    Perl › CPAN モジュール名とバージョンを指定して、ファイルを自動的に取得するということは、今までのCPANだととても困難だったですが、metaCPANの登場によってこの状況は変わりそうです。変わりそうというのは、まだmetaCPANのAPIがベータバージョンだからですね。 それでも、metaCPANのAPIは今でも便利です。APIはバージョンごとに管理されるようなので、後方互換性も保たれるような予感です。 情報の取得 以下のようにして情報を取得できます。 http://api.metacpan.org/v0/release/_search?q=name:DBIx-Custom-0.2107&fields=download_url,name 実際にアクセスしてみると、JSON形式で情報が返されます。download_urlを見てみると、実際にファイルのある場所のURLがわかります。

    metaCPAN APIを利用してモジュールの情報を取得する - Perl入門ゼミ
    n2s
    n2s 2012/02/03
  • Perlデバッガの手引き - Perl入門ゼミ

    Perl › デバッガ Perlのとても便利な道具のひとつにデバッガがあります。デバッガを使うとスクリプトを一行づつたどって変数の中身を見たり、ブレークポイントを設定してその位置で停止したりすることができます。 デバッガは当に便利なのですがPerlをやっていても意外と知らない人がいます。ひとたびデバッガを覚えてしまうと試験をするときに手放せなくります。Perlを覚えたての時期からどんどん使っていって欲しいツールです。そんなデバッガのコマンドとテクニックをまとめてみました。 デバッグ用のスクリプト デバッグ用の簡単なスクリプトを準備しました。debug.plという名前で保存してください。このスクリプトを使用してデバッガの解説をします。 my $message = 'Hello'; my @nums = (1, 2, 3); my %scores = (math => 80, english

    Perlデバッガの手引き - Perl入門ゼミ
  • MySQL::Diff - MySQLのデータベースの差分を調べる - Perl入門ゼミ

    Perl › モジュール › here MySQLのデータベースの差分から、差分をなくすようなコマンドを自動生成するツールを探していたら、MySQL::Diffというモジュールを発見した。このモジュールにはmysqldiffというコマンドラインツールがついているので、通常はこちらを使うのが良いみたい。 開発環境と番環境の差分を埋めるのにとても役立つ。すべての差分を表示してくれるわけではなく、テーブル定義に関する部分だけのようなので、トリガやインデックスについては、自分で設定する必要があるようです。 ドキュメントにはオプションの説明がないようなので、--helpコマンドで確認できる。 mysqldiff --help まずデータベースのテーブル定義をmysqldumpで取得しましょう。今は開発環境にいて開発環境のデータベースサーバーに変更を加えていると仮定します。 mysqldump -d

    MySQL::Diff - MySQLのデータベースの差分を調べる - Perl入門ゼミ
    n2s
    n2s 2011/11/27
    mysqldiffコマンド付き
  • Windows上でMojoliciousの開発を始めて、さくらのレンタルサーバーで公開するまでの手順 - Perl入門ゼミ

    Perl › Mojolicious Windows上でMojoliciousというWebフレームワークを使ってWebアプリケーションの開発を行い、さくらのレンタルサーバーのライトプランで公開するまでの手順を書きたいと思います。ライトプランは1ヶ月あたり125円なので気軽にWebフレームワークを試してみることができます。現代的なWebフレームワークを使って、気軽にWebアプリケーションを作成できるのはPerlの良いところですね。 またSQLiteというデータベースも使ってみましょう。 環境構築 ActivePerlにはDBD::SQLiteDBIが含まれていますから、データベース関連のモジュールをインストールする必要はありません。またさくらのレンタルサーバーでもSQLiteが最初から利用できますので、こちらも何の準備もする必要はありません。 行うことはMojoliciousをダウンロード

    Windows上でMojoliciousの開発を始めて、さくらのレンタルサーバーで公開するまでの手順 - Perl入門ゼミ
  • DBIx::Custom - SQLでデータベースに簡単アクセス - Perl入門ゼミ

    Perl › モジュール › データベース › here DBIx::Customは「insert,update,delete,select」などのデータベースへのクエリを簡単にするためモジュールです。O/Rマッパーとしては、覚えることが少なく、生のSQLに近い記述ができます。 DBIx::Customは以下のような便利な機能を備えています。 insert, update, delete, selectを簡単に実行、高速insert文、バルクインサートサポート 柔軟なWhere句の生成、柔軟なorder by句の生成、名前つきプレースホルダのサポート MySQL, PostgreSQL, SQLite, Oracle, Microsoft SQL Server, Microsoft Accessをサポート サンプルコードを見てください。 use DBIx::Custom; my $dbi

    DBIx::Custom - SQLでデータベースに簡単アクセス - Perl入門ゼミ
  • Perl 5.14 リリース - Perl入門ゼミ

    Perl › バージョン情報 › here Perl5.14がリリースされましたね。個人的に気になった部分。 Unicode6への対応 Unicode6に対応しました。絵文字などが利用できます。ただし一部Perlの内部実装とぶつかる部分がある(ベルをあらわす文字)。これは将来的にはUnicode6で扱われる文字に置き換えられるようです。 IPv6サポートの改善 IPv6に対応するアプリケーションが書きやすくなりました。 CPANコマンドの改善 CPANコマンドの設定がより自動で行われるようになりました。またlocal::libが組み込まれたので、ユーザー環境へのインストールが、CPANコマンドだけでもできるようになりました(たぶん)。 標準モジュールにHTTPクライアントが追加 標準モジュールにHTTP::TinyというHTTPクライアントが追加されました。CPANモジュールが外部への依存

    Perl 5.14 リリース - Perl入門ゼミ
    n2s
    n2s 2011/05/17
  • perlbrew - ユーザー環境にPerlをインストールする - Perl入門ゼミ

    Perl › モジュール › here ユーザー環境にPerlをインストールするにはperlbrewというツールを使用します。システム標準のPerlを利用したくない場合や新しいバージョンのPerlを利用したい場合は便利です。またperlbrewを使うと複数のバージョンのPerlの切り替えを行うことができます。 perlbrewのインストール 以下のコマンドを実行します。 curl -L http://install.perlbrew.pl | bash もしcurlコマンドがなければ、以下のコマンドを実行してみてください。 # Linux wget -O - http://install.perlbrew.pl | bash # FreeBSD fetch -o- http://install.perlbrew.pl | sh cpanから二つの手順でインストールすることもできます。 su

    perlbrew - ユーザー環境にPerlをインストールする - Perl入門ゼミ
  • Perlのスコープについて理解しよう - Perl入門ゼミ

    Perl › スコープ Perlのスコープについて理解を深めましょう。この記事はstrictプラグマを有効にした前提で書いていますので、ソースコードの先頭には普段どおり以下のように書いてくださいね。 use strict; use warnings; スコープの作成 Perlのスコープは「{」で始まり「}」で終わります。 { # スコープ } スコープの意味 レキシカル変数 スコープの中で宣言されたレキシカル変数(myで宣言された変数)は、そのスコープ内でしか参照することができません。また変数に含まれる値はスコープが終わった時点で解放されます。 { my $num = 1; # 参照できる print $num; } # この位置では参照できない print $num; パッケージ変数 スコープの内部で宣言されたパッケージ変数(ourで宣言された変数)は、そのスコープの中では部分名で参照で

    Perlのスコープについて理解しよう - Perl入門ゼミ
    n2s
    n2s 2011/04/11
    myとourその他について。あえてオミットしたんだろうけどlocalについても言及して欲しかった。別記事でmyとlocalの比較は如何でしょうか?>id:perlcodesample
  • Webアプリケーション開発入門 - Perl入門ゼミ

    このページの内容はMojolicious入門に移動しました。

    Webアプリケーション開発入門 - Perl入門ゼミ
  • cpanmによるPerlのローカル環境構築 - Perl入門ゼミ

    Perl › モジュール › here cpanmを使ってローカル環境を構築する手順です。迷わない一直線の手順です。 cpanmのインストール 以下のコマンドを個人ユーザで実行してください。 # cpanmのインストール curl -L -O http://xrl.us/cpanm perl cpanm App::cpanminus cpanmを使うと簡単にローカル環境にCPANモジュールをインストールできるようになります。root権限がない場合はユーザのホームディレクトリ以下のperl5というディレクトリ以下にCPANモジュールがインストールされます。インストールには時間がかかるかもしれませんが、しばらく待ちます。 モジュールやコマンドを利用するための設定 インストールしたモジュールやコマンドを利用するには次の設定を「.bashrc」というbashの設定ファイルに追加する必要があります。

    cpanmによるPerlのローカル環境構築 - Perl入門ゼミ
    n2s
    n2s 2011/01/15
  • リファレンスの使い方をマスターしよう - Perl入門ゼミ

    Perl › here リファレンスとはデータを指し示すものを表現します。C言語のポインタのようなものだと考えると理解しやすいです。 配列のリファレンス 配列のリファレンスについて解説していきます。 配列 配列の作成です。 my @nums = (1, 2, 3); 配列のリファレンスの作成 配列のリファレンスの作成です。リファレンスは「\」記号を使って作成します。 my @nums = (1, 2, 3); my $nums = \@nums; 「リファレンス」とは「指すもの」を意味します。$numsは@numsを指しています。 $nums ---> @nums 無名配列のリファレンスの作成 無名配列のリファレンスの作成です。「[]」は無名配列生成子と呼ばれます。 my $nums = [1, 2, 3]; $numsは、名前を持たない「(1, 2, 3)」という配列を指し示しています。

    リファレンスの使い方をマスターしよう - Perl入門ゼミ
    n2s
    n2s 2010/11/22
  • 公式ドキュメント一覧(日本語訳つき) - Perl入門ゼミ

    Perl › 公式ドキュメント Perlの公式ドキュメントの一覧です。日語訳が存在するものはリンクしています。 概観 初心者のためのPerlの入門 (perlintro) 入門 Perlリファレンスの短い入門 (perlreftut) Perlデータ構造入門 (perldsc) Perlデータ構造: 配列の配列 (perllol) Perl正規表現クイックスタート (perlrequick) Perl正規表現入門 (perlretut) 初心者のためのPerlオブジェクト指向入門 (perlboot) Perlオブジェクト指向入門 その1 (perltoot) Perlオブジェクト指向入門 その2 (perltooc) Perlオブジェクト指向 秘訣とサンプル (perlbot) Perlパフォーマンスと最適化のテクニック (perlperf) Perlスタイルガイド (perlstyl

    公式ドキュメント一覧(日本語訳つき) - Perl入門ゼミ
  • なぜPerlで例外処理のfinallyが特に必要と感じないかを考えてみた - Perl入門ゼミ

    Perl › 読み物 Perlでは例外を発生させるにはdieを使います。これはJava言語でいうthrowにあたります。例外をキャッチするにはevalを使用します。これはJava言語でいうcatchにあたります。例外が発生したかどうかは$@にメッセージが設定されたかで判定できます。 # Perlの例外処理 eval { # 例外を発生させる処理 } if ($@) { } Perlには知ってのとおりfinally文がありません。でも特に困るというような話を聞きません。なぜでしょうか。finally文で実行される処理は、ほとんどの場合、外部リソースの解放です。ファイルを閉じたり、一時ファイルを削除したり、DBへの接続を解放したりする処理です。このような処理をfinally文で実行したいという要望があります。 なぜJavaではfinally文は必須なのでしょうか。JavaではGCが「世代別GC

    なぜPerlで例外処理のfinallyが特に必要と感じないかを考えてみた - Perl入門ゼミ
    n2s
    n2s 2010/07/16
    例外処理から、GC・デストラクタ・Rubyの話にまで展開しているのが面白い
  • Perl6がリリースされてもPerl5は衰退していかないということを伝えたい - Perl入門ゼミ

    Perl › 読み物 Perl6について皆さんはどんな考えを持っていますか? 「もうすぐPerl6がリリースされる」「Perl5はだんだんと衰退していってをPerl6に移行してゆく」「Perl5の次世代で機能が豊富でPerl5の悪い部分は取り除かれて使いやすくなっている」「Perl5のような汚いコードではなくてきれいなコードが書ける」 もしこのような考えを持っているとしたらこれは大きな誤解です。当初の理念としてはこれが正しいのかも知れませんが、Perl6の現在おかれている状況はこれとはまったく異なります。 Perl5の現在 Perl5はPerl4の純粋な後継でほぼ互換性があります。普通に書かれたPerl4のコードについてはわずかな修正を加えるだけでPerl5で実行することができます。 よく言われるPerlの汚いコードというのは「Perl4で書かれたコード」のことです。Perl5ではソースコ

    Perl6がリリースされてもPerl5は衰退していかないということを伝えたい - Perl入門ゼミ
    n2s
    n2s 2009/11/21
  • 現代的な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入門ゼミ
    n2s
    n2s 2009/11/01