2010-05-01から1ヶ月間の記事一覧
画像をアップロードしてもらう、という処理なんかに有効です。画像アップロードの処理として、アップロードしてくれた画像を一時ファイルとして保存して成形し、成形後に一時ファイルを消したいとします。そんな時に役立つのがFile::Tempです。File::Tempは…
例えば、jsonファイルをアップロードしてもらう仕組みを作ったとします。処理の流れは、受け取ったjsonファイルを一時ファイルとして保存し、ファイルopenしてごにょごにょと処理をするというものにしているとします。で、ファイルopenの部分を以下のように…
perlには、chopやらchompやら改行を落とす関数がありますが、これらは改行コードを落とすには不十分です。そこで、以下のように正規表現を使って書けば、どんな改行コードでも落とせちゃいます。 $line =~ s/[\r\n]+\z//;そもそも、なんでchopやchompでは役…
shell> svn pe svn:ignore ディレクトリsvn propset svn:ignoreでもできなくて、svn propedit svn:ignoreでもできなくて、これならできた。
perlで、use strict;とかuse Data::Dumper;とかしますよね。useのあとに続く言葉に、大文字で始まったり小文字で始まったりといろいろなので、規則性を調べてみた。 useと書くときは、以下の3種類。 ■モジュールをnewするとき。 ■モジュールのメソッドをイン…
最初に、このお題の私の回答を見てくれた先輩の言葉。 ● \ は、「エスケープに使用している」のか「そういう文字そのもの」なのか常に意識して考えなくてはならない。 ●dieが適切な部分に使えるかどうかで、どれくらいのperl使いなのか分かる。 ●プログラム…
●お題 まず、自分で以下のような配列を作る。 1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 21,22,23,24,25 作った配列を、以下のように転置する。 1,6,11,16,21 2,7,12,17,22 3,8,13,18,23 4,9,14,19,24 5,10,15,20,25 ●回答 #! /usr/bin/perl use …
準備物は、ある一日のapacheのログが書かれたファイルです。 そして、いきなり回答です。 #! /usr/bin/perl use strict; use warnings; use Data::Dumper; my %count10; #10分ごとのカウント my %count30; #30分ごとのカウント open(FH,'<access'); # accessはログのファイル while(my $data = <FH>){ chop($data); my </access');>…
とりあえずの更新3つめ。今日上げた他の2つの記事と合わせて、後日書き直します。 $s =~ /.+/ # '/' でなくてもよい。ただし、その場合は'm'を省略することができない。 $s =~ m/.+/ $s =~ m!.+! $s =~ m%.+% $s =~ m{.+} ### URL(例) ### $_ = 'http://www.…
理解してもらうということをまったく考慮していない記事ですみません。とりあえずの更新第2弾。こちらもあとで書き直します。 $s =~ /.+/ # '/' でなくてもOK $s =~ m/.+/; $s =~ m!.+!; $s =~ m%.+%; $s =~ m{.+}; ### URL(例) ### $_ = 'http://www.keyman…
とりあえずの更新をします。あとできれいに書き直しますー。 #正規表現はなるべく長くマッチしようとする '<a>aaa</a><b>bbb</b><c>ccc</c>' =~ />(.+) 'aaa</a><b>bbb</b><c>ccc' #最短一致=>+?もしくは*?を使用する。 '<a>aaa</a><b>bbb</b><c>ccc</c>' =~ />(.+?)</;#=>何かが1個以上連続したあとの一番最初に来る<にマッ…