タグ

programmingとPerlに関するasiamothのブックマーク (26)

  • リストと配列(Array)はPerlでは別物

    songmu @songmu @hisaichi5518 @shiba_yu36 リストと配列(Array)はPerlでは別物だよ。リストはlisp由来。値の返し方のコンテキストがスカラとリストがある。ハッシュだって、値を返させるとリストを返すでしょう。 2012-02-25 20:36:33 songmu @songmu @hisaichi5518 @shiba_yu36 my %hash;$hash{qw/1 2 3/} = 'hoge';say $hash{qw/1 2 3/};say Dumper \%hash; とかやると驚きの結果が。 2012-02-25 20:39:13

    リストと配列(Array)はPerlでは別物
    asiamoth
    asiamoth 2012/02/26
    それ perlfaq4 http://j.mp/zhHSSt に書いてあるよ!
  • perl - @_をコピーするコスト : 404 Blog Not Found

    2011年07月17日22:00 カテゴリLightweight LanguagesTips perl - @_をコピーするコスト Perl Best Practices Damian Conway [邦訳:Perlベストプラクティス] これ、やけに差がないと思いきや… Perlで重複した要素をユニークにする - ichirin2501の日記 ふと、どのコードが速いのか気になったのでベンチマークを取ってみました。 id:ichirin2501のコードのどこに問題があるかは、以下のベンチマークを走らせてみればわかります。 #!/usr/bin/env perl use 5.012; use Benchmark qw/:all/; sub uniq_copy { my @array = @_; my %hash; @hash{@array} = (); return keys %hash; }

    perl - @_をコピーするコスト : 404 Blog Not Found
    asiamoth
    asiamoth 2012/02/05
    ベンチマークの上位から試してみると、lmu - foreach までは順番が破壊されます! たとえばコマンドのヒストリィ・ファイルの重複行を削りたい場合は、grep が一番だと思う。→自分の勘違いでした……。
  • Re: Perlで、ある要素が配列(リスト)の中に存在するかを調べる方法 - tokuhirom's blog

    Re: Perlで、ある要素が配列(リスト)の中に存在するかを調べる方法 http://dqn.sakusakutto.jp/2011/08/perl_10.html もし大学野球の女子マネージャーがPHPのin_arrayをPerlで実装したら。 use 5.12.0; my @list = qw(apple mango orange); my $item = 'orange'; say $item ~~ \@list ? "yes" : "no"; # 実行結果:'yes' スマートマッチ演算子で簡単に配列のなかに要素がふくまれるかどうかを判定することができます(速度がどうかはともかくとして)。 Published: 2011-08-07(Sun) 23:25

    asiamoth
    asiamoth 2011/08/09
    スマートマッチ演算子! そういうのもあるのか! http://bit.ly/oIrtnW Perl には知らない機能(記号)が まだまだあるなー。
  • Another HTML-lintのHTML5対応を試みた過程の覚書 - 厳選、メタ検索・メタディレクトリ付属日記

    未分類Another HTML-lint Downloadからファイルを落として、パソコンにローカルサーバーを立ち上げて利用させていただいているのだが。このたび、HTML5対応を試みた過程の覚書。 「common.rul」ファイルに以下を追加。 'html5' => { doctype => 'html$', name => 'html5|xhtml5', guide => 'HTML5', abbr => 'HTML5', group => 'HTML5', order => ++$doctypescnt, version => 5, scheme => 'urn', charref => 1114112 }, versionを「5」にするとXHTMLとして判定される。HTMLとして判定したい場合、あるいは両方でそれなりに支障なく判定したい場合は、「htmllint.pm」を直接いじる必

    asiamoth
    asiamoth 2011/07/10
    「Another HTML-lint で 100 点を取ること」が「HTML を書くこと」の目的になっている(本末転倒)自分としては、早く HTML5 にも対応して欲しい!
  • perl - use CGI; use Encode; # 非英語Webプログラミング3原則 : 404 Blog Not Found

    2009年06月23日15:30 カテゴリLightweight Languages perl - use CGI; use Encode; # 非英語Webプログラミング3原則 これは、実はPerlに限らず未だに事実だったりするのですが.... Perl でフォームデータから UTF-8語文字をとりだす方法 (プログラミングの小石・大石) UTF-8 のフォームによっておくられたデータのなかから日語文字をとりだすことは,日Perl CGI プログラマならたいてい必要になることである. ところが,その方法は意外に確立されていないようにみえる. しかし、元発言の方法は先祖帰りすぎるので。 Perlプログラマー以外にも、Webプログラマーであれば有用なentryです。 PerlでWebプログラミングする場合の三原則 QueryはCGIモジュールで処理する 文字コードはEncode

    perl - use CGI; use Encode; # 非英語Webプログラミング3原則 : 404 Blog Not Found
    asiamoth
    asiamoth 2009/06/26
    基本中の基本を、弾さんクラスの方が書かなければならないとは……。“大事なことなので二度言ってみました。”どころか、今後も 100 万回書くことになりそう(その前に本にまとめたりして)。
  • perl - open my $fh, "comand |"; # はモダンじゃない : 404 Blog Not Found

    2009年02月10日01:00 カテゴリLightweight Languages perl - open my $fh, "comand |"; # はモダンじゃない モダンPerl入門 牧大輔 「モダンPerl入門」発売記念ということで、同書を補足するentryを。 同書でちょっと残念だったのが、[5.2 外部コマンドの実行]。あまりモダンではないのだ。 P. 141 system("/sbin/wget", "http://example.com"); これはいいのだが、以下がちょっとまずい。 my $output = `/bin/ls tmp`; open(my $fh, '| cat -v'); これ、何がまずいか、というと、コマンド実行の際に/bin/shを使ってしまうのだ。そのおかげでcommand < from > to 2&>1のようなリダイレクトも使えるなどの利点もあ

    perl - open my $fh, "comand |"; # はモダンじゃない : 404 Blog Not Found
    asiamoth
    asiamoth 2009/02/11
    やはり、Perl は記号の使い方を何個も覚えなければならないのか……。/ コメント欄がカオス。4 番目の指摘の指摘も的外れ。お前が(ry
  • Perl 最速伝説k - Yokohama.pm Teck Talk #1

    と言う事で、連結する変数が多くなると途中から join が最速になる。"$a$b$c" のような形式は最適化されて $a . $b . $c となるようだがやはり数に関わらず最も遅いので使わない。 続・スカラーの文字連結 http://www.ibm.com/developerworks/jp/linux/library/l-optperl/ より 他にも色々拡張してみた。 #!/usr/bin/perl use strict; use warnings; use Benchmark qw(:all); my $limit = 100; my $sets = { concat1 => sub { my $string = 'abcdefghijklmnopqrstuvwxyz'; my $concat = ''; for (1..$limit) { $concat .= $string;

    asiamoth
    asiamoth 2008/08/28
    少しでも疑問を持ったらBenchmarkとB::Deparse!
  • perl - 暗黙的な参照 # @_ と $_ : 404 Blog Not Found

    2008年07月06日19:30 カテゴリLightweight Languages perl - 暗黙的な参照 # @_ と $_ Good Question! @_の要素の$_[0],$_[1]等は、格納するべきアドレスが可変! - 燈明日記 なぜ、こんな仕様にしたのだろうか・・・。 Good Question だけあって、Good Reasons もきちんとあります。 @_と$_の秘密 まず、事実を再確認しておきましょう。 Perlにおいて、引数を格納する配列@_は、常に参照(reference)です。値(value)ではありません。 これが何を意味するかというと、@_への書き込みが、呼び出し元への書き込みとなるということです。 実際に様子を見てみましょう。 [Run via CodePad] sub inc { ++$_[0] } my $a = 0; print $a, "\n"

    perl - 暗黙的な参照 # @_ と $_ : 404 Blog Not Found
    asiamoth
    asiamoth 2008/07/08
    そうそう、毎回コピーするコードばかり見ているから忘れがちだけど、@_は参照なんだよな。なるほどー。
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    asiamoth
    asiamoth 2008/07/05
    「初心者」がPlaggerのコードを読む、というところまで行くのに時間が掛かりそうだけど、じつは早道だったりする。/ コメント欄に頭の温かい人が来て、yappoさんが生温かく返しているのが萌え。
  • 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
    asiamoth
    asiamoth 2008/07/03
    デフォルト値の指定方法。ハッシュのほうは初めて知ったので、勉強になった。
  • Perlが初めての人に教えてあげたいちょっとしたこと - Unknown::Programming

    タイトルは釣りです。 実際のタイトルは「Perlのオブジェクト指向がムズカシイだって?んなバカな。だったらPHPで再現してやんよ!」でございます。 ヘイヘイヘイ。そこの君。Perlのオブジェクト指向が難しいだなんていったい誰が言ったんだい? Perlのオブジェクト指向ほど、シンプル且つ柔軟なものはないよ! 単なるパッケージ(名前空間)とリファレンス(データ)をblessという関数で紐付けただけのもなんだから。 第一引数に必ず$selfが来るっていうのも結局の話たんなる関数呼び出しとなんら変わらないのだから。 package Foo; sub new { my $class = shift; return bless { @_ } , ref $class || $class; } sub plus { my $self = shift; my $int = shift; return $s

    Perlが初めての人に教えてあげたいちょっとしたこと - Unknown::Programming
    asiamoth
    asiamoth 2008/06/18
    PerlのオブジェクトシステムをPHPで実装!
  • ファイルハンドルをめぐる冒険(ただしマニア向け) - 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
    asiamoth
    asiamoth 2008/06/06
    マニアックで面白い!/ Effective Perlに書いてある、iorefはどうなんだろう?
  • perl - 勝手に添削 - Perl入門#1@ITPro : 404 Blog Not Found

    2008年06月03日06:00 カテゴリLightweight Languages perl - 勝手に添削 - Perl入門#1@ITPro さすがに出典が日経Linux 2003年7月号だけあって、少しトウがたってはいるけど、現在でもわずかな修正で使える記事。さすが川合さんといったところか。 第1回 Perlの文法の基ITpro というわけで、この記事の「現代化」Patchを。 全般 use strict;だけではなくuse warnings;も加えましょう。 さらに,調べても分からないことがあれば,メーリング・リストやユーザー・グループ*2に質問してみてもよいでしょう。 blogに書くのもアリです。あと私は使っていないけどIRCとか。 ビルトイン関数は()でくくらない方が視認性が上がります。 before: chomp($sLine); after: chomp $sLine;

    perl - 勝手に添削 - Perl入門#1@ITPro : 404 Blog Not Found
    asiamoth
    asiamoth 2008/06/04
    記事の古さに文句を言うのではなく、「現代語訳」を示す、という姿勢を見習いたい(見習って欲しい)。
  • perl-mongers.org

    This domain may be for sale!

    asiamoth
    asiamoth 2008/05/27
    FindBin::libsが便利らしい。
  • Perlにコーディング規約は存在しない - みずぴー日記

    BEST SOFTWARE WRITINGによるとPerlのコーディング規約というものは存在していないらしい。 たしかにGoogleで検索しても引っかからない。google:Perl コーディング規約

    Perlにコーディング規約は存在しない - みずぴー日記
    asiamoth
    asiamoth 2008/05/09
    “Perlのコーディング規約というものは存在していない”。なるほどー、Perlらしいね。
  • PHPの方が軽くて速いは本当?

    PerlよりPHPの方が軽くて速いは当? 川合孝典(2002/3/12) 元々メーリングリストにも流してWikiで公開していたものなんですが、Wikiのサイトが停止したこともあり、こちらに移植して編集しました。バージョンが多少古い目のものが多くなっていますが、このベンチを行ったときには、それほど古くないバージョンだったはずなんですけどねぇ。 結論から先にいましょう。私としてはPHPは立ち上がりは速いけどPerlだって負けてないし、処理そのものはPerlのほうが速いよんということだと思っています。ついでに憎まれ口を叩くと「PHPが比較している相手はPerl4なのでは?」と思っています。「CGIとPerlはきちんと区別してね」とか。「JavaPerlよりも比較にならないほど速い?」の計算問題のあたりも合わせてご覧ください。あわせてPerl/DBIの次のステップをご覧いただくと参考になるかも

    asiamoth
    asiamoth 2008/01/22
    タメになる記事。mod_phpとmod_perlを比較しないと意味無いよな。でも、レンタルサーバ者にはキツイ。
  • perl - 文字列ばらしはsplit //, $strで : 404 Blog Not Found

    2007年11月27日13:30 カテゴリLightweight Languages perl - 文字列ばらしはsplit //, $strで うーん、ここがあきまへん。 [を] 転置インデックスによる検索システムを作ってみよう! 9 my @char = ($c =~ /([\x00-\x7f]|[\xC0-\xDF][\x80-\xBF]| 10 [\xE0-\xEF][\x80-\xBF]{2}| 11 [\xF0-\xF7][\x80-\xBF]{3})/gsx); 文字列をばらして(utf8の)文字一つ一つの配列にするには、バイト列に正規表現をかますのではなく、utf8文字列にしてからそれにsplit //をかますのが一番です。単にわかりやすいだけではなく、その方がずっと高速です。以下、Benchmark。 #!/usr/local/bin/perl use strict; u

    perl - 文字列ばらしはsplit //, $strで : 404 Blog Not Found
    asiamoth
    asiamoth 2007/11/27
    @chars = split //, $str;”という慣用句があるのか。覚えておこう。
  • Perl初心者をどうしたらいいのか問題 - TokuLog 改め だまってコードを書けよハゲ

    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

    asiamoth
    asiamoth 2007/11/11
    言わんとすることはよくわかるけど、日本語覚えたての外国人に、(たとえば)「川端康成 嫁」って言うみたいな。/「読めない」から「初心者」なのでは。
  • 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
    asiamoth
    asiamoth 2007/10/23
    これはよくまとまっていてわかりやすい!/MFPMも見てみよう。
  • holidays-l開発ブログ - Perl::Criticでコーディングスタイルを統一

    Perl::Critic - Critique Perl source code for best-practices. - metacpan.orgをコーディングスタイルを統一するために使っています。 (実際には字面としてのコーディングスタイル(コードレイアウト?)はPerl::Tidy - metacpan.orgが担当しているわけですけども、ここでは「use strictを入れる」「PODを付ける」なども含めてコーディングスタイルと言ってます) コーディングスタイルに唯一絶対的に正しいなんてものはないわけで(だから宗教論争にもなるわけで)、機械的に統一することで揉め事はなくなります。 しかしその時に.perlcriticrcなんかを使ってコーディングスタイルをデフォルトから変更してしまうと元も子もありません。 .perlcriticrcに何を設定するかで揉めますし、例えその時に揉めな

    holidays-l開発ブログ - Perl::Criticでコーディングスタイルを統一
    asiamoth
    asiamoth 2007/09/30
    Perl::CriticとPerl::Tidyは必携みたいだな。