タグ

Perlに関するm6uのブックマーク (15)

  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

    m6u
    m6u 2017/12/12
    もしかして:おしえて\A to \z
  • Perlのページ

    Shift-JISテキストを正しく扱う [2006-10-28] swatchとswash [2006-10-21] Perlそぞろ書き [2001-10-08] Shift-JIS関連モジュール ShiftJIS/String.pm [tar.gz] v1.04 [2007-01-01] [ドキュメント日語版] Shift-JIS文字列を扱う。 ShiftJIS/Regexp.pm [tar.gz] v1.00 [2007-01-02] [ドキュメント日語版] Shift-JIS正規表現を扱う。 ShiftJIS/Collate.pm [tar.gz] v1.03 [2007-01-14] [ドキュメント日語版] Shift-JIS文字列の照合、比較および並び替え。 ShiftJIS/CP932/MapUTF.pm [tar.gz] v1.02 [2007-06-04] [ドキュメ

    m6u
    m6u 2014/05/14
    CP932やJIS X 0213がらみの有用なモジュール群
  • JIS X 0213:2004(JIS2004) で本当に文字化けする文字

    とします。Perl で文字コードを操作する方法は、Encode.pm と旧Jcode.pm (0.8系)がメジャーどころなので、その2つについて調査しました。Encode.pm に関しては、Encode::JP と Encode::JIS2K を対象としました。 まず結論から。Encode::JIS2K を使う限り、文字化けする SJIS コードは以下の35文字です。 JIS2004 で追加された10文字:879F 889E 9873 989E EAA5 EFF8 EFF9 EFFA EFFB EFFC カ行に半濁音(゜)を付けた文字など一部の文字: 82f5 82f6 82f7 82f8 82f9 8397 8398 8399 839a 839b 839c 839d 839e 83f6 8663 8667 8668 8669 866a 866b 866c 866d 866e 8685 8

    m6u
    m6u 2014/05/09
    Encode-JIS2Kの存在を知るも、WindowsのActivePerlに入れられるMakefile.PLの書き換えに頓挫。
  • Mojolicious Web Framework

    11,907 commits closer to perfection! Mojolicious is a fresh take on Perl web development, based on years of experience developing the Catalyst framework, and utilizing the latest web standards and technologies. You can get started with your project quickly, with a framework that grows with your needs. The Mojo stack provides a consistent set of components that can be used in any project. The guide

    m6u
    m6u 2013/08/20
    なんかカッコいい。Perl好きな私にはかっこよくみえる。
  • Perl 5.8.x Unicode関連

    -> 趣旨と注意書き -> UTF8フラグ? -> UTF8フラグとPerlIOレイヤ -> UTF8フラグのついた文字列を記述する -> Wide character in print ... -> Encode -> utf8::* -> use utf8; -> use encoding; -> use UTF8 と use encoding -> JcodeからEncodeへ -> 情報源 <- モドル 趣旨と注意書き Perl 5.8.x のUnicode 関連です。 正直、5.8.x は、ネタでしか使ってなかったので(ぉ、ちゃんといじったことがありませんでした。 使ってみると、よくわかんなくなったので、ちょっとまとめてみました。 今でもあんまりわかってないかもしれないので、内容は無保証です。 突っ込み歓迎。 Jcode、Encodeのメンテナの弾さんから、ご指摘いただいたので、

  • ファイルタイムの取得 - Perl表技集

    statで情報を取得することができます。その中にタイムスタンプの情報が入っています。 use strict; use warnings; my $filename = 'hoge.txt'; my @filestat = stat $filename; my $atime = localtime($filestat[8]); # アクセス日 my $mtime = localtime($filestat[9]); # 更新時刻 print $atime, "\n"; print $mtime, "\n"; 関連項目 ・localtime関数 ・stat関数 ・utime関数 ・ファイルテスト演算子

    m6u
    m6u 2012/10/05
    ファイルのタイムスタンプの取得。stat()。アクセス時刻は8、更新時刻は9。
  • ファイルをコピーする - Perl入門ゼミ

    Perl › ファイル操作 › here ファイルをコピーするにはFile::Copyモジュールのcopy関数を使用します。成功すれば真が、失敗すれば偽が返ります。またcopy関数が失敗すれば、$!にエラーの内容が、格納されます。 use File::Copy 'copy'; copy $file, $copy_name; ファイルをディレクトリの中にコピーすることもできます。 use File::Copy 'copy'; copy $file, $dir; サンプル ファイルをコピーするサンプルです。 use strict; use warnings; use Fcntl; use File::Copy 'copy'; # ファイルをコピーする。 my $file = "sample_20080521_$$.txt"; my $dir = "dir_20080521_$$"; # 準備

    ファイルをコピーする - Perl入門ゼミ
    m6u
    m6u 2012/10/05
    ファイルのコピー。File::Copy::copy()
  • perlメモ:ファイルのタイムスタンプを変更するには?

    ファイルのタイムスタンプつまり日付ですが、これを変更するにはutime関数を使います。 ファイルの最終アクセス日時と最終変更日時を変更することが出来ます。 日付を変更したいファイルはリスト形式で複数渡すことが出来ます。 ●フォーマットはこんな感じ utime(最終アクセス日時,最終変更日時,ファイルパス又はファイルパスのリスト); ●サンプル1 #!/usr/bin/perl $atime = $mtime = time; utime $atime, $mtime, @ARGV; ●サンプル2 単純に一個のファイルのタイムスタンプを修正する場合はこんな感じ #!/usr/bin/perl $atime = $mtime = time; utime $atime, $mtime, ‘./hogehoge.txt’; ●戻り値は、変更することが出来たファイルの数。 ●perl 5.7.2からは

    perlメモ:ファイルのタイムスタンプを変更するには?
    m6u
    m6u 2012/10/05
    ファイルのタイムスタンプ変更。utime()
  • Perl XML HTTP Post to a web service.

    Chapter 3. Make a SOAP client with Perl and SOAP::Lite 3.3. Perl XML HTTP Post to a web service.In the two following sections you will find sample code sending (with a Post) a SOAP message to a Java WSDP and a .NET web service. These post will work without the use of the package SOAP::lite. 3.3.1. Post a SOAP message to my Java WSDP web service.Our simple post example now. Let's see how it is so s

    m6u
    m6u 2012/09/19
    SOAPリクエスト送信のサンプル
  • 簡単!たった13行のコードでHTML取得&解析をするPerlスクリプト - DQNEO起業日記

    13行のコードで、Yahoo!Japanのトピックス一覧を取得する! PerlHTML取得・解析したいときはLWP::UserAgentHTML::TreeBuilderというのを使うと簡単にできます。 LWP::UserAgentを使うと、Webページの取得ができます。 HTML::TreeBuilderを使うと、HTMLのDOM解析ができます。 この2つのモジュールを使って、Yahoo!Japanのトピックス一覧を取得してみましょう。 コメント行と空行を除くとたったの13行です。 use strict; use warnings; use LWP::UserAgent; use HTML::TreeBuilder; # urlを指定する my $url = 'http://www.yahoo.co.jp'; # IE8のフリをする my $user_agent = "Mozilla

    簡単!たった13行のコードでHTML取得&解析をするPerlスクリプト - DQNEO起業日記
    m6u
    m6u 2012/09/18
    ロボット収集に大活躍。
  • はてなブログ | 無料ブログを作成しよう

    台北市立動物園と迪化街めぐり 子連れ台湾#5 年越し台湾旅行5日目、レジャーや友人との事を楽しむ日です。前日の様子はこちら www.oukakreuz.com 台北市立動物園へ パンダ館 パンダが見られるレストラン 迪化街へ 林茂森茶行でお茶を購入 小花園で刺繍グッズを購入 黒武士特色老火鍋で夕 台北市立動物園へ 松…

    はてなブログ | 無料ブログを作成しよう
    m6u
    m6u 2012/04/04
    grep技以外にもこんなにあるとは。
  • 【CGI・Perl】基数変換したい

    CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:数値  基数変換したい 2進数を10進数、10進数を16進数など、基数変換には「Math::BaseCalc」モジュールを使用すると楽に行える。 Math::BaseCalcモジュールは別途インストールが必要な場合があるので注意。 ;# ;#基数変換 ;# use Math::BaseCalc; #-- 10進数を2進数に変換 --# $calc  = new Math::BaseCalc(digits => [0,1]); $value = $calc->to_base(100); print $value, "\n"; #-- 10進数を8進数に変換 --# $calc  = new Math::BaseCalc(digits => [0..7]); $val

    m6u
    m6u 2012/03/26
    なるほど。
  • Perl5.8 の UNICODE 対応

    perl は 5.8 から Unicode(utf-8) がサポートされました.5.6 でも Unicode に対応はしていましたが,ぜんぜん使い物にならず,ようやく 5.8 でまともに使えるようになったということです.ただせっかく使えるにもかか わらず perldoc などを見てもイマイチ使い方がわからないので,独自にまと めてみたのがこのページです. 誤った書き方や勘違いをしてい ることもあるので,形式的ですがこのページの内容は無保証です. 内容 文字コード変換 perlIO jperlからの移行 UTF-8フラグ 文字コード自動判別 Unicode Standard Unicode 正規化 その他 参考資料 文字コード変換 とりあえず perl5.8 で新しく組み込まれた機能を見るために,euc-jp から shift_jis への変換スクリプトをいくつか載せます. openを利用し

    m6u
    m6u 2012/03/26
    このドキュメント、丁寧だな。じっくり読みたい。
  • Perlによる日本語コード変換のメモ(第二版)

    Perlによる日語コード変換のメモ(第二版) hikoboshi.home / Perlによる日語コード変換のメモ(第二版) 前に書いたときと時代背景も知識も大幅に違うので、書き直してみることにしました。Perl 5.8以降を前提として考えます。 この文章で書く(つもりの)こと use utf8環境での、文字セットの考え方 発生しがちな文字化けとその原因 解決のヒント jcode.pl時代の文字セットの扱い まずは、jcode.plなどが全盛だった時代を思い出してみます。jcode.plの時代は、Unicodeはほぼ使われておらず、JIS, Shift_JIS, EUC_JPあたりの変換を行う事が主でした。実際のコードを見て、扱われ方を考察してみましょう。 #!/usr/bin/perl # jcode.plを用いたコード変換 require 'jcode.pl'; open my $

    m6u
    m6u 2012/03/09
    これのお陰で、変なエンコードに悩まされずに済みます。
  • Perlメモ/Perlでメールを受ける - Walrus, Digit.

    Net::POP3での受信とMIME::Parserでの解析について。 川合氏の「Perlでメールを受ける」を読み解いていった過程でまとめた両モジュールの使い方情報と、同資料で触れられているメール中の日語の取り扱いについての補足情報です。 なお、ActivePerl 5.6系でもPPMで5.411a(2005年2月現在)のMIME-Toolsがインストールできるようになりましたので、同資料ではMIME-Tools5.410以降にあわせて書かれた「1.5 MIME-toolsの最新版への対応+HTMLメールに添付ファイル」を勉強対象にしています。 Net::POP3モジュールを利用できるなら、メールの受信は簡単です。 以下のスクリプトで、メールを受信して単純なファイル名(スクリプトのプロセスID+連番)で保存することができます。 use Net::POP3; # メールサーバとアカウントの

    m6u
    m6u 2012/03/05
    業務メール仕分けの自動化をPerlでやってみようかな。
  • 1