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

稲沢市よりお届けしてます。

Perlをはじめとしたプログラミング周りのあれこれについて。Perl界のモブキャラとして暗躍します(謎)。

Windows10コマンドプロンプトでTest::Mojo したときの日本語文字化け対処

テスト大事だよねって今さら改心した。 昨日『モダンPerl入門』を読んでて、「ナマケモノになるためにテスト書く」っていう感じのところが腑に落ちた。確かにリファクタリングとか機能追加が億劫になるのって、動いてるものが同じように動くって確信持てずに…

PerlワンライナーでSAY!!!してみる

いい加減 say 使ってもいいかも。 say関数 といえば、Perl 5.10 から導入された「改行付き print」。Ruby書いてて「puts」とか超便利じゃん!って妬ましい気持ちになったものですが、Perlでもできちゃうんですねー。 ただ、僕の主戦場の格安レンタルサーバー…

Mojolicious::Lite のcsrf_fieldタグヘルパーでCSRF対策を体感してみた

クロスサイト・リクエスト・フォージェリ(CSRF)対策としてのトークン発行Webアプリケーションを狙った攻撃としてポピュラーなCSRF。MojoliciousにそんなCSRF対策のためのタグヘルパーがあったので、試してみました。CSRFだけでなくWebアプリケーションのセキ…

Perlでエスケープシーケンスした16進数の置き換えにハマったけど、quotemeta()で解決した件。

難読化されてるPerlスクリプトを読みたくて、置き換え処理をチョコチョコっと書いたけどうまく動かず。perl -d hoge.pl みたいな感じでデバッガ使って動作確認しても、一見おかしなところは無いっぽかった。 原因は、置き換えに使ってる変数に入ってるバック…

PerlでTwitterアプリ開発するときにSSLが必要になったっぽい- Net::Twitter

今さら感満開ですが、Twitterのつぶやきアプリ的なものを作ってみようと思った。もちろん大好物のPerlで。APIキーの取得から、Access token取得の流れまで解説してくれた下記ブログを参考にさせていただきました。http://d.hatena.ne.jp/ozuma/20121230/1356…

Perl で複数のファイルを一気に開いて、Linuxコマンド【paste】みたいにつなげてみた

3つのファイルの1行目同士、2行目同士・・・n行目同士をつなげたい衝動に駆られました。Linux環境では、 $ paste 1.txt 2.txt 3.txt > res.txt みたいにすれば一発でしたが、Windows環境なのでそれもできず・・・。 で、Perl でやってみました。 まずは、…

Perl でUTF-8(BOM無し)ファイルをUTF-8(BOM付き)に変換する方法

Windows 向けのソフトに読み込ませるファイルをUTF-8(BOM付き)にする必要があったので、やってみた。TeraPadで開いて「文字コード指定保存」すればできるんだけど、スクリプト処理の一連の流れに乗せたかったので、やってみますた。Windows7(64bit)環境でや…

Perlで育った僕がJavaを始めた理由。

Perlを使い始めてかれこれ4年ほどになります。僕のプログラミングバージンはPerlに破られたので、変数とか、条件分岐とか、繰り返しとか、配列とかはPerlで身に着けました。ちょこっとモジュールとかも使えるようになったりして、自分の欲しいツールは大体…

WindowsパソコンでPerl置き換え演算子s// で発生した文字化けを Encode.pm でスマートに解決!

マルチバイト文字列が母国語の我々を常に悩ませる問題。そう、文字化け! 1年ちょい前に書いたエントリーでも文字化けについて書いてるけど、今日もややハマりそうになって、「perl Encode.pm」でググると自分のブログに到着。 おかげでスムーズに解決。あ…

Perl のEncode.pm について。今さらながらに、わかったこと。

特に文字コードを意識することなくフツーに文字コード shift_jis で書いたスクリプト内で、日本語を print しても文字化けしないのは、たまたま処理がうまくいってるだけなんだということが今さらになって、わかった。※ちなみに、WindowsXP、Perl v5.10.1 な…

Perlで複数行の置き換えをやってみたよ

mをsにしたら結構サクッと置き換えもできちゃった。てへっ。 #!/usr/bin/perl # # 複数行の置き換えを行うスクリプト-2 # 2011.10.29_scripted by perl48 use strict; use warnings; my $multiple_data; foreach my $data (<DATA>) { $multiple_data .= $data } #p</data>…

Perlで複数行のマッチをやってみたよ

複数行のマッチとかできたら幸せになれるのに・・・って思いながら結城浩さんの『Perl言語プログラミングレッスン』を読んでたらできました。 #!/usr/bin/perl # # 複数行の置き換えを行うスクリプト # 2011.10.29_scripted by perl48 use strict; use warnings…

宮川プロダクツWeb::Scraperを使って楽天の商品情報をブッコ抜いてみたよ。

待望の冨田尚樹氏の書籍『Perl CPANモジュールガイド』が発売になった。 早速購入! 「この本の登場で、Perl業界が盛り上がること間違いなし!」 などと妄想しつつ、書籍を参考にしながら以前使いこなせずに挫折したWeb::Scraper を試してみた。 お題は 『楽…

DELLのチャットの対応がヤヴァい。

お昼休みに、DELLのチャットでPCについて質問してみました。 リアルタイムだから当たり前だけど、対応超はぇぇ。 「FreeBSDを入れてUQWimaxにしようと思うんですが・・・」 という 「は?勝手にやれよ。」 と言われそうな質問にも丁寧に答えてくれました。 ちょ…

Perlの聖書(ラクダ本)が届いた!

ついに、ペーパーバックの英語の中古本だけど、 2,050円(送料込み)で買った『Programming Perl』が届いたー!! よくよく見ると、2000年出版の3rd Edition でPerl 5.6までしかカバーしてなかったりするw Unicode の節が、「将来実装予定だぜ」的なこと書い…

Perl=>WWW::Mechanizeでの日本語の扱いでつまづき、解決した件。

WWW::Mechanizeを使いこなしたい オライリーの『SPIDERING HACKS』を買ってからというもの、「MADにWEBの情報を集めて整理してエグイ感じで発信してやるぜ、グヘヘ」と思っていたが、いまいち進んでいない。 一番の原因は、日本語マルチバイトの壁。 使って…

CentOS 5.5のPHPをバージョン5.3.5 にアップグレードしてみた件。

CentOS 5.5のPHPをバージョン5.3.5 にアップグレードしてみたお。 探せばいるもので、CentOS 5.5のPHPをバージョン5.3.5 にアップグレードしてみました。基本的には(というか1から10まで)Natzさんのブログの手順通りにやりました。 Natzさん、スペシャ…

CentOS5.5 の標準PHPバージョンが5.1.6なので、yum でPHP5.2.16にアップグレードしてみた。

CentOS5.5 の標準PHPバージョンが5.1.6なので、yum でアップグレードしてみたときのメモ。入力コマンド(1) # yum update出力結果(1) Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: rsync.atworks.co.jp * base…

Perlでテキストファイルの半角スペースを取り除く

#!/usr/bin/perl use strict; use warnings; use utf8; # フィルハンドルを開いてコンテンツを読み込む open my $contents, '<', 'digital_dic2.txt'; # 半角スペースを取り除き半角スペースタグ除去後のコンテンツを表示する # 改行は残したいのでケツに\n…

【Perl正規表現】たった1行でHTMLタグを取り除く

HTMLを加工して、テキストごにょごにょする作業に出会いました。こんなときこそPerlでしょ。「LWPでHTMLを引っこ抜いて、HTMLパーサーとか使おうかなー」なんて、ぼんやり考えながらネットサーフィンしてたら、午前3時30分。もうすぐ夜が明ける。ぐだぐだス…

EC-CUBE 2.4.4 商品ごとの送料設定をカスタマイズ

俺のPerl力があれば、PHPとかSmartyなEC-CUBEとか楽勝でしょ?という勘違い 今でこそCで書かれてたりしますが、PHPは元々Perlベースで作られてたんだから、なんとかなるんじゃね? なーんて甘い考えで始めたEC-CUBE構築。いやぁ、何度も洗礼を受けましたよ。…

ソースコードを書くときはスーパーpre記法を使うべし

ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ

PerlでHTMLの繰り返し部分をインクリメントしてみた

HTMLの構築とかしてると、やたら繰り返す部分が多い。で、画像ファイルだけ差し替えてみたいな。 私は、好み的に画像ファイル名を【『ファイル名』+連番】にしているので、これは、自動化できるんじゃないかと思った。 はじめは、Emacsとかチューンできるテ…

EC-CUBEのディレクトリ構造をPerlで暴く

今月は、割とEC-CUBEを触ってみている。 EC-CUBEはSmartyというPHPのテンプレートエンジンをベースに作られている。 MVCモデル的だ。 ショップ用に作られているため、 カート・メルマガ・売上管理・顧客管理機能が標準で付いている。 まー、過剰な気もするけ…

Perlハッシュのリファレンスを使いこなせるようになりますように。

慣れてくると欲が出てくるのは人間の常のようで、 1行ずつ処理していたものを、複数行まとめて処理したくなってしまった。どう考えても、リファレンスを使わなきゃできそうにない。ということで、ハッシュリファレンスと向き合ってみた。 まず、読み込むinpu…

MovableTypeの役に立たないプラグインを作ってみた

Perlの学習にもってこいだし、仕事に使わなくもないのでMTのプラグイン開発の真似事を少し始めてみた。 プログラミング入門にお決まりの「Hello World!」表示がお題になっていたが、面白くないのでオリジナルメッセージに変更。プラグイン名も無駄にオリジナ…

XAMPPの認証IDとパスをすっかり忘れてしまった時のメモ。

テスト用だから問題ないというものの、いい加減PerlとかPHPとかのテストするのにレンタルサーバーにいちいちアップロードする習慣から脱却しようと以前インスコしたXAMPPにブラウザでアクセス。 無常にも立ち上がる認証画面。 ID・PASS・・・忘れたよ、完璧に。…

Perl48 meets eval function

自分の仕事用に作ったPerl"ガラクタ"スクリプトをブラッシュアップしていくのが、ささやかな趣味の一つになってたりします。『初めてのPerl 第3版(古っ!)』がバックボーンだったりする私ですが、いまだにこの本から新しい発見があります。ほんっと読みた…

はてなダイアリーでコメントリンクを出せずにビビった件

「*」(半角アスタリスク)で始まるはてな記法による見出しを使わないとコメント欄が出ないんだって。備忘録。

PHPだと文字化けしないのに、なんでPerlでは文字化けするの?弱いの?

数週間前、会社の同僚から 「PHPではこんな文字化け起きないのに、なんでPerlでは起きるんだろうか?」という話をもらった。「言語仕様なんじゃないかな?」と、それっぽいことを答えて、お茶を濁したのですが やっぱり気になったので、自分なりに調べてみた…

できたー!!WWW-Mechanize文字化け対応(浅い方の解決策)

以前、ハマっていたWWW::Mechanizeの文字化け 半月以上の月日を経て、やっと解決しました。 (とりあえず簡単な方で) このURLが同じ問題かと思われます。と、親切なk-z-hさんから、的確なアドヴァイスをいただいていたんですが、 当時の私は、オブジェクト…

なにぃ!Objective-C無しでi-Phoneアプリができるだとー!!

最近はちょっぴり複雑な配列リファレンスやらハッシュリファレンスやらを触れるようになってきたPerl48です。 先日、昔いた会社の先輩からメールをもらいました。「i-Phoneのアプリとか作れないの?」って。 で、調べてみたんですが、 どうもMac環境とObject…

Eclipse でPerl 開発環境なんて洒落た感じにしてみた。

先日JavaがらみでインストールしたEclipseだが、 どうやらプラグイン的にPerlの編集にも使えてしまうらしい。 HTML編集にプロがDreamWeaverを使うように、 Perl編集ではEclipseを使おうかなぁ という虚栄心からインスト! このインターフェイス、 まさに統合…

fedra11のログインパスを忘れて焦った。

好奇心旺盛な私は、数ヶ月前 リカバリーディスクのないWindowsPCのHDがぶっ壊れ OSなしとなってしまったパソコンに 中古HDを付けて、OSにFedra11をインストールした。 自宅サーバーなんてものを構築して、 ネットワーク関連の知識を増やそうというのが狙いだ…

Mechそりゃないぜ!-Perl Module WWW::Mechanize と日本語と私。

先日、恐ろしくハマったMechでの文字化け。 今日、立ち読みで仕入れたのだが、 Mechを日本語で飼い慣らすには、JP向けのモジュールを 準備すべしだとか。 『SPIDERING HACKS』のおまけ2に書いてあった。 今日は買わなかったんだけど、 Googleブックスでだい…

-w からの卒業。use warnings へ。

.pm には有効ではない -w を使うのではなく、use warnings;を使おうぜ!というお話。-w って何? warnings って何?

意外と早く必要になりそうなPerl本。

今日は、本屋が開いてる時間に帰ることができたので、 久しぶりにコンピューター書籍コーナーに足を運ぶ。 やっぱり、最近RubyとPythonの本が増えてるし、 目立つ場所に置かれている。言語設計者が日本人のプログラミング言語と Googleが採用しているプログ…

やっと気づいたwhileとforeachの違い。

「whileループは入力を1行ずつ読んで実行していくんだよ。」 「foreachループは入力リストを一気に読んで実行していくんだよ。」という教科書的なことは、 まさしく教科書『初めてのPerl』の"標準入力からの入力"のくだりで 知識として知ってました。が、今…

外部テキストファイルから読み込み、一気にチェックできるようにしました。---Yahoo::Searchモジュールをjp仕様にして、YahooJapan検索順位を1000位まで順位チェックする

この作り方が正しいかどうかはわかりませんが、 僕はPerlを書くとき、1.全体のプログラムをイメージし、条件分岐とかで区切って細かくパーツに分ける 2.細かいパーツを一つ一つイメージ通りに動くかどうかチェックしながら仕上げる 3.できたパーツを組み合わ…

下層ページもチェックできるようにしました。---Yahoo::Searchモジュールをjp仕様にして、YahooJapan検索順位を1000位まで順位チェックする

赤い文字が変更箇所です。 #!/usr/bin/perl -w # #Yahoo::Search_jpを使って特定URLの1000位までの順位をチェックするuse strict; use Yahoo::Search_jp; use encoding qw(shiftjis); my $target_url="http://ameblo.jp/rumifu-blog/"; my $target_words="米…

PerlのURLメモ--Win32::GuiTest で Windows の GUI アプリをハックしよう

Win32::GuiTest で Windows の GUI アプリをハックしようWindows GUIを自動操縦するのは、なんか気持ちよさげ。天下のマイクロソフトを支配したような妄想に浸れるからだろうか? まー、今度試してみよう。

Yahoo::Searchモジュールをjp仕様にして、YahooJapan検索順位を1000位まで順位チェックする

日本の検索と言えば、Yahoo。 ということで、Yahooでの検索結果を1000位まで調べるスクリプトを書いてみました。◎ポイント Yahoo::SearchモジュールのデフォルトYahoo検索APIは、米国版(.com)なので、それらを全て日本版(.jp)に変更すること。◎具体的な手…

デコードしてエンコードしてるつもりなのに

「フォームへの自動入力→送信」という ごくシンプルなスクリプトを作っているんですが、文字化けが止まらない。調べる→試しに実装→文字化け→調べる・・・ という文字化けヘビーローテーションの 輪廻地獄から抜け出せずにいます。 自ら設置したテストcgiフォー…

知ったかぶりは大怪我の元

盆休みも終盤にさしかかっていますが、 ワタクシperl48はというと、相も変わらず自分の仕事を少しでも楽にするため、 Perlスクリプツを作ってみてます。 で、改めて痛感しました。 Perl基礎力の無さを。 例えば、 特定のURLにアクセスし、 必要なフォームに…

WWW::Mechanizeは、めちゃナイス!!

台風4号が全国に大雨を降らす中、私perl48は、 インドアなCPANモジュール厨と化しております。 今日は、WWW::Mechanizeモジュールで Form要素への入力を試してみました。 Mechanize・・・めちゃないず・・・めちゃナイスの複数形 などとアフォウな連想はさておき…

PerlだってGUIできるんだもんっ!

わたくし、perl48は やたらPerl関連の書籍を買い漁っていたりします。ご本をたくさん読むよりも、 自分にとって少しでも有益だと思えるスクリプツを、 諸先輩方の事例をカスタマイズしながら 作り上げていくことがPerl力向上の近道だ!! ・・・と気づいたのは…

Perl版 WWW::Mechanizeモジュールを使ってみるー。

ブラウジングやWEB関連の作業を自動化したいなーと思って、Perlでどうやったらできるだろうと調べていると必ず行き着くのが WWW::Mechanize。 メックなんて呼ばれてるこのモジュールは、筋金入りのお手軽ツールらしい。ということで、早速ドキュメントを読み…

WWW::Mechanizeモジュールのドキュメント読んでて、初めて知ったparmsの意味。

Perlでちょっと役に立つものを作ろうと思ったら、CPANモジュールを使わないのはもったいなさ過ぎるなーとヒシヒシと感じる盆休みなperl48です。 CPANドキュメントを読みながら、実行しながら、リャマ本で調べながら、あーだこーだやってると確実に実力がつい…

PerlモジュールYahoo::Searchの$Result->CacheUrl の検証。

さっきのYahoo::Searchの$Result->CacheUrl 部分が ホントウに「キャッシュはこちら」な部分のリンクURLを指しているのか 調べてみた。ちなみに、下記画像のIn Cache部分が対象です。 海外版のYahooのリンクかなぁと思い、まずはアメリカ版から調べてみる。 …

手始めにYahoo::Searchモジュールを使ってみる。

まずは、先人のお知恵を借りようと Yahoo-Search-1.11.3 を使ってみる。よくわからなくても、とりあえず SYNOPSIS(概要)に書いてくれているソースを コピペして実行してみる。CPAN見れば載ってるけど、一応下記がその概要ソース use Yahoo::Search; my @Re…