タグ:Perl ( 25 ) タグの人気記事
2013年07月19日の日記、「Perl徹底攻略」
「Perl徹底攻略」というムックがもうすぐ発売されます。
僕は結構前にAmazonで予約済み♪
「まだかまだか」とずっと待っていましたが、なんだか僕のRSSリーダがここ数日でたくさんニュースを拾って来ました。

なるほどー!
どおりでいつもタメになるブログ記事を読んでいると思うワケです!
執筆者さんばかりではないですか!
僕はまだ自他共に認められる「Perl初心者」なので、有名人さんをまだあんまり知らないんです。
執筆者さんの中の人だと、小飼弾さんとゆーすけべーさんしか存じなかったです;

いやー楽しみだなあ(*´ω`*)

YappoLogs: Perl徹底攻略という本を作った話
http://blog.yappo.jp/yappo/archives/000822.html

「Perl徹底攻略」が7月23日に発売になります - Technology of DeNA
http://engineer.dena.jp/2013/07/perl-webdb-press-plus-723.html

[Perl5]Perlの今がわかる! 『Perl徹底攻略』という本ができました
http://blog.64p.org/entry/2013/07/18/145746

「Perl徹底攻略」という本ができました : D-7
http://lestrrat.ldblog.jp/archives/30593920.html

LINE HR Blog : 【書籍情報】Perl徹底攻略 (WEB+DB PRESS plus)、7月23日発売です
http://line-hr.jp/archives/29338110.html

Perl徹底攻略とWeb開発の基礎徹底攻略が出ます - ゆーすけべー日記
http://yusukebe.com/archives/20130719/070836.html

どんぞこ日誌(2013-07-18)
http://www.donzoko.net/cgi-bin/tdiary/20130718.html#p01
[PR]
by redchant | 2013-07-19 22:32 | 日記
2013年07月09日の日記、「初めてのPerl」読了。PG言語の人気ランキング。
Java 9が1.5以前のソースコードのコンパイルを非サポートに

ほお。さようですか。
会社で自分が作ってて放置されてるフレームワークが確かある。
Java7にしてた気がするなあ。まあいいや。

そういえば、過去に関わってしまったプロジェクトでJavaで開発したのはどうなったろう?
稼働してるんだろうか?
こういったJavaがアップデートされた時ってどういうたいおう、、、いかんいかん忘れようっ

ということで、現在どんなプログラミング言語が流行っているの?

c0050550_21553558.jpg

ええーーっ、、、C言語ですか、、(・∀・)?
とても意外です。C++と合わせて25%超じゃないですか? ダントツです。。。
Cで何を作るの作れるの? ゲーム?

2位のJavaは想定内です。
けど、独走していると思ってました。

あとは、まあそうかってかんじかな。
Rubyってまだまだなんですねー。

自分は一時期猛烈にJavaScriptにハマってましたが今は静観状態。
なんだかライブラリ等が乱立・錯綜している気がします。
落ち着くのを待ちます。

ランキングするのはいいですが、考察と背景も書いてあると良かったなあ。


ところで、「初めてのPerl」を読了しました。
c0050550_221522100.jpg

我ながら良くやったと思います。
少しは予備知識があったものの1ヶ月半くらい(?)で終えられたのはスゴイと思います。
これもかつて「JavaScript第5版」を読破したことが自信になっているからです。
楽しかった♪
次は「続・初めてのPerl」www
[PR]
by redchant | 2013-07-09 22:33 | 日記
2013年07月04日の日記、Perlのモジュール
相変わらずPerlがおもしろい。

なぜか最近 if文の条件式が正規表現になってる!笑

なぜ Windows には標準添付されていないのか憤る!
Mac にも Linux にも Unix にも入っているのにおかしい!

モジュールがすごい!
とりあえず教科書に載ってるモジュールを使ってみる。
CPANという集約サイトからダウンロードもできるが、コマンドラインインターフェースからcpanm <モジュール名>でダウンロードからインストールまでしてくれる。
モジュール名を知っていればいつでもどこでも(ネットに繋がっていれば)すぐに環境作れる試せる。

とりあえず使ってみたモジュールは DateTime モジュール!
日付等はPerl標準のlocaltime関数で取得しても変わらないですが、DateTimeモジュールを使ったほうがなんかスマート。
僕は日付処理がちょっと苦手です…
DateTimeモジュールの中身を見てみたいです。いつか!
難を言えば、ちょっと名前が長いこと -> DateTime。でもまあしょうがないか(^^;
・・・
ちょっと使ってたら少々面倒でしたw
set_time_zoneがね。

use DateTime;

my $dt = DateTime->now();
$dt->set_time_zone("Asia/Tokyo");
my ($d, $t) = ($dt->ymd("/"), $dt->hms());
print "\@$d $t\n"; # 日付 時間 を出力


ミリ秒は扱えない?
プログラミングしてると、ログを出力したくなります。
まあ、ログというよりデバッグするためですが。。。
コンピュータは速いのでミリ秒まで(もしくはマイクロ秒まで)欲しいところです。
ミリ秒で検索したら Time::HiRes というモジュールがヒットしました。
これはこれで微妙なネーミングだと。
ちょっと残念だがまだ使用してないのでなんとも言えない。
[PR]
by redchant | 2013-07-04 22:22 | 日記
2013年06月15日の日記、「初めてのPerl」、え?なにか?w
[22:06]

どうもです。
ジメジメと暑い!

そんな暑い部屋で午後からずっとほとんどプログラミングしてますw
休みの日にどんだけーって感じです、我ながらw

で、現在タイトルどおり「初めてのPerl」で勉強しています。
昨日までは「すぐわかるオブジェクト指向Perl」で勉強してたんですけどね。。。
「すぐわかる・・・」で勉強してて、知らないことが出てくると不安感に襲われるんですよ。
なんかやっぱちゃんと勉強したいな、ということで「初めてのPerl」。

自分のことをこう言っちゃうの嫌なんですが、「不器用だな」と思います。
この業界は"ドンドン突き進む"のが現在のスタンダードなスタイルになってます。
そうしないと進化の激しい業界・技術についていけない、
言ってしまえば食っていけないんです。

でも僕はそういうのがイヤで。
仕事でも知らなくてもいいことまで首を突っ込んでしまう、よって仕事が増える、と非効率なことをしてます。
仕組みがわからないとやっぱ不安感がでてくるです。

だけども、Perlはプライベートなので、とことんやってみようと思いました。
そんな感じでこんな状態です。

c0050550_22273688.jpg

積んだ感じは壮観です。
オライリーの動物本なので表紙を見せたかったですが、Perl関連の書籍は積んだ厚さを見て欲しかったです。
(でもわからないですね。。。写真は難しい。。。)
ということで、タイトルなどを表示し、総ページ数を表示するプログラムを作ってみました。
ちなみに上から順番に読む感じです。
ちなみに僕は表紙をとって読む派です。


#! /usr/bin/perl

use strict;
use warnings;

my $books = [
{
name => '初めてのPerl 第6版',
nickname => 'リャマ本',
page => 488,
},
{
name => '続・初めてのPerl 改訂版',
nickname => 'アルパカ本',
page => 328,
},
{
name => '詳説 正規表現 第3版',
nickname => 'フクロウ本',
page => 528,
},
{
name => 'プログラミングPerl 第3版 VOLUME 1〉',
nickname => 'ラクダ本',
page => 756,
},
{
name => 'プログラミングPerl 第3版 VOLUME 2〉',
nickname => 'ラクダ本',
page => 680,
},
];

print "# My Perl Texts ###################################\n";

my $index = 0;
my $sum_of_pages = 0;

for my $book (@$books) {

$index++;

print "Book No.$index\n";
print " Name:${$book}{'name'}\n";
print " Nickname:${$book}{'nickname'}\n";
print " Page:${$book}{'page'}\n";

$sum_of_pages += ${$book}{'page'};

}

print "\nSum Of Pages=$sum_of_pages\n";

print "####################################################\n";



出力結果です!

# My Perl Texts ###################################
Book No.1
Name:初めてのPerl 第6版
Nickname:リャマ本
Page:488
Book No.2
Name:続・初めてのPerl 改訂版
Nickname:アルパカ本
Page:328
Book No.3
Name:詳説 正規表現 第3版
Nickname:フクロウ本
Page:528
Book No.4
Name:プログラミングPerl 第3版 VOLUME 1〉
Nickname:ラクダ本
Page:756
Book No.5
Name:プログラミングPerl 第3版 VOLUME 2〉
Nickname:ラクダ本
Page:680

Sum Of Pages=2780
####################################################

[PR]
by redchant | 2013-06-15 22:28 | 日記
2013年06月14日の日記、Perl - 二次元ハッシュ、ではなく;
今日は、Perlで二次元ハッシュ。
下記のデータでイメージしやすいかと。

[File]
perl_root=~/usr/bin/perl
tmp=/tmp
file1=file1.txt
file2=file2.txt
file3=file3.txt
[Internet]
web=http://www.xxx.co.jp/
ftp=ftp://www.xxx.co.jp/


ハッシュのイメージはこんな感じになります。

ハッシュ{'File'}{'perl_doc'} とすると ~/usr/bin/perl を取得
ハッシュ{'File'}{'tmp'} とすると /tmp を取得
ハッシュ{'Internet'}{'web'} とすると http://www.xxx.co.jp/ を取得

で、いやーハマったハマった笑
ハマったところは、具体的には言えません!
恥ずかしすぎて!
ハッシュでハマったわけでも、リファレンスでハマったわけでも、正規表現でハマったわけでもなく!
基本的なアルゴリズムを間違っちゃった(・∀・)

my %conf = ();
my $category = '';

while (<DATA>) {

my $data = $_;
chomp $data;

if ($data =~ /^\[(.*)\]$/) {
$category = $1;
} elsif ($data =~ /^(.*)=(.*)$/) {
$conf{$category}{$1} = $2;
}

}

for my $category (keys %conf) {
for my $key (keys %{$conf{$category}}) {
print "Category:{$category} Key:{$key} = $conf{$category}{$key}\n";
}
}

__DATA__
[File]
perl_root=~/usr/bin/perl
tmp=/tmp
file1=file1.txt
file2=file2.txt
file3=file3.txt
[Internet]
web=http://www.xxx.co.jp/
ftp=ftp://www.xxx.co.jp/


がんばろっ
[PR]
by redchant | 2013-06-15 00:12 | 日記
2013年06月10日の日記、Perl - リファレンスのみの2次元配列;
Perlのお勉強。
今日は、配列。
配列でも、リファレンスを使った「現場的な」配列。


#! /usr/bin/perl

use strict;
use warnings;

my $array = [
undef,
['Jan', 1],
['Feb', 2],
['Mar', 3],
['Apr', 4],
['May', 5],
['Jun', 6],
['Jul', 7],
];

print "no syntax sugar : ${$$array[4]}[0] is ${$$array[4]}[1]\n";
print " syntax sugar 1: $array->[4]->[0] is $array->[4]->[1]\n";
print " syntax sugar 2: $array->[4][0] is $array->[4][1]\n";

上記のコードのprint文は3つとも同じ変数展開をします。

no syntax sugar : Apr is 4
syntax sugar 1: Apr is 4
syntax sugar 2: Apr is 4

なんとも奇怪です。
3種類も書き方があるとは困ります。(もしかしてもっとある?)
たぶん読むのに困ります。
個人的には2番目の書き方が一番明瞭かと思います。

でもですねー、最初は -> 記法のデリファレンスのシンタックスシュガーは好きではなかったです。
原始的なデリファレンスの方が分かりやすいと思ったです。
でも、それは1次元配列まででした;
リファレンスのみの2次元配列は、原始的なデリファレンスでは、まだちょっと理解できません。
まだブレース(波括弧({}))の役割が分かってないなあ。

${${${$array[4]}}[0]}

もっともっとデリファレンスして、これでもいけると思ったのだがエラーになる。
わからん。


ところで、Vimの使い心地がいいです!
普通のエディタを操作している時も、Vimのコマンドを打ってしまいます;
それはそれで問題ですが。。。
[PR]
by redchant | 2013-06-10 23:17 | 日記
2013年06月02日の日記、正規表現を一旦終えるの巻
Perlは文法を少し知っていたので、いきなり「すぐわかる オブジェクト指向 Perl」という本で勉強してました。
そしたら、少し進んだら「前著で散々やりました正規表現」(深沢千尋さん著)のような記述が出て来ました。

Perlを勉強しようとした理由は自分にもよく分からないのです。
でも「正規表現をマスターしたい」というのは前から夢のように思っていました。
Perlといったら正規表現でしょう。これ間違いない。
そう、「Perlを勉強したい」と「正規表現をマスターしたい」、

Matchしました!

ということで、正規表現のお勉強を始めたとさ。

深沢千尋さんの前著「すぐわかるPerl」は、少々古い本でして絶版なのかAmazonで新品はありませんでした。
出版社にも無かったです。
ということで、著名な結城浩先生の「新版Perl言語プログラミングレッスン入門編」で正規表現を勉強し始めました。
この本なぜか持ってました(^^;
Perlの文法を少し知っていたのもこの本を読んだからかな。たぶんかつての自分は挫折したのでしょうw
この本、なんと正規表現について2章も割いているんです。
わかりやすい結城先生の本なので頑張りました。

最後の方の、「正規表現のループ展開」や「HTMLの解析」や「CSVの解析」は難しくまだ完全に理解はできてないのです。
でも、基本はできたと思うので、結城先生の本はなんとか仮免許ということで。

今では、あんなに味気なかった正規表現も、おもしろく感じるようになりました。
いつかはオライリーの5,040円の528ページの「詳説 正規表現」も読みたいと思います。

※それでも正規表現のリファレンス本みたいな本はとりあえず買っておきました。
[PR]
by redchant | 2013-06-02 22:08 | 日記
2013年05月25日の日記、正規表現
正規表現を勉強中。
もちのろん Perl で。
すげー難しいっ;

プログラム

# 単語の出現数を確認するプログラム
use strict;
use warnings;

# 検証する文
my $line = "Humpty Dumpty sat on a wall,
Humpty Dumpty had a great fall;";

# 正規表現で単語単位に分割、配列へ格納
my @words = ($line =~ /[\w]+/g);

# 単語と単語の出現数を格納するハッシュ
my %count = ();

# 単語単位に分割された数ループ
foreach my $word (@words) {
$count{$word}++;
}

# 単語の出現数を出力
foreach my $key (sort keys %count) {
print "$key: $count{$key}\n";
}


出力結果

Dumpty: 2
Humpty: 2
a: 2
fall: 1
great: 1
had: 1
on: 1
sat: 1
wall: 1


初めの方は、単語単位に分割するのにかなり苦心した正規表現を組みました。
そ・れ・が!

/[\w]+/

これで済んでしまうなんて。。。
僕が苦心して組んだ(しかも完成しなかった)正規表現モドキはとても見せられません;
[PR]
by redchant | 2013-05-25 21:42 | 日記
2013年05月20日の日記、唐突にPerl!
唐突にPerl!
なぜかPHPの勉強を止めてPerlをやりたくなった!
よくわからん、自分(´・ω・`)
リファレンスまで勉強した。

データ型は、
・スカラー型(文字列、数値(Booleanは無いのかな?))
・配列型(スカラー型を格納)
・ハッシュ型(連想配列)
みたいです。

それぞれ、

my $fruit = "apple";
my @fruits = ("apple", "banana", "orange");
my %price = (apple => 10, banana => 20, orange => 30);

として頭に記号をつけて使い分けるようです。

出力は、スカラーでします。

print $fruit . "\n"; // apple
print $fruits[1] . "\n"; // banana
print $price{apple} . "\n"; // 10


とりあえず、今日はここまで。
[PR]
by redchant | 2013-05-20 20:46 | 日記
「Perl言語プログラミングレッスン入門編」
c0050550_19563713.jpg

「Perl言語プログラミングレッスン入門編」を完遂しました!!!

正規表現のところが辛かったことは辛かったのですが、
「正規表現」→「コンテキスト」→「ファイル操作」の流れは見事でした。
Perlのおもしろさを感じました。

入門書としては最適なのではと思います。

Perlについての今感じる課題。
・演算子や組み込み関数を覚えなければならない。
・ライブラリ、モジュールを活用できるようならなければならない。
・正規表現をマスターする!
(・たぶん他にもたくさんw)

以上の課題に合致するのかわかりませんが、
「すぐわかる オブジェクト指向 Perl」を既に購入済み。
まずオブジェクト指向ってところに惹かれました。


課題はたくさんあるのですが、Perlの感想を。

Perlは簡単です。

他のプログラミング言語に比べてそう思います。
JavaScriptは1年がかりで勉強してたのですが、
マスターできないというか、奥が深いというか、ブラウザ競争にうんざりというか。
おもしろさでいえば、一番おもしろい言語ではあります。
だけど、Perlをこれだけ簡単に学べたというのがすごいのです。

Perlはおもしろいです。

PerlはTMTOWTDI(ティムトゥディ)というモットーがあります。
「There's more than one way to do it.」の略だそうで。(略さないで欲しかったw)
これはJavaScriptでも感じたことです。
思うままに、思いを綴るがごとくプログラムが書けます。

Perlを極めたい。
[PR]
by redchant | 2010-06-12 20:23 | Computer