perl

ハッシュの値を宣言と同時に参照する方法

久々に更新しますが、かなり自分用のメモですorz ruby だと以下のように書くのをperlでどう書けばいいのか。。 # ruby # 無名ハッシュ(という呼び方でいいかわからないけど)を作成と同時に値を引っ張る {:k1 => 'v1', :k2 => 'v2'}[:k2] # ==> "v2" 一応、こ…

html5で複数ファイルアップロード&保存

とても簡単。 html <html> <head> <meta charset="utf-8"> </head> <body> <form action="save.cgi" method="POST" enctype="multipart/form-data"> <input type="file" name="files" multiple /> <input type="submit" value="submit" /> </form> </body> </html> input type="file" で multiple属性を追加するだけ。 save.…

canvasに描いた絵(画像)をサーバに保存

canvasに描かれたデータを取得するには、canvas.toDataURL() を使います。 toDataURL()で得られるのは、base64エンコードされた画像情報なので、 それをサーバに送って、base64デコードして保存という流れです。 toDataURL()して、そのデータをPOSTする部分…

Perlで2階層目のハッシュを参照するときは注意が必要

use strict; use warnings; my (%hash, $msg); $msg = (exists $hash{key}) ? "exist" : "not exist"; print "$msg\n"; # not exist # 1階層目を参照 my $tmp = $hash{key}; $msg = (exists $hash{key}) ? "exist" : "not exist"; print "$msg\n"; # not exi…

Perlで複素数列挙をshort coding

ネタ元は、@javascripter さんのPOST(http://twitter.com/javascripter/statuses/8367943818) for(a=[],b=[],c=1;c++<1E3;)if(!a[c])for(b.push(d=c);d<1E3;a[d+=c]=1);alert("素数" + b); と、id:nitoyon さんのActionScript3 で素数列挙を short coding …

LWP::UserAgentのtimeoutエラー判定法 (Can't connect to (connect: timeout)を出力してる場所のメモ)

LWP::UserAgentでtimeoutをセットしたときに、 「timeout」と「それ以外のエラー」を判別したい。 以下のようなコードを見つけたのだが、 use LWP::UserAgent; use XML::TreePP; my $ua = LWP::UserAgent->new(); $ua->timeout(3); my $tpp = XML::TreePP->n…

いまさらながら、コメントで頂いたperlのコード(grep)を試してみた

4ヶ月近く前、pythonのコードすげーって記事(ループで配列を作る書き方)を書いたのだけど、それにたいして、perlだとこう書けるよというコメントを頂いていた。 id:tkmc perlだとこんな感じ? return grep $_, @array; そのときは、「へ〜」くらいに思ってい…

Lingua::JA::Regular::Unicode のメモ

全角/半角変換のできる便利なモジュール Lingua::JA::Regular::Unicode 作者様blog: http://d.hatena.ne.jp/tokuhirom/20081018/1224300947 CPAN(ver0.03): Lingua::JA::Regular::Unicode - convert japanese chars. - metacpan.org の使い方(?)メモ フラグ…

Unicodeブロック、Unicodeスクリプトで実際に対象となっている文字がなんなのか調べてみた

正規表現で使える、\p{P}(句読点) や \p{S}(記号) や \p{InCjkSymbolsAndPunctuation}(全角記号) などなどは便利だが、実際に中身が何なのかを知らずに使うのは少々こわいので調べてみた unicode.org でも期待する一覧表が発見できず困った*1が、 なんかそれ…