読者です 読者をやめる 読者になる 読者になる

local::libのinstallメモ

local::lib を今更ながらinstallしたので、その作業メモ 参考サイト local::libを使った非rootでのCPAN環境構築 - hide-k.net#blog 第18回 local::lib:ふだんと違う環境でPerlを使う|gihyo.jp … 技術評論社 基本はhide-kさんのサイトの手順どおりに行った…

小さいファイルはJSONで、大きいファイルはYAMLで読み込むべき? JSON&YAMLのファイルロードのBench結果

Perl で YAML と JSON のベンチマーク比較 - Daio Todayこちらの記事を読みました。 結果的には、YAML と 比べて JSON の方が 6倍〜8倍高速。ただし、これはデータ量が少ない場合で、データ量が大きくなると 0.5倍〜0.8倍 と差が縮まってしまう。 なるほど、…

perlの特殊変数を実際に使ってみよう その2【$,】【$"】【$\】

昨日に引き続き、特殊変数を使ってみました。 $,ってなんぞや・・・? まずは、$, です。 説明から読んでみましょう。 出力時の項目区切り文字。print @xx; の時に有効 なるほど 使ってみよう #!/usr/bin/perl use strict; use warnings; my @array = qw/aa …

perlの特殊変数を実際に使ってみよう その1【$.】【$/】

戦友id:maroekunと特殊変数について語ったので、この機会に勉強しなおしてみる。 $.とはなんぞや まずは、$. について学びなおしてみる。 意味を知る ファイルから読み込み時の現在の行数 らしい。 ふむふむ やってみる test.txt aa:aa bb:bb cc:cc dd:dd e…

画像の色情報を平均化し、単色にする方法

画像を、単純化して置き換えるような処理をしたかった。 そのために、画像内の色情報を複数プロットし、平均化する処理を書いてみた。 こんな風にできたよ。 こんな画像を読み込ませると、 処理して、 こんな色にしてくれる。 Image::Magick使って、色情報取…

Image::Magickで画像の特定の部位の透明度を取得し、色を補正する。

苦労した。 日本語でも英語でもドキュメントを見つけられなかったが、おそらくあってるはず。 Image::Magickで特定部分の色情報取得 これはサンプルがゴロゴロ落ちてる。 こんな感じ my $image = Image::Magick->new; $image->Read('画像パスね'); my ($r, $…

ウェブサイトURLからファビコンURLを取得する。

favicon ちょこちょこいじってます。 favicon を取得したい場合、faviconURLは use WWW::Favicon qw/detect_favicon_url/; my $url = "http://google.com"; my $favicon_url = detect_favicon_url($url);こんな簡単な感じで取得可能です。 結果は 'http:/…

『dms => degree変換』 『WGS84 <=>tokyo 変換』をperlで行う。

perlで携帯サイトを作るときに、GPS機能を使う場合もあるでしょう。 PGS情報はAPIとも連動させやすいですし、マッシュアップサイトを作るのも扱いやすい情報ですよね。 しかし、GPSは結構形式を覚えるまでが面倒です。 経度緯度の表記方法 dms表記 degree表…

世界のアクセス数ランキングTOP500のURLを一括取得してみる

他に誰かこんなことしたい人がいるのか分からないけど・・・。 使用するサイトはこちら Alexa Top 500 Global Sites 上記のサイトで人気サイトが分かるのだが、正確にはアクセス数ランキングとはいえないらしい。 Alexaでサイトの世界ランキング情報 :SEOお…

perlでmp3情報を扱ってみよう2。歌詞を自動取得してみよう

perlで音楽を扱ってみたくて、前回 MP3::info をいじってみた。 せっかくなので、それで何か作業をしてみる。 perlを実行したら、歌詞を自動取得するようなものを作ってみる。 特に他に思いつかなかったので。 まずは下調べ。 goo歌詞を覗いてみよう goo歌詞…

perlでmp3情報を扱ってみよう。MP3::Info

perlをちょいちょい使ってます。 perlはテキスト処理には向いていますが、 音楽 動画 画像 などのメディア向けの操作はあまり適してないですね。 情報も少ないです。 まぁ、そもそも、そっち系扱いたいなら、別の言語使え、って話なんでしょうが・・・。 使…

CPAN moduleの場所を探して、viで開きたい

勉強のために。 なんかエラーがでるから。 中の処理早くできそう。 理由は色々あると思いますが、たまにCPANモジュール読みたいときあります。 vi `perldoc -lm Class::Accessor::Fast` こんな感じで一発で開けるのか。 使おう。 Class::Accessor::Fast の部…

自作モジュールをuseするときの注意点

あほな事にはまって、2時間を失った。 戻れ俺の迷走時間・・・。 自作モジュール使いたかった よく使う機能をまとめて、pmファイルにして、読み込みたかった。 中身は大したことないが、コンフィグファイルを読み込んでいた。 package Common; use YAML; my…

ハッスルサーバの perl モジュール一覧を出してみた

機会があったので、出してみました。 膨大なので、見にくいよ・・・。 すまぬ。 Algorithm::Dependency Algorithm::Dependency::Item Algorithm::Dependency::Ordered Algorithm::Dependency::Source Algorithm::Dependency::Source::File Algorithm::Depend…

HTML::Template で LOOP の中で VAR NAME="hoge" を呼び出す方法

HTML::Template CGIでサイト作るときなど、よく使わせてもらっています。 HTML::Template 例えば $template->param(EMPLOYEE_INFO => [ { name => 'Sam', job => 'programmer' }, { name => 'Steve', job => 'soda jerk' }, ] );こういうデータ構造を作ると <TMPL_LOOP NAME=EMPLOYEE_INFO></tmpl_loop>…

文字のエンコードを推測してくれるEncode::Guess

エンコードでつまったので、メモ。 永遠の宿敵、エンコード。 ヤツは強敵だ・・orz そんなヤツを推測してくれる強い味方がいるようなので召還してみた。 使い方 use Encode::Guess qw/shift-jis euc-jp 7bit-jis/; my $decoder = Encode::Guess->guess($stri…

perl の CGI でコンフィグを外部ファイルに別ける

とりあえず、 { "test1" => "hoge", "test2" => "foo", };みたいなファイルを用意して、 test-conf みたいなファイル名で保存して、 my $config = require 'test-conf';で使える。使い方は、 print $config->{"test1"}; #hogeっす メモメモ。

画像をダウンロードするCGI

友達に聞いたりしながら、苦労した。 #!/usr/bin/perl -w use CGI::Carp qw(fatalsToBrowser); use CGI; use File::MMagic; &main; sub main { my $file = "test.gif"; my $type = File::MMagic->new->checktype_filename($file); my $cgi = CGI->new; print…

携帯端末情報を調べるツールを作ってみた

携帯端末情報を取得する API の存在を知ったので、思いつきのままに作ってみた。携帯端末情報取得ページ 携帯の機種名や UA を入力すれば、その端末の画像対応状況や対応flashのバージョン。 画面のサイズやら、色々な情報を取得できます。 2時間で作った割…

レンタルサーバでperlのエラー原因を探る

レンタルサーバだとエラーメッセージが見えずに不便だったりする・・・。そんなときは、これを CGI に書くだけ use CGI::Carp qw(fatalsToBrowser); これでエラー文をブラウザに吐き出すようになります。 めっちゃ便利! 今まで知らなくて、さーせん

$|(ダラー縦棒) ってなんだ。

$| 使うとどうなるのか、色々見てみた。例えば、 print "a"; sleep 2; print "b"; ↑を実行すると、結果は a が表示される前に、2秒sleepし、ab が一緒に表示される。ここで、 $| = 1; print "a"; sleep 2; print "b"; とすると、結果は a が表示されたあと、…

template toolkit で文字列の置き換えや、文字数カウントをやってみた。

catalyst の template toolkit。 実は高機能だと判明。 いまさらww 例えばこんなこともできた。 変数itemのバイト数を取ります。 [% temp = item.length %] 変数itemをバイト数毎にsplitします。 [% temp_array = item.split('') %] splitした配列の要素数…

perl で utf8 の日本語の文字数をカウントする。

utf8 だと日本語はバイト数がめんどいことに・・・。 文字コードはプログラムする上で永遠の敵かも・・・。やりかた。 use Encode qw(decode);my $text = 'utf8で書かれた日本語'; my $length = length(decode('utf-8', $text)); 簡単にでけた。改行がはいる…