300個以上の静的htmlファイル内のリンクを一括で置き換える事案に遭遇。単純に置き換えすると文字化けする。なぜなら、shift-jisとutf-8が混在しているから。ファイルの編集者が別なので、文字コードを統一することはできない。ということで、Perlの出番です…
「6月に来店したお客様のうち、7月に何名の方がリピートしてくださったか?」といった数字を拾いたい事象が発生。6月の来店済み顧客IDの配列と7月の来店済み顧客IDの配列を比較して重複分を拾えばいいじゃない!ということで、書きました。foreachを2重にす…
プログラミングの地力を上げたいなぁと思い、数学パズルっぽいのをコードで解いています。棋力を上げるために詰将棋を解くようなノリです。ある問題を解くために「0から9の数字が全て出てきたら終了」という処理が欲しかったので書いてみました。 use strict…
2018年7月某日、グーグルがSSL/TLS未対応サイト絶対許さんマンになってから、「うちのサイトもなんとかしてほしい」という問い合わせが増えてきました。「保護されていない通信」とかデカデカと表示されたら、流石に焦りますよね。オープンソースのおかげで…
『初めてのPerl 第7版』を練習問題もこなしつつ、自分史上最高なんじゃないかというくらい丁寧に読み進めています。この本、過去の版のものを何度か読んでたんですが、ビット演算子とかプロセス管理とか新しい学びがいっぱい。ホントに適当に読んでたんだな…
HTMLの中のコンテンツ部分だけ抽出したい、という欲望がムクムクと湧いてきたのでPerlの正規表現で書いてみました。これまでも、HTMLタグを取り除く処理は書いたことあるんですが、「欲張りでない量指定子」(Non-Greedy Matches)が理解できてなかったので、J…
やりたいこと '201808' ↑みたいな引数を渡したら、 [ qw( 20180801 20180802 20180803 20180804 20180805 20180806 20180807 20180808 20180809 20180810 20180811 20180812 20180813 20180814 20180815 20180816 20180817 20180818 20180819 20180820 20180…
my @arr = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13); ↑ こういう感じの配列を、 my $expected = [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 9, 10, 11, 12 ] ]; ↑ こういう感じに分割したい欲望に駆られました。この場合は、13個の要素を持つ配列を4つの要素…
#!/usr/bin/perl6 say @(0 ^..^ 9); # → (1 2 3 4 5 6 7 8) ↑ 猫がいる! ブラウザでPerl6が気軽に試せるオンラインコンパイラー Ideone.com - Online Compiler and IDE >> C/C++, Java, PHP, Python, Perl and 40+ other compilers and interpreters
きっかけ 今まで気になりつつも、やったことなかったんですが、moznionさんの2013年のスライド↓YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使うhttps://www.slideshare.net/moznion/yapc2013-26371522 YAPC::Asia 2013 - CPAN Testers Reports …
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.010; use Encode qw(encode); # 半角スペースを明示的に全角スペースにする my $str = "ニューヨーク シティボーイ"; say encode('utf8', $str); # ニューヨーク シティボーイ $str =~ s/\s/…
テスト大事だよねって今さら改心した。 昨日『モダンPerl入門』を読んでて、「ナマケモノになるためにテスト書く」っていう感じのところが腑に落ちた。確かにリファクタリングとか機能追加が億劫になるのって、動いてるものが同じように動くって確信持てずに…
いい加減 say 使ってもいいかも。 say関数 といえば、Perl 5.10 から導入された「改行付き print」。Ruby書いてて「puts」とか超便利じゃん!って妬ましい気持ちになったものですが、Perlでもできちゃうんですねー。 ただ、僕の主戦場の格安レンタルサーバー…
クロスサイト・リクエスト・フォージェリ(CSRF)対策としてのトークン発行Webアプリケーションを狙った攻撃としてポピュラーなCSRF。MojoliciousにそんなCSRF対策のためのタグヘルパーがあったので、試してみました。CSRFだけでなくWebアプリケーションのセキ…
難読化されてるPerlスクリプトを読みたくて、置き換え処理をチョコチョコっと書いたけどうまく動かず。perl -d hoge.pl みたいな感じでデバッガ使って動作確認しても、一見おかしなところは無いっぽかった。 原因は、置き換えに使ってる変数に入ってるバック…
今さら感満開ですが、Twitterのつぶやきアプリ的なものを作ってみようと思った。もちろん大好物のPerlで。APIキーの取得から、Access token取得の流れまで解説してくれた下記ブログを参考にさせていただきました。http://d.hatena.ne.jp/ozuma/20121230/1356…
3つのファイルの1行目同士、2行目同士・・・n行目同士をつなげたい衝動に駆られました。Linux環境では、 $ paste 1.txt 2.txt 3.txt > res.txt みたいにすれば一発でしたが、Windows環境なのでそれもできず・・・。 で、Perl でやってみました。 まずは、…
Windows 向けのソフトに読み込ませるファイルをUTF-8(BOM付き)にする必要があったので、やってみた。TeraPadで開いて「文字コード指定保存」すればできるんだけど、スクリプト処理の一連の流れに乗せたかったので、やってみますた。Windows7(64bit)環境でや…
Perlを使い始めてかれこれ4年ほどになります。僕のプログラミングバージンはPerlに破られたので、変数とか、条件分岐とか、繰り返しとか、配列とかはPerlで身に着けました。ちょこっとモジュールとかも使えるようになったりして、自分の欲しいツールは大体…
マルチバイト文字列が母国語の我々を常に悩ませる問題。そう、文字化け! 1年ちょい前に書いたエントリーでも文字化けについて書いてるけど、今日もややハマりそうになって、「perl Encode.pm」でググると自分のブログに到着。 おかげでスムーズに解決。あ…
特に文字コードを意識することなくフツーに文字コード shift_jis で書いたスクリプト内で、日本語を print しても文字化けしないのは、たまたま処理がうまくいってるだけなんだということが今さらになって、わかった。※ちなみに、WindowsXP、Perl v5.10.1 な…
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言語プログラミングレッスン』を読んでたらできました。 #!/usr/bin/perl # # 複数行の置き換えを行うスクリプト # 2011.10.29_scripted by perl48 use strict; use warnings…
待望の冨田尚樹氏の書籍『Perl CPANモジュールガイド』が発売になった。 早速購入! 「この本の登場で、Perl業界が盛り上がること間違いなし!」 などと妄想しつつ、書籍を参考にしながら以前使いこなせずに挫折したWeb::Scraper を試してみた。 お題は 『楽…
お昼休みに、DELLのチャットでPCについて質問してみました。 リアルタイムだから当たり前だけど、対応超はぇぇ。 「FreeBSDを入れてUQWimaxにしようと思うんですが・・・」 という 「は?勝手にやれよ。」 と言われそうな質問にも丁寧に答えてくれました。 ちょ…
ついに、ペーパーバックの英語の中古本だけど、 2,050円(送料込み)で買った『Programming Perl』が届いたー!! よくよく見ると、2000年出版の3rd Edition でPerl 5.6までしかカバーしてなかったりするw Unicode の節が、「将来実装予定だぜ」的なこと書い…
WWW::Mechanizeを使いこなしたい オライリーの『SPIDERING HACKS』を買ってからというもの、「MADにWEBの情報を集めて整理してエグイ感じで発信してやるぜ、グヘヘ」と思っていたが、いまいち進んでいない。 一番の原因は、日本語マルチバイトの壁。 使って…
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 でアップグレードしてみたときのメモ。入力コマンド(1) # yum update出力結果(1) Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: rsync.atworks.co.jp * base…
#!/usr/bin/perl use strict; use warnings; use utf8; # フィルハンドルを開いてコンテンツを読み込む open my $contents, '<', 'digital_dic2.txt'; # 半角スペースを取り除き半角スペースタグ除去後のコンテンツを表示する # 改行は残したいのでケツに\n…