タグ

perlに関するbull2のブックマーク (33)

  • よく使用する関数・標準モジュール一覧 - Perl入門ゼミ

    Perl › よく使う関数・モジュール よく使用する関数・標準モジュールの一覧です。これらの関数を覚えておけば、Perlをより便利なものにすることができます。詳細な解説は避け、簡単なサンプルを紹介しています。戻り値のあるものについては$retという記号で表しています。 また、よく使用する特殊変数、標準モジュールについても、解説しています。各項目から、関数の詳細にもリンクしていますので、便利にご利用ください。 数学関数 文字列操作 配列操作 ハッシュ操作 ファイル入出力 ファイル・ディレクトリ操作 時刻・時間 その他の重要な関数 関数とモジュールのドキュメントの調べ方 よく使用する特殊変数 よく使用する標準モジュール 数学関数 abs 絶対値を求めるにはabs関数を使用します。 $ret = abs $num; abs(-3)は3になります。 sqrt 正の平方根を求めるには、sqrt関数を

    よく使用する関数・標準モジュール一覧 - Perl入門ゼミ
    bull2
    bull2 2009/09/07
  • perl - use encoding; #は黒歴史 : 404 Blog Not Found

    2009年06月08日14:30 カテゴリLightweight Languages perl - use encoding; #は黒歴史 ぎゃあぁぁ length関数で文字列の長さを求める - perl初心者BLOG - Hatena::Group::Perl語の文字数を正確に求めたい場合、use encodingを指定する use encoding;は、jperlなど、かつて存在したL10Nされたperl用に書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。こういう目的で利用すべきではありません。 このあたりのことは、以前 404 Blog Not Found:perl - no encoding; # whenever possible でも書いたのですが、大事なことなのでまた書きます。 スクリプトはUTF-8で書き、use utf8;する のがモ

    perl - use encoding; #は黒歴史 : 404 Blog Not Found
    bull2
    bull2 2009/06/08
  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

  • 汚いなさすがPerlきたない - firewood's diary

    Shibuya.pm #11「no Perl; use x86;」鑑賞してきた。 常々PerlはLLじゃないんじゃないかと思っていたのだが、LLの皮をかぶったアセンブラであることを再確認したのであった。 1. catcher in the int 80h; inside lleval FreeBSD::i386::Ptraceの実装について。 pt_to_sce()でsystemcallを実行直前にフックできる。スタックに積まれた引数を書き換えることができるので、実行したくないオペレーションであればSEGVで死ぬような引数に書き換えることでsandboxを実現。 forkは引数がないのだが、EIPを0に変更することはできるので、それで殺す。アドレス0にmmapされるとSEGVで死ななくなってしまうのでそれも抑止する。 2. Perl sandbox for Linux fork() sys

    汚いなさすがPerlきたない - firewood's diary
    bull2
    bull2 2009/04/23
  • Perl で Win32::API プログラミング入門 - 竹迫の近況報告

    ActivePerl (Windows版) には Win32::API - Perl Win32 API Import Facility - metacpan.org が付属しているので、今日からすぐに Win32::API を利用したプログラミングが出来ます。 簡単なメッセージボックスを表示するPerlプログラムは以下になります。 #!/usr/bin/perl use Win32::API; my $MessageBox = Win32::API->new("user32", "MessageBoxA", "NPPN", "N"); $MessageBox->Call(0, "Hello, World!\n", "Message", 0); このプログラム実行すると、「Hello, World!」と書かれたWindowsメッセージボックスが表示されます。 これを Win32::API

    Perl で Win32::API プログラミング入門 - 竹迫の近況報告
    bull2
    bull2 2009/03/24
    とっても便利
  • perl から任意の C ライブラリを呼び出す方法 - kazuhoのメモ置き場

    syscall って組込関数でシステムコールはできますけど、libc やその他ライブラリの関数を呼びたい、ってこともありますよね。i386 かつ dlopen な環境なら、こんな風に書けます。 use DynaLoader; use ops; sub ccall { my $r = '1111'; my $s = "\x68" . pack("L", $_[5]) . "\x68" . pack("L", $_[4]) . "\x68" . pack("L", $_[3]) . "\x68" . pack("L", $_[2]) . "\x68" . pack("L", $_[1]) . "\xb8" . pack("L", ("Dyna"."Loader")->can("dl_find_symbol")->(("Dyna"."Loader")->can("dl_load_file")->

    perl から任意の C ライブラリを呼び出す方法 - kazuhoのメモ置き場
  • 弾さんのperlを実行するAPIでお気楽ハックする - edry(えどりぃ)の粋狂

    2009年3月11日 17:49 404 Blog Not Found:Ajax - perlを実行するAPI いろいろ試してみてください。 /etc/passwd 見れちゃった。 # $FreeBSD: src/etc/master.passwd,v 1.40 2005/06/06 20:19:56 brooks Exp $ 何が問題なのか書いた方がセキュリティの参考にはなるけど、まずはメールでお知らせしておきます。

    bull2
    bull2 2009/03/13
    どうせchroot or jailされてる悪寒
  • Win32::GuiTest で Windows の GUI アプリをハックしよう

    的な書き方 use strict; use warnings; use utf8; # ↑ Perl ハッカーに DIS られなくなるおまじない # Win32::GuiTest を使うおまじない use Win32::GuiTest qw(:ALL); # 日語を使えるようにするおまじない UnicodeSemantics(1); # ここで Win32::GuiTest を使う マウスを動かす use strict; use warnings; use utf8; use Win32::GuiTest qw(:ALL); # 小数点もいけちゃう sleep 関数 use Time::HiRes qw(sleep); UnicodeSemantics(1); for (my $i = 0; $i < 500; $i++) { # 10 ms 待つ sleep(0.01); # マウ

    bull2
    bull2 2008/12/12
    楽しそう。でも自動化はpower shellを使って実動作をキャプチャした方が早そう
  • プログラムの文字コードにUTF-8を使用する

    これで Perl のプログラムが UTF-8 を使って記述されていることを宣言することができます。テキストエディタなどでプログラムを記述した時に、文字コードを UTF-8 を指定して保存して下さい。 ただし Windows 環境の場合であれば、何かキーボードから文字を入力したり、画面に出力する時には Shift_JIS を使用するため合わせて次の設定が必要となります。

    プログラムの文字コードにUTF-8を使用する
  • Unicode - 似た文字同士にご用心 : 404 Blog Not Found

    2008年05月02日04:00 カテゴリLightweight Languages Unicode - 似た文字同士にご用心 後者はハイフンでなくてマイナス記号でんがな。 [を] UTF-8 の全角ハイフンが Perl の正規表現にマッチしなくて悩んだ で、元のテキストファイルの全角ハイフンを「od -t x1」 で見てみると「ef bc 8d」と「e2 88 92」の2種類が混じっていました。 前者は「\p{Hyphen}」にマッチするのですが後者はダメ。 まあ原因は分かったので、前処理でバイナリ置換して解決しました。 で、紛らわしそうなのを名前のHYPHENとMINUS SIGNでgrepするとこんな感じになる。 egrep '(HYPHEN|MINUS SIGN)' /usr/local/lib/perl5/5.10.0/unicore/Name.pl -002DHYPHEN-MI

    Unicode - 似た文字同士にご用心 : 404 Blog Not Found
  • Kazuho@Cybozu Labs: Perl で埋め込み SQL を使って楽をする話

    « Japanize for IE バージョンアップのおしらせ | メイン | Filter::SQL を使って掲示板を書いてみました » 2008年04月16日 Perl で埋め込み SQL を使って楽をする話 DSL (ドメイン固有言語) は、プログラム開発の生産性を向上させる有力な手段です。そして、よく使われる DSL の代表例が正規表現と SQL だと思うのですが、前者に比して後者を嫌いな人が多いようです。なぜだろうと思ってつぶやいたところ、「SQL はリテラルじゃないから!」という答えが tokuhirom さんから返ってきました。そういえば例えば Pro*C のように C で Embedded SQL というのは良く聞く話なのに、Perl では同様の例がないような感じだったので、作ってみました。Perl で埋め込み SQL を実現するソースフィルター Filter::SQL

    bull2
    bull2 2008/04/16
    SQLが嫌いな人が多いのは何故だろう?
  • mixi Engineers’ Blog » 言語バインディングを書こう

    世田谷の某所から原宿まで自転車通勤しているのですが、そろそろ寒くなってきたので電車に切り替えようかと悩み中のmikioです。今回はTokyo Cabinetのスクリプト言語バインディングについて述べます。 スクリプト言語バインディングとは TCはC言語で実装されたライブラリで、C言語(C89、C99)およびC++言語のプログラムから利用することができます。CやC++は各種の計算処理やシステムコールの呼び出しを直接的に記述できるので高速に動作するプログラムを作ることができる反面、ポインタ演算やメモリ管理などで致命的なバグを潜ませやすいので非常に注意深くコーディングを進めなければいけません。つまり、プログラムの実行速度は速いが、開発速度は遅いということです。 それに対して、PerlRubyをはじめとするいわゆるスクリプト言語は、実行速度はCやC++に劣るものの、高水準かつ直感的な文法と強力な

    mixi Engineers’ Blog » 言語バインディングを書こう
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    bull2
    bull2 2007/11/08
    autoboxサイコー
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    bull2
    bull2 2007/11/08
    この記事で紹介しているautobox、私は正にこれを求めていた。標準で使えたらサイコーなのになぁ。
  • 404 Blog Not Found:perl - Module::Compile で Self::Compile

    2007年11月04日16:30 カテゴリLightweight Languages perl - Module::Compile で Self::Compile PERL HACKS(日語版) [英語版] こういうものこそ、Module::Compile self-0.11なるものを触ってみた - Unknown::Programming なんとまあ悲惨な結果になりました。他かだか1000ループでコレではちょっと使い物にならないかなぁ・・・。#!/usr/local/bin/perl use strict; use warnings; use Foo; my $f = Foo->new(); $f->foo("bar"); print $f->foo; Foo.pm package Foo; use strict; use warnings; sub new { bless {}, s

    404 Blog Not Found:perl - Module::Compile で Self::Compile
    bull2
    bull2 2007/11/07
  • 404 Blog Not Found:紹介 - 一つのファイルでperl,javascript,HTMLそしてGIF

    2007年11月05日23:30 カテゴリLightweight Languages 紹介 - 一つのファイルでperl,javascript,HTMLそしてGIF takesako['www']++; TAKESAKO @ Yet another Cybozu Labs: Real UNIX MAGAZINE Day ライトニングトーク 若輩者ながら、昨今のAjaxの技術のGIF89a(ハック)について newtype と oldtype の話を交えながら、ライトニングトークさせていただきました。これが、問題のソース。ちょっとだけ改変してあります。以下のリンクを追ってお試しあれ。 polyglot.(html|gif|pl) GIF89a(q=/*=);sub GIF89a{ print "Hello, Perl!"} __END__#*/1);function GIF89a(){ale

    404 Blog Not Found:紹介 - 一つのファイルでperl,javascript,HTMLそしてGIF
  • Part1 正しいPerl/CGIの書き方:ITpro

    Shibuya Perl Mongers 2代目リーダーにして,ppencodeの作者。広島市立大学卒業後,大企業向けmod_perl製品の開発に従事。2005年よりサイボウズ・ラボ株式会社に入社。LL Ringに参戦。Namazu for Win32,Plagger,Ajajaのコミッターでもある。 CGIといえばPerl。そんな風にいわれていた時期もありました。レンタル・サーバーのCGIで手軽にPerlが使えたこともあり,ちょっとした掲示板のスクリプトやアクセス・カウンタなど,CGIプログラムの多くがPerlで書かれていました。このためPerlが爆発的に普及したのです。Perlは日のインターネット黎明期を支えたプログラミング言語として,広くその名が知られています。 その半面,Perlで書かれたプログラムの保守性に悩む声も聞かれるようになりました。事実,Perlのプログラミング経験が少

    Part1 正しいPerl/CGIの書き方:ITpro
  • Perlでプラガブルモジュールを作ろう!:第2回 attributeを使ってplugin作成を支援する|gihyo.jp … 技術評論社

    今回のテーマ 今回は、Perlのattributeという仕組みの詳細と、そのattributeを利用したClass::Componentのpluginについての解説、pluginの作成方法といった話題を取り上げます。 サンプルアプリケーション 連載では、プラガブルなモジュールを作製するという事を考えて、Gopperという実際に実行可能なサンプルアプリケーションを元に解説を行ないます。GopperはCodeRepos上のsvnリポジトリに置いてあるので各自checkoutしてください。 svn co -r 455 http://svn.coderepos.org/share/lang/perl/Gopper/trunk Gopper attributeとは attributeとは、Perlのサブルーチンや変数に属性を定義して、サブルーチンとしての挙動を標準から変更したり、どのようなサブルー

    Perlでプラガブルモジュールを作ろう!:第2回 attributeを使ってplugin作成を支援する|gihyo.jp … 技術評論社
    bull2
    bull2 2007/10/22
    sub hoge : lvalue { return shift->{fuga}; }と書くと、メソッドを左辺値に書ける。へぇへぇ。
  • Kazuho@Cybozu Labs: Perl の正規表現が破壊的でイヤだなと思った件

    « Japanize インストール済の Safari で apple.com/downloads にアクセスすると落ちる件 | メイン | swifty - 高速な共有メモリキャッシュ » 2007年07月18日 Perl の正規表現が破壊的でイヤだなと思った件 いちいち変数定義して、 my $s = "Hello, World\n"; $s =~ s/Hello/Goodbye/; print $s; とか書くのにあきてきたので、 sub ndes (&@) { my $code = shift; my @a = map { local $_ = $_; $code->(); $_; } @_; wantarray ? @a : $a[0]; } と、まとめてみました。これで、 print ndes { s/Hello/Goodbye/ } "Hello, World\n" とするだけで

    bull2
    bull2 2007/07/18
    そうか、&でsubroutineを渡せるのね
  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

    bull2
    bull2 2007/06/21
    言語毎の表現方法の違い。perlでもa.push(var)したいなぁ