タグ

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

  • 「なぜ国内でPerlが急速に萎んだのか」という記事を読んで - Perl入門ゼミ

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

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

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

    変数に型がないということの利点について考える - Perl入門ゼミ
    otsune
    otsune 2013/02/28
  • Perlは後方互換性を維持するスクリプト言語 - Perl入門ゼミ

    Perl › 読み物 後方互換性の維持という観点から見ると、二つのタイプにスクリプト言語を分類することができます。後方互換性を維持する方針を持つスクリプト言語と後方互換性を維持しない方針を持つスクリプト言語です。 後方互換性を維持する方針を持つ Perl, JavaScript 後方互換性を維持する方針を持たない Python, Ruby, PHP 各スクリプト言語の後方互換性 Perlの後方互換性 Perlは非常に高いレベルで後方互換性が維持されてきた言語です。古いバージョンのPerlで書いたスクリプトは、多くの場合新しいバージョンPerlで動かすことができますし、スクリプトの変更は最小限のものですみます。 安定性という点では、非常にPerlは定評があります。 JavaScriptの後方互換性 JavaScriptも非常に高いレベルで後方互換性が維持される言語です。ブラウザに組み込まれて

    Perlは後方互換性を維持するスクリプト言語 - Perl入門ゼミ
    otsune
    otsune 2012/05/01
  • 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入門ゼミ
    otsune
    otsune 2011/05/18
  • 豆知識 - 知っておくと役に立つ - Perl入門ゼミ

    Perl › 豆知識 知っておくと何かとPerlが使いやすくなったり、読みやすくなるかもしれないことをいろいろと追加していきます。 BEGIN BEGINはコンパイルのときに実行するということをあらわします。 BEGIN { # コンパイルのときに実行したい文 } require requireはuseと似ていますが実行時にモジュールを読み込むことと、importメソッドを自動的に実行しないところがことなります。 use File::Basename 'basename'; # 上と同じ意味 BEGIN { require File::Basename; File::Basename->import('basename'); } 動的にモジュールを読み込みたい場合はrequireを使用することがありますが、一般的な用途ではuseで統一するのがわかりやすいでしょう。 local localは

    豆知識 - 知っておくと役に立つ - Perl入門ゼミ
    otsune
    otsune 2010/08/24
  • Perl6がリリースされてもPerl5は衰退していかないということを伝えたい - Perl入門ゼミ

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

    Perl6がリリースされてもPerl5は衰退していかないということを伝えたい - Perl入門ゼミ
    otsune
    otsune 2009/11/22
  • SQLiteで学ぶデータベース操作の基礎 - Perl入門ゼミ

    Perl › データベース › here Perlを使ってデータベースは初級者が学ぶには今までは少し敷居の高いものでした。まずSQLの実行環境を構築する必要がありすぐに勉強したいという需要を満たすことはできていませんでした。 ですが現在はこの状況は変わりました。現在ではActivePerlをダウンロードするとDBD::SQLiteと呼ばれるSQLiteを利用するためのモジュールがパッケージングされています。 またデータベースに接続するためのユーザから見たインターフェイス部分にあたるDBIというモジュールもパッケージングされています。 ですのでActivePerlの最新版をダウンロードするだけで何の環境構築も行わないでデータベースを学習し始めることができます。 DBD::SQLiteDBIがインストールされていることを確認する まずDBD::SQLiteDBIがインストールされているかど

    SQLiteで学ぶデータベース操作の基礎 - Perl入門ゼミ
    otsune
    otsune 2009/11/11
  • 現代的な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入門ゼミ
    otsune
    otsune 2009/11/02
  • Encode 日本語などのマルチバイト文字列を適切に処理する - Perl入門〜サンプルコードによるPerl入門〜

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

    Encode 日本語などのマルチバイト文字列を適切に処理する - Perl入門〜サンプルコードによるPerl入門〜
    otsune
    otsune 2009/10/27
  • Time::Piece - 日付・時刻を扱う新しい方法 - Perl入門ゼミ

    Perl › モジュール › here Perlの5.10からTime::Pieceと呼ばれる時刻を便利に扱うためのモジュールが標準モジュールに加わりました。Perlの5.10以上を使用している場合はTime::Pieceモジュールを日付と時刻を扱いたい場合に利用すると便利です。 従来のPerlでは日付や時刻を直感的に扱う手段が標準モジュールにはありませんでした。日付や時刻を扱うためには少し面倒な作業が必要でした。Time::Pieceは日付と時刻の直感的な操作を提供します。また日付・時刻の書式化の機能や解析する機能も備えます。 Perlには実質的に日付を扱うモジュールのスタンダードといえるDateTimeというモジュールがあります。ただしこのモジュールは標準モジュールではなくCPANからインストールする必要があります。また巨大なモジュールですのでモジュールを読み込む時間が非常にかかります

    Time::Piece - 日付・時刻を扱う新しい方法 - Perl入門ゼミ
    otsune
    otsune 2009/09/21
    とりあえずModule::CoreList 2.18には見当たらないな
  • さくらインターネットサーバでのCPAN導入を完全に手順化して見た - Perl入門ゼミ

    Perl › 環境構築 (この記事の内容は古くなっています、現在はcpanmを使ってモジュールをローカルにインストールするのが簡単でしょう。cpanmによるローカル環境構築を見てください。) otsuneさんのところでさくらインターネットのレンタルサーバでCPANを使用する方法が紹介されているのですが、一部手作業が発生するので、すべてコピペで実行できるように手順化してみました。 さくらインターネットサーバcpan導入手順 # ライブラリのためのディレクトリの作成 mkdir -p ~/local # CPANの設定ファイルを作成 echo no | cpan # cpanコマンドの設定ファイルMyConfig.pmの書き換え # ( __END__の行まで一気にコピーして実行してください。とまった場合はEnter ) perl - ~/.cpan/CPAN/MyConfig.pm > ~/

    さくらインターネットサーバでのCPAN導入を完全に手順化して見た - Perl入門ゼミ
    otsune
    otsune 2009/03/07
    hidekさんのlocal::libによるやり方もオススメ http://blog.hide-k.net/archives/2009/02/locallibrootcpa.php
  • 時刻の差を求める(24時間を越えない場合) - Perl入門ゼミ

    Perl › 日付・時刻 時刻の差を求めるには、まずhhmmssと表記されているものを秒に変換する必要があります。秒の差を求めた上で再度hhmmssの時刻表現に復元します。時刻の差を求めるサンプルです。 use strict; use warnings; print "(1)時刻の差を求める(24時間を越えない)\n"; my $time_str1 = '03:44:23'; my $time_str2 = '22:34:45'; # 時刻の文字列表現を時刻情報のハッシュに変換する。 my $time1 = time_from_str($time_str1); my $time2 = time_from_str($time_str2); # 時刻情報のハッシュを秒に変換して経過秒を計算 my $sec_interval = time_to_sec($time2) - time_to_sec

    時刻の差を求める(24時間を越えない場合) - Perl入門ゼミ
    otsune
    otsune 2008/10/21
    んー「こういうのスクラッチで書くとバグ混入するよね。だからDatetime使いましょう。でも練習だからあえて書きます」とか注意書き欲しいなぁ
  • よいサブルーチンを作成するための心がけ。★★★ - サンプルコードによる Perl 入門

    Perl › サブルーチン › here サブルーチン作成に関するわたしの考えを殴り書きしました。 見出し 引数と戻り値について理解する。 小さなサブルーチンを作成する。 サブルーチンに柔軟性を持たせる。 呼び出しの階層を浅く保つ。 機能を実現するサブルーチンを作成する。 ユーザーを意識する。 将来を楽にすることを考える。 完全な抽象化は求めない。 1. 引数と戻り値について理解する サブルーチンを理解するためには、引数の受け取り方と、戻り値の返却のし方を覚えれば十分です。なぜなら、引数を受け取ってから、戻り値を返却をするまでは、今まで学習したプログラミングとなんら変わることがないからです。引数と戻り値の扱いを、覚えたら、すぐに実践に移りましょう。 サブルーチン作成で、難しいのは、以下の4点です。 何をサブルーチンにするか どのような名前をつけるか 引数を何にするか 戻り値を何にするか 正

    よいサブルーチンを作成するための心がけ。★★★ - サンプルコードによる Perl 入門
    otsune
    otsune 2008/06/17
  • 1