タグ

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

  • 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入門ゼミ
    advblog
    advblog 2017/07/19
  • Perlで人工知能・機械学習を行うAI::MXNetの出来が凄そうだ - Perl入門ゼミ

    最近知った。Perl人工知能プログラミングを行うAI::MXNetの出来が凄そうだ。ディープラーニングという手法を使った機械学習を行うライブラリです。 これは公式のAmazonクラウドのMZNetでも、Perlの公式ライブラリとして受け入れられたそうだ。 インターフェースはPythonのMXNetライブラリとほぼ一緒に仕上がっているみたい。C++で書かれたMXNetPerlバインディングになっている。 Perl人工知能プログラミングを行うAI::MXNet(CPAN) MXNetのかなり多くの機能をPerlから利用できるようだ。Perlで人口知能プログラミングに興味がある方は、ぜひチャレンジしてみて! ライブラリがあるとPerlでも、人工知能プログラミングができるんだね。すごいね! GPUも使えるみたいよ! ## Convolutional NN for recognizing ha

    Perlで人工知能・機械学習を行うAI::MXNetの出来が凄そうだ - Perl入門ゼミ
    advblog
    advblog 2017/07/14
  • Perlが30倍速くなるかもしれないSPVMの開発版をリリースしました。 - Perl入門ゼミ

    Perlが30倍速くなるかもしれないSPVMの開発版をリリースしました。 SPVM(CPAN) かもしれないと書いたのはベンチマークをまだとってないからで、理論的にはJava VMの速度まで、近づけることができるんじゃないかなと思うから。 開発版なので、まだ機能が足りないのだけれど、CPANにリリースして、CentOS, FreeBSD, Windowsで動かすところまでやったので、ここで公開します。Macを持っていないので、Macの方は、CPANからインストールできるか確認していただけるとありがたいです。 SPVMはPerlに似た新しいプログラミング言語で、バーチャルマシン上で動き、関数をPerlから簡単に呼び出すことができる。 完全な静的型を持ち、Javaと同じデータ型、byte, short, int, long, float, doubleを持つ モジュールを書いてすぐに実行できる

    Perlが30倍速くなるかもしれないSPVMの開発版をリリースしました。 - Perl入門ゼミ
    advblog
    advblog 2017/06/21
  • ポータブルなGitHubシステム「GitPrep 2.6」 リリース - 「Wiki機能」が追加され、ドキュメントが書けるように。 - Perl入門ゼミ

    GitHubのポータブルなクローン「GitPrep 2.6」が、2016年6月10日にリリースされました。 「Wiki機能」が追加され、ドキュメントを書けるようになりました。 このリリースでリポジトリ、プルリクエスト、イシュー、Wikiという主要な4つの機能が実装されました。 上部のタブにWikiが追加されています。 ぜひGitPrepのサンプルを試してみてください。ポータブルな物のGitHubシステムであることが実感できると思います。 GitPrepの特徴 初めて利用される方のために、GitPrepの特徴をご紹介! GitHubのクローン。GitPrepは使い慣れたGitHubと同じインタフェースを持っています リポジトリ、プルリクエスト、イシュー、Wikiをサポート issueシステムのサポート ポータブル。GitPrepをあなたのUnix/Linuxサーバーにインストールできます。

    ポータブルなGitHubシステム「GitPrep 2.6」 リリース - 「Wiki機能」が追加され、ドキュメントが書けるように。 - Perl入門ゼミ
    advblog
    advblog 2017/06/11
  • Google App EngineでついにPerlが利用可能に - Perl入門ゼミ

    Google App EngineでPerlが利用可能になったようです。 Your favorite languages, now on Google App Engine Your favorite languages, libraries and tools (中略) Want to run Perl? Love Elixir? Need to migrate your Parse app? You can do all this and more in App Engine. (太字訳) あなたの好きな言語、ライブラリ、ツールをGoogle App Engineで動かせます。 Perlを動かしたいですか? これらすべてをApp Engineで動かすことができます。 興味のある人は、どんなものか一度チャレンジしてみよう!

    Google App EngineでついにPerlが利用可能に - Perl入門ゼミ
    advblog
    advblog 2017/04/06
  • defined関数 - 値が定義されているかを確認する - Perl入門ゼミ

    Perl › 関数 › here 値が定義されているかを確認するにはdefined関数を使用します。 # 値が定義されているかの確認 $is_defined = defined $value; 定義されているとは defined関数で判定できる定義されている値とはなんでしょうか。考えてみましょう。 変数宣言した場合は、代入による初期化を行わなかった場合は未定義となります。 # 宣言直後は未定義 my $value; 値を代入すると、値が定義されている状態になります。 # 値を代入したので定義されている状態になる $value = 5; undef関数を使って、未定義値が代入されると値は未定義になります。 # undefを代入すると未定義になる $value = undef; 真偽値との違いは? defined関数で判定できる「定義されている/定義されていない」というのは「真/偽」という概念

    defined関数 - 値が定義されているかを確認する - Perl入門ゼミ
    advblog
    advblog 2017/02/07
  • ポータブルなGitHubシステム「GitPrep 2.3」 リリース - 待望の「issue機能」が追加。「バグ管理」が可能に。 - Perl入門ゼミ

    GitHubのポータブルなクローン「GitPrep 2.3」が、2016年8月6日にリリースされました。 待望の「isseu機能」が追加され。「バグ管理」がGitPrep上で可能になりました。 その他、バグ修正、機能強化が含まれています。 「issue機能」の追加。「バグ管理」が可能に。 マークダウン記法で、テーブルをサポート マークダウン記法で、foo_bar_bazが正しく記述できるようになりました 上部のタブにissuesが追加されています。 ぜひGitPrepのサンプルを試してみてください。ポータブルな物のGitHubシステムであることが実感できると思います。 GitPrepの特徴 初めて利用される方のために、GitPrepの特徴をご紹介! GitHubのクローン。GitPrepは使い慣れたGitHubと同じインタフェースを持っています issueシステムのサポート ポータブル。

    ポータブルなGitHubシステム「GitPrep 2.3」 リリース - 待望の「issue機能」が追加。「バグ管理」が可能に。 - Perl入門ゼミ
    advblog
    advblog 2016/08/07
  • 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入門ゼミ
    advblog
    advblog 2016/05/10
  • 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入門ゼミ
    advblog
    advblog 2015/06/02
  • 「なぜ国内でPerlが急速に萎んだのか」という記事を読んで - Perl入門ゼミ

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

    「なぜ国内でPerlが急速に萎んだのか」という記事を読んで - Perl入門ゼミ
    advblog
    advblog 2013/03/07
  • 変数に型がないということの利点について考える - Perl入門ゼミ

    Perl › 読み物 PHPPerlRubyPythonなどのスクリプト言語に対して、変数に型がないということを否定的にとらえる人もいるかと思います。特にC言語やJavaなどの静的言語を使ってきた人にとっては、型がないということが不安材料として目に映ることが多いのではないかと思います。 けれども、型がないということは、当に素晴らしいことです。型がないことによって、たくさんの面倒から解放されるからです。 どのような型の値でも代入できる まず基的なこととして変数に型がなければどのような型の値でも代入できるということです。つまり、受け取るときに、どのような型の値を受け取るのかを意識する必要がありません。 my $str = 'Hello'; my $num = 1; my $nums = [1, 2, 3]; my $person = {age => 2, name => 'taro'

    変数に型がないということの利点について考える - Perl入門ゼミ
    advblog
    advblog 2013/02/27
  • リファレンスの使い方をマスターしよう - 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入門ゼミ
    advblog
    advblog 2012/11/27
  • ソケットによる通信を行う - Perl入門ゼミ

    Perl › ソケット Perlの「ソケット」に関する解説です。 ソケットとは ソケットはネットワークを通じてデータを交換したい場合に使用されます。たとえば、Webサーバはネットワークごしにブラウザとデータを交換します。このとき内部の実装でソケットが使用されています。 Perlのモジュールには、LWP::UserAgentというWebサイトのページを取得するためのモジュールがあります。この実装のもっとも低レベルの部分を見ればソケットが使用されています。 ネットワークを通じてデータを交換したいアプリケーションを作りたい場合は、ソケットを使うか、ソケットを簡単に使用できるようにしたラッパークラスを使用します。 ソケットのイメージ ソケットは一種のファイルハンドルだと考えるのが一番わかりやすいと思います。ファイルを書き込みモードでオープンするには my $fh; my $file = 'some

    ソケットによる通信を行う - Perl入門ゼミ
    advblog
    advblog 2012/11/19
  • Encode 日本語などのマルチバイト文字列を適切に処理する - Perl入門〜サンプルコードによるPerl入門〜

    Perl › モジュール › here 日語などのマルチバイト文字をPerlで適切に扱うにはEncodeモジュールを使用します。次の3つのことを覚えておけば多くの場合適切に日語を扱うことができます。 外部から入力された文字列はEncodeモジュールのdecode関数でデコードする 外部へ出力する文字列はEncodeモジュールのencode関数でエンコードする ソースコードはUTF-8で保存しutf8プラグマを有効にする この解説での用語 この解説では外部から入力された文字列のことを「バイト文字列」と呼ぶことにします。Perlの内部表現に変換された文字列を「内部文字列」と呼ぶことにします。また「バイト文字列」が特定の文字コードで記述されている場合は「UTF-8バイト文字列」「Shift_JISバイト文字列」などと呼ぶことにします。 プログラミングで日語を扱う場合にその文字列がバイト文字

    Encode 日本語などのマルチバイト文字列を適切に処理する - Perl入門〜サンプルコードによるPerl入門〜
    advblog
    advblog 2012/11/05
    基本大事
  • JSON - JSONデータを解析 - Perl入門ゼミ

    Perl › モジュール › here JSONモジュールを使用すると、JSONデータを解析することができます。JSONはデータを記述するための言語で、配列やハッシュなどのデータ構造を表現することができます。JSONは単なる文字列ですので可搬性があります。他のプログラム言語とデータをやり取りした場合によく利用されます。 # モジュールの読み込みと関数のインポート use JSON qw/encode_json decode_json/; JSONをPerlのデータ構造に変換するにはdecode_json関数を使用します。 # JSONをPerlのデータ構造に変換する my $json_in = '[{"name" : "Ken", "age" : 19}, {"name" : "Ken", "age" : 25}]'; my $data = decode_json($json_in); こ

    JSON - JSONデータを解析 - Perl入門ゼミ
    advblog
    advblog 2012/10/16
  • さくらのレンタルサーバーライトプランでCPANモジュールをインストールするためのスクリプト - Perl入門ゼミ

    Perl › Mojolicious さくらのレンタルサーバーライトプラン(月額125円)でCPANモジュールをインストールするためのWebアプリケーション(CGIスクリプト)を書きました。さくらのレンタルサーバーライトプランでは、SSHやTelnetを使えないために、CPANモジュールのインストールは障壁の高いものになってはいますが、このツールを使うとあら簡単に、Webブラウザ上からモジュールをインストールすることができます。 Windows上でMojoliciousの開発を始めて、さくらのレンタルサーバーで公開するまでの手順と同じ手順でさくらのレンタルサーバー上にFTPでアップロードしてください。app.cgiのパーミッションは755にする必要があります。 ディレクトリ構成は以下のようにします。 sakuracpanm - app.cgi モジュールのインストールはテキストボックスにモ

    さくらのレンタルサーバーライトプランでCPANモジュールをインストールするためのスクリプト - Perl入門ゼミ
    advblog
    advblog 2011/03/23
  • Perlの正規表現をマスターしよう - Perl入門ゼミ

    Perl › 正規表現 Perlの正規表現の解説です。この記事を読めば、日常で利用する正規表現のすべてを短時間でマスターすることができます。正規表現を使えば、文字列の集合を表現することができ、正規表現にマッチする文字列を検索したり、置換したりすることができます。 正規表現を使って文字列の集合を表現できます。たとえば「a」「aa」「aaa」という三つの文字列を正規表現で表現してみましょう。連続する文字の個数を表現する正規表現「{}」を使って次のように書くことができます。 a{1,3} 「a」「aa」「aaa」という文字列の集合をひとつの正規表現「a{1,3}」で表しています。{}は量指定子と呼ばれるもので、連続した文字を表現することができます。 a aa -> a{1,3} aaa 正規表現の例をもう一つみてみましょう。「p1」「q1」「r1」という文字列の集合をひとつの正規表現「[pqr]

    Perlの正規表現をマスターしよう - 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入門ゼミ
    advblog
    advblog 2010/01/24
  • Perl6がリリースされてもPerl5は衰退していかないということを伝えたい - Perl入門ゼミ

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

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