タグ

Perlに関するzetamattaのブックマーク (252)

  • perl - デフォルト値のperlらしい指定法 : 404 Blog Not Found

    2008年07月02日23:00 カテゴリLightweight Languages perl - デフォルト値のperlらしい指定法 Perl Cookbook (English) Christiansen / Torkington [邦訳: Perlクックブック] これでもよいのだけど、さらに恰好つけるとよりperlらしくなるので。 デフォルト値の扱い。 - サンプルコードによる Perl 入門 Scalarによるデフォルト値 sub num{ my $num = shift; # .... } ここは sub num{ my $num = shift || -1; # .... } の方がわかりやすい。0または''を入力値、すなわち非デフォルト値として扱いたい場合のみ、 sub num{ my $num = shift; $num = -1 if not defined $num;

    perl - デフォルト値のperlらしい指定法 : 404 Blog Not Found
    zetamatta
    zetamatta 2008/07/06
    スカラー値とハッシュのデフォルト値の作り方。まぁ、定番的やり方ですね。
  • use Safe; # XS知らなくても大丈夫! : 404 Blog Not Found

    2008年06月30日16:45 カテゴリLightweight Languages use Safe; # XS知らなくても大丈夫! さすがにこの目的のためだけにXS Hackというのは、ハエ退治にパトリオットミサイル撃つようなものなので、キンチョールも紹介しておきたく。 PL_check hack - daily dayflower ゴール #!/usr/bin/perl eval 'print "Hello ' . $ARGV[0] . '!\n"'; とか危険ですよねー*1。こんな機能があるなんてけしからん。ですので,eval の実行を抑制するモジュールを書いてみました。 そのためには、Safeモジュールを使います。Perl 5.02からCOREに入っている由緒あるモジュールです。Malcolm Beattie がBのフレームワークを作った理由の一つが、これを可能にすることでした。

    use Safe; # XS知らなくても大丈夫! : 404 Blog Not Found
    zetamatta
    zetamatta 2008/07/06
    Perl 5.02からCOREに入っている由緒あるモジュールで、opcodeの一つ一つをオンにしたりオフにしたり出来る
  • perl - tie()って何をtieするの? : 404 Blog Not Found

    2008年07月05日01:30 カテゴリLightweight Languages perl - tie()って何をtieするの? 私はタイをまとうのがだいっきらいですが、Perl 5の中で一番好きな関数がtie()だったりします。 tie関数とは - 燈明日記 すると、裏で処理が動き、オブジェクトをコンストラクトしたり、とある処理結果が参照できたり、代入したものに対応したものを格納出来たりする。 というわけで、tie()について語っておくことにしましょう。 tie()とはなにか? ずばり、「オブジェクトではない、perlの組み込みデータタイプを裏でオブジェクト化する仕組み」のことです。それがなぜtieと呼ばれるかと言えば、変数を指定されたクラスに結びつけるから、です。 論より証拠、実際に見てみましょう。 use strict; use warnings; { package MySca

    perl - tie()って何をtieするの? : 404 Blog Not Found
    zetamatta
    zetamatta 2008/07/05
    『オブジェクトではない、perlの組み込みデータタイプを裏でオブジェクト化する仕組み』 それが tie !
  • perl - Const released -- True Readonly : 404 Blog Not Found

    2008年06月27日07:30 カテゴリLightweight Languages perl - Const released -- True Readonly 空前のXSブームにほだされたのか、気がついたら作ってました。 /lang/perl/Const/trunk - CodeRepos::Share - Trac @CPAN (coming soon) 一言で言うと、Readonlyを置き換えるモジュールです。 Readonlyをお使いなら、s/Readonly/Const/gで同じように動くはずです。 Readonlyはないすでだみあんなモジュールですが、実装にtieを用いているため低速です。 ところが、SVには、すでにREADONLY flagが用意されているのです。これを使わぬ手はありません。 実は、Perl 5.8以降では、Internals::SvREADONLY()とい

    perl - Const released -- True Readonly : 404 Blog Not Found
    zetamatta
    zetamatta 2008/06/29
    Readonly よりも速いモジュール「Const」を開発したでゴザルの巻。tie ではなく、、Internals::SvREADONLY()という内蔵機能を活用したらしい
  • 図解: Perl と Unicode 文字列 - daily dayflower

    id:tomi-ru さんが [http://e8y.net/mag/015-encode/:title] というとてもプラクティカルな [http://search.cpan.org/perldoc?Encode:title=Encode] 入門をお書きになったので,わたしも違う切り口で書いてみたくなりました。 いちおうの基礎(読み飛ばし可) 文字セット, キャラクタセット, 文字集合, 文字集合 - Wikipedia エンコーディング, 符号化方式, 文字符号化方式 - Wikipedia この2つは異なります。とくに知らなくても下記の文書を読むことはできますが,理解しているとためになります。くわしく知りたい人は自習してください。 文字セットの例 Unicode JIS X 0208 ひらがなとかカタカナとか漢字とか ASCII 文字 エンコーディングの例 UTF-8 ISO-202

    図解: Perl と Unicode 文字列 - daily dayflower
    zetamatta
    zetamatta 2008/06/28
    Unicodeを取り扱うために一連の手順を図やコードを使って説明
  • perl - use List::Util; # for production codes : 404 Blog Not Found

    2008年06月26日17:30 カテゴリLightweight Languages perl - use List::Util; # for production codes Perl Best Practices Damian Conway [邦訳:Perlベストプラクティス] うーん、これでもいいし、List処理というのはいざとなったら自分で再発明できてしかるべき技能ではあるのだけど、「公式の車輪」も紹介しておいてほしかった。 最大値と最小値を求める。 - サンプルコードによる Perl 入門 というわけで代わりに紹介。 "Perl Best Practices" P.170 Use the "non-builtin builtins" 「ビルトインされていないビルトイン関数」を使おう Perl 5.8 以降であればList::Utilが標準装備されているので、これのmax()が「標

    perl - use List::Util; # for production codes : 404 Blog Not Found
    zetamatta
    zetamatta 2008/06/27
    Perl 5.8 には標準装備されている List::Util の max() , min() は速いでゴザルの巻
  • perl - use warnings; # -w でなくて : 404 Blog Not Found

    2008年06月19日21:45 カテゴリLightweight Languages perl - use warnings; # -w でなくて 最近は、さすがにuse strict;されていない実践コードを目にすることもほとんどなくなってきたのだけど、まだ残っているのがuse warnings;利用。以下と併せて読んでいただけると幸いだ。 404 Blog Not Found:perl - use strict; # and be happy -w って何? warnings って何? まず、以下のプログラムを見てみよう。 #!/usr/local/bin/perl use strict; sub distance { my ( $a, $b ) = @_; return sqrt( $a**2 + $b**2 ); } print distance(@ARGV), "\n"; % p

    perl - use warnings; # -w でなくて : 404 Blog Not Found
    zetamatta
    zetamatta 2008/06/20
    use warnings とコマンドラインでの -w オプションとの違い。-w を使った時に一時的に無効にする方法も一応ある(local $^W = undef;)
  • 【ナイフ所持】アルファギークを警官10人以上が取り囲み、一時騒然・東京 - bogusnews

    秋葉原通り魔事件で刃物所持に対する警戒が強まるなか、アーミーナイフを所持していた男性を任意同行しようと10人以上の警官が取り囲む騒ぎが、15日午後、都内中央区の路上で起きた。ナイフの大きさが銃刀法の規制対象外だったことから男性は無罪放免となったが、市民のあいだで治安維持に協力しようとするモラルの低下しつつある嘆かわしい現状が、あらためて浮き彫りになったかっこうだ。 警視庁佃署によれば、騒ぎが起きたのはこの日午後1時すぎ。警ら中の巡査が中央区佃の高層マンション前でひげ面マッチョの怪しげな男を発見。呼び止めて職務質問したところ、所持品からスイスアーミーナイフが見つかったため銃刀法違反の疑いで任意同行を求めた。しかし、男性が 「これは仕事道具」 「大きさも銃刀法に違反しない」 などと主張。同行を拒否したため、一時は応援の警官が10人以上も駆けつけて押し問答の騒ぎとなった。 警官側は「どうしてPe

    【ナイフ所持】アルファギークを警官10人以上が取り囲み、一時騒然・東京 - bogusnews
    zetamatta
    zetamatta 2008/06/15
    警官曰く『どうしてPerlなんだ。今どきRubyだろ』 / bogusnews編集主幹は awk派だった!
  • Kansai.pm に行ってきたじょ - 御玉杓子スパイラル

    event, perl, kansai.pmYAPC でたしか宮川さんが「今日ここに来た人はもうPerlコミュニティの一員です. まだ参加してない人は各地の Perl Mongers に参加しましょう」って. だからってわけでもないけど.だからこそよりテンション強めて行ってきますたよ. Kansai.pm. いやはや楽すかったーっ. id:lapis25 さん.「about Perl 5.10」 5.10 はコワクナイヨPerl たんは13歳 5.10でてからもう半年以上の実績あるんだしぼちぼち使おうよ もし既存のシステムに乗り換えできない問題があっても早くのりかえて問題点は取った方がいいYO とにかく後方互換性を極力残したバージョンアップなんだょぅ 何が変わった? perldelta 読むのが一番 他にうれしい事いっぱいだよー say とかー. あと自分用メモ use feature q

    zetamatta
    zetamatta 2008/06/07
    Kansa.pm#9 のダイジェスト紹介
  • Kansai.pm第9回ミーティングに参加したよ - hashy1126's blog

    参加するのは3回目?で今回はスピーカーに挑戦しました。 プレゼンテーションツールを使ってのお話は学生以来で十数年ぶりでした。(当時はOHPだったな・・・) 発表資料は下記よりDLできます。 http://hashy.jp/slide/20080531kansaipm_usi.pdf ※一部内容をカットしています。そのシートのメモを記載してブログに書いていらっしゃる方は空気読んでカットしてただけると幸いです。 フォローすべき点は、このエントリを更新していきます。 うしのMSNメッセンジャーは、 yomiusi at underdone.net をコンタクトリストに追加してください。 人工無脳うさぎのMSNメッセンジャー対応が6月1日に復活しています。 yomiusa at hotmail.com です。(Net::MSN以外のライブラリを使ってるぽい・・・) IRCを使ってみたい方は、Und

    Kansai.pm第9回ミーティングに参加したよ - hashy1126's blog
    zetamatta
    zetamatta 2008/06/07
    Kansai.pm#9 で人工無脳に関するプレゼンをされた方の発表内容
  • Kansai.pm #9で発表してきました - はこべにっき ♨

    第9回のKansai.pm tech talkで発表してきました. 実用Mooseという題目でやるつもりでしたが,Mooseはまだまだ勉強することがおおくて,ぜんぜん実用的な話ができそうだったので,初めてのMooseという題目に変更して発表してきました. 資料をアップロードしましたので良ければ参考にしてください. 初めてのMoose 発表直前Macが死亡するなどちょっとしたトラブルに見舞われましたが,なんとか発表できてほっとしています.++.メタオブジェクトプロトコルに関するはなしはできなかったので,またの機会に発表できればヨイデスネ.

    Kansai.pm #9で発表してきました - はこべにっき ♨
    zetamatta
    zetamatta 2008/06/07
    Kansai.pm#9 での発表された、Perlの新オブジェクトインターフェイス Moose の入門者向けプレゼン原稿 「はじめての Moose」。分かりやすいですね。
  • ファイルハンドルをめぐる冒険(ただしマニア向け) - daily dayflower

    以下は Perl 5.8.8 のソースを元に記述しました。Perl 5.10 でもそう変わってはいないと思いますが,結構内部が変更されているので違うかもしれません。大まかには同じだと思います。 イントロダクション Perl でのファイルハンドルは内部的には [http://search.cpan.org/perldoc?IO::Handle:title=IO::Handle] オブジェクトとして保持されています。そのような記述は perl5004delta くらいでしか見つかりませんでした。ラクダにもなかったような。 Internal change: FileHandle class based on IO::* classes File handles are now stored internally as type IO::Handle. The FileHandle module

    ファイルハンドルをめぐる冒険(ただしマニア向け) - daily dayflower
    zetamatta
    zetamatta 2008/06/05
    FileHandle は古い記法 / open my $fh が最も速い / IO::Handle がファイルハンドルの正体で次に速い / オブジェクトインターフェイスを使うなら、普通に IO::Fileを使うべき
  • Perl 2008年のファイルオープン - てっく煮ブログ

    perl第1回 Perlの文法の基ITpro という記事の はてブコメントを見ていたら、Perl なすごい人達が文句言ってた。 otsune 2006年のhyuki Catalyst記事を載せるのもアレなのに2003年の記事を載せるのは無しだろ……open IN, ...のあたりは有害情報なので全力で見逃せ TAKESAKO ちょw→出典:日経Linux 2003年7月号 125ページより miyagawa 2008年にこの記事はねーよ、と思ったら2003年の記事をいまさら再掲か。なんでわざわざ古い記事を新しいものかのように出して混乱させる?問題があるというソースコードはこんなの。 open IN, '; えー! どこが問題あるのかさっぱり分からん!!!!!!調べてみた2008年流の Perl な書き方を調べるなら perl-users.jp。早速見つけた。oldtype と mode

    zetamatta
    zetamatta 2008/06/04
    Perl の近代的なファイルオープンについて。open my $fh, '<', 'filename' or die $!; や、Path::Classモジュールの file('filename')->open('r') など
  • モダンなPerl入門のメールの送信スクリプトのモダンさ具合が分からない

    モダンなPerl入門のメールの送信スクリプトのモダンさ具合が分からない スポンサードリンク Tweet メールの送信 - モダンなPerl入門 - モダンなPerl入門 [perl-users.jp] という記事で、モダンなメールの送信のコードがありました。 use strict; use warnings; use utf8; use Encode; use Email::MIME; use Email::MIME::Creator; use Email::Send; # メールオブジェクトをつくる my $mail = Email::MIME->create( header => [ From => 'from@example.com', To => 'to@example.com', Subject => Encode::encode('MIME-Header-ISO_2022_JP

    zetamatta
    zetamatta 2008/05/31
    両方知らんかったけど、メモメモ(今まで Mail::Sendmail を使ってた)
  • Perl-users.jp - 日本のPerlユーザのためのハブサイト

    Perl Mongers Perl Mongers とは、日各地に存在する、Perl ユーザーのコミュニティのことです。各種イベントが行われていますので、是非参加してみましょう。 Shibuya.pm Fukuoka.pm Kansai.pm (@kansaipm) Yokohama.pm (@yokohamapm) Hokkaido.pm (@hokkaidopm) Nagoya.pm (@nagoyapm) Kushiro.pm (@kushiropm) Kyoto.pm (@kyotopm) Kamakura.pm Niigata.pm (@niigatapm) Sendai.pm (@sendaipm) Tokyo.pm Hachioji.pm (@hachiojipm) Chiba.pm (@chibapm) Yomitan.pm (@yomitanpm) Machida.pm

    zetamatta
    zetamatta 2008/05/24
    待望のポータルサイトだと思う…が、ドメイン名のインパクトが小さいなぁ。ずばり、perl.jp とか perl.gr.jp とかを GET できたらよかったのに
  • 今日のCPANモジュール(跡地) 目次

    Redirecting… Click here if you are not redirected.

    zetamatta
    zetamatta 2008/05/22
    正直、こういう解説記事が欲しかった!
  • Spreadsheet::WriteExcel = Perl で Excel 出力

    業務系アプリを書いていると、csv 出力ぢゃなくて、Excel データそのものを出力できたらなぁ・・・と思うことがあると思います。そこで、 PerlExcel データを生成する方法と日語を扱うときの注意点をまとめてみました。 環境構築編/必要な Perl モジュールをインストールします。 下記コマンドを root 権限のあるユーザで実行してください。 perl -MCPAN -e 'install Spreadsheet::WriteExcel' perl -MCPAN -e 'install Spreadsheet::ParseExcel' perl -MCPAN -e 'install Unicode::String' 日語を含む Excel データの生成例 #!/usr/bin/perl -w use strict; use Jcode; use Unicode::Stri

    zetamatta
    zetamatta 2008/05/17
    OLEを使わずに Excel ファイルを出力している?ようだ。
  • wifkyを散々いじった結果 - 色々書くとこ(仮)

    Perlって難しいね」という結論に達しました。

    wifkyを散々いじった結果 - 色々書くとこ(仮)
    zetamatta
    zetamatta 2008/05/13
    曰く『「Perlって難しいね」という結論に達しました。』――ごめんなさい
  • perl - stat()、-X 演算子、そして _ ファイルハンドル : 404 Blog Not Found

    2008年05月12日13:30 カテゴリLightweight Languages翻訳/紹介 perl - stat()、-X 演算子、そして _ ファイルハンドル こういった場合のTipです。 ファイル演算子「 -s 」で、ファイルサイズを取得する。 - サンプルコードによる Perl 入門 if( -f $file ){ my $file_size = -s $file; print "$file のファイルサイズは、$file_size バイトです。\n\n"; } else{ print "$file は、存在しませんでした。\n\n"; } _ ファイルハンドル 実は、-X演算子は、その演算子に期待された結果を返すだけではなく、その他のファイル情報を特殊ファイルハンドル_にセットします。これを使うと、上のコードは if( -f $file ){ my $file_size =

    perl - stat()、-X 演算子、そして _ ファイルハンドル : 404 Blog Not Found
    zetamatta
    zetamatta 2008/05/12
    ファイルハンドル _ の使い方
  • perl - @_ は参照である : 404 Blog Not Found

    2008年05月12日18:15 カテゴリLightweight Languages perl - @_ は参照である これでも正解ではありますが、perlの場合もっと簡単な方法があります。 各言語間の参照と値渡し - @author pyridoxin sub swap { my ($x , $y) = @_; $$temp = $$y; $$y = $$x; $$x = $$temp } [codepad] sub swap { my $tmp = $_[0]; $_[0] = $_[1]; $_[1] = $tmp; } my ($a, $b) = (1, 2); print "\$a = $a, \$b = $b\n"; swap($a, $b); print "\$a = $a, \$b = $b\n"; これは、Referenceが存在しなかったPerl 4以前からの仕様です。

    perl - @_ は参照である : 404 Blog Not Found
    zetamatta
    zetamatta 2008/05/12
    foreach や map の $_ と共にsubの@_ は参照で変更すると呼び出し元の値が変わる。危険だが、要は使いよう。