Perl

特定のフォルダ内にあるファイルのExif情報(撮影日時)を変更するスクリプト書いたよ(^0^)

#!/usr/bin/perl -w # ================================================================================= # Description: 特定のフォルダ内にあるファイルのExif情報(撮影日時)を変更するスクリプト # Created: 2014/08/28 01:24 # Author: rin1024 # …

チェックサム計算用コード

############################################ # チェックサム計算用コード ############################################ #!/usr/bin/perl my @list = ( 0x5A, 0xA5, 0x02, 0x03, 0x01, 0x03, 0xE8, ); my $k = 0x00; foreach(@list) { $k = $k ^ $_; } p…

Mojolicious::Plugin::CSRFDefenderで文字化けしてた件

id:shiba_yu36さんが作られた、 CSRF対策のプラグインである、Mojolicious::Plugin::CSRFDefenderですが、 flashに日本語文字を入れたり、なんか特定の条件で文字化けしていたみたいでした。 で、下記の対応をしてとりあえず今はしのいでる。 $ sudo vi 5.12…

Wide character対策

手抜き方法 $ sudo vi /System/Library/Perl/5.12/darwin-thread-multi-2level/IO/Handle.pm 460 sub syswrite { 461 @_ >= 2 && @_ <= 4 or croak 'usage: $io->syswrite(BUF [, LEN [, OFFSET]])'; 462 if (defined($_[2])) { 463 syswrite($_[0], $_[1], …

指定したフォルダの画像を連番で一括リネーム

perl -e 'my($source_dir, $tar_dir) = @ARGV; opendir $D, $source_dir; my $i = 0; while(my $file = readdir($D)) { next unless $file =~ /[^\.]/; $ext = (split(/\./, $file))[-1]; $cmd = "cp $source_dir/$file $tar_dir/$i.$ext"; $i++; print "[",…

DateTime.pm使えないときの日付

同じの書くのめんどくさいので。 #------------------------------------------ # 日付情報取得 # - # $timestamp = 1308304821 or time; # - # $date = { # year => 1000, # month => 1, # day => 1, # hour => 1, # min => 1, # sec => 1, # }; #---------…

HomebrewでImageMagickを入れた後にPerlMagickを入れる

なんかHomebrewのImagemagickはPerlmagick入れられない!僕になんて出来ないそんな事!って言うので、 別の方法を模索した結果。 ※./configure実行時に--without-perlってしたがる。ちなみにコメントでもコンパイルできないって書いてた まずここら辺を一応…

特定のページから画像ひっこぬく

いい加減何回も書くの飽きたので javascript:(function(){ var list = document.getElementsByTagName('img'); var str=""; for(var i=0;i

iTunesで再生中の曲を取得 on Mac(続き)

■ iTunesで再生中の曲を取得 on Mac http://d.hatena.ne.jp/rin1024/20110126/1296025445 上の記事で、取得はできたが、 曲名とかが文字化けする問題があったのですが、 locationまで取得できるから、そこからID Tagとってくればやればいんじゃね?ってこと…

CentOSにPerl5.10.0を再インストールした

wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz tar zxvf perl-5.10.0.tar.gz cd perl-5.10.0 ./Configure -de -Accflags='-fPIC' -Dloclibpth="/usr/lib64" make installメモ.

DBIx::Skinnyにgroup_byをoptでつけれるようにした

/Library/Perl/5.10.0/DBIx/Skinny.pm 400+ if (my $terms = $opt->{group_by}) { 401+ my @groups; 402+ for my $term (@{$terms}) { 403+ push @groups, { column => $term }; 404+ } 405+ $rs->group(\@groups); 406+ } usage: my $result = $self->model…

iTunesで再生中の曲を取得 on Mac

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use LWP::Simple; use Encode::Detect::Detector; use Mac::Glue; my $itunes = new Mac::Glue 'iTunes'; #print Dumper($itunes); my $library = $itunes->obj(library_playlist => 1); #prin…

Mojolicious+mod_perl+CentOS5でつまづいたメモ(原因はhttpd.confだったけど)

Macでは上手くセッション持ち回ってたのに、 CentOSだと何故か動かないーって思ってたんだけど、 理由はPlack::Handler::Apache2が毎回コンパイルされている?ぽかったのが理由。 startup.plに設定を逃がして、PerlRequireすればちゃんと動いた。 いつも良く…

Perlでハッシュの取り出し順序を補償する方法

普通にやる場合、Tie::IxHashを使うのが楽ですが、 今回は自前実装してみました。 package Sorauta::Util::Iterator; use 5.010000; use strict; use warnings; use Carp qw/croak/; our($YES, $NO) = qw/1 0/; #===================== # #=================…

dieではなくcroak

・理由:呼出しもとのどこの処理でエラーが出てるか調べるため ・よくない die 'hogehoge' if $val < $min; ・よい use Carp; croak 'hogehoge' if $val < $min;

ループ内では添字を1回以上指定しない

・before 配列参照くりかえしよくない for my $agent_num(0..$#operatives) { print "checking agent $agent_num\n"; if ($on_disavowed_list{$operatives[$agent_num]}) { print "\t...$operatives[$agent_num] disavowed!\n"; # } } ・after1 配列参照をコ…

Perlでサブルーチンプロトタイプ宣言を行う

Params::Validate使えば出来るよ! プロトタイプ宣言して、型がおかしければ例外発生させてくれます。 test_params_validate.pl 6 package TestClass; 7 8 use Params::Validate qw/:all/; 9 use Data::Dumper; 10 11 sub new { 12 my $self = bless {}, shi…

MojoliciousにbeforeFilterを埋め込む

なんか,パッと調べた感じだとbeforeFilterとか,コントローラ内でhookするのが,ちゃんとしたのがあんまなかった感じなので. あんまりよくはないのですが,MojoliciousのRoutes.pmいぢりました. 451 # Action 452 if ($method && $app->isa($self->contro…

MojoliciousをApache上でindex.cgi経由で動かす

なんか凄く久々にperl触った気がする!!!! 中々うまくいかなかったのですが、下記の設定で動作しました。 サンプルのアプリはこちら(http://gihyo.jp/dev/feature/01/mojo/0002?page=2)のものをつかっています。ディレクトリ構造 [yuki@sorauta simple_…

MacPortsを使ってPerl5.10を入れる方法

sudo port install perl5 +perl5_10 でいけるらしい。

Macでcpanが動かなくなった

http://batland.de/subdomains/nucleus/Batland.php なんかここら辺の記事と若干にてるのかもだけど、 MacでPerlの開発環境構築している時に、cpanをいつものように起動しようとすると、 下記のようなエラーが発生した bash: /usr/bin/cpan: Permission deni…

自分でHTMLの構造解析しようと試みて失敗したメモ

車輪の再発明みたいなもんだけど, どうやってHTMLの構造って解析するのかなと言う事に関して少し興味が出てきて, 昨日の夜からちょっと書いてみた. 割と簡単にできるんじゃね?とか予想してたんだけど, 古いバージョンでのHTMLの書き方などをしてるペー…

Ark入れてみた

なんか以前入れようとしたけど,入ってなかったor失敗して放置してたので 再導入中. http://gihyo.jp/dev/feature/01/perl_ark/0002 install編 $ wget http://cloud.github.com/downloads/typester/ark-perl/Ark-0.001000_001.tar.gz $ tar zxvf Ark-0.0010…

printfが使えないとき(そんな事ホトンドないだろうけど)

学校の演習室でSystem.out.printfが使えなかったときに考えたのをperlで書いた for my $i(1..9){ for my $j(1..9) { print map { " " } (0..(2 - int(log($i*$j)/log(10)))); print $i*$j, ":"; } print $/; } 実行結果 [root@localhost ~]# perl -e 'for my…

コマンドラインから英和辞書検索をする!

ふとソースみてて分からない英単語とか調べたくなる時,いっつもexciteやらつかって調べてるんですが,それもめんどくさいので,簡単なものですがコマンドライン上で和英辞書の検索できるもんを作ってみました. ソースは以下の通り. #!/usr/bin/perl -w # …

iTunesで聞いている曲を表示する(↓のエントリのまとめ)

startup_itunes.vbsでstartup_itunes.batをDOSプロンプト表示しないで実行させて、 startup_itunes.batでitunes_updater.batでperlのスクリプトを実行して適当に再生させる流れ。 itunes_updater.bat @rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_…

Batファイルをスタートアップに登録してみる→やっぱりPARでexe化した→けどUACで死んだ→最後はVB...

batファイルのスタートアップ登録の方法とか知らなかったので、とりあえず試してみた pl2batコマンドで「iTunesで最近聞いた曲をブログに表示する(Perl使用)」で作ったファイルをbatファイルに $ pl2bat itunes.pl batファイル作成(itunes.bat) @rem = '--*-…

iTunesをPerl経由で何かしたかった

「〜したかった」ってタイトルの時は大体残念です。 というかいつも残念です。 まぁいいや。 2008年の08月頃に一時期ネットラジオとやらにハマっていた時期がありまして、 メッセのお友達とイントロクイズをしようという事で、 僕のiTunesのプレイリストから…

iTunesで最近聞いた曲をブログに表示する(Perl使用)

さんざん既出なモジュールだろうけど、 PerlのXMLパーサは遅いのが多いらしいので正規表現で超決め打ちで書いた。 iTunesのXMLの構造がもう少しまともだったらこんな事しなくていいんだろうけどなぁ。 あとAPIもメンバー制になってみれなくなってめんどくさ…

HTTP::EngineのHTTP::Engine::RequestがGoogle Chromeだと動かない?? → 解決

表題の通り。 ・ROOT/conf/config.yaml engine: interface: module: ServerSimple args: host: 192.168.11.10 port: 1111 ・ROOT/lib/Hoge/Engine.pm package Hoge::Engine; use HTTP::Engine; sub new { my $class = shift; my %args = @_; $args{req} = {}…