タグ

perlとscriptingに関するyouzのブックマーク (31)

  • よいサブルーチンを作成するための心がけ。★★★ - サンプルコードによる Perl 入門

    Perl › サブルーチン › here サブルーチン作成に関するわたしの考えを殴り書きしました。 見出し 引数と戻り値について理解する。 小さなサブルーチンを作成する。 サブルーチンに柔軟性を持たせる。 呼び出しの階層を浅く保つ。 機能を実現するサブルーチンを作成する。 ユーザーを意識する。 将来を楽にすることを考える。 完全な抽象化は求めない。 1. 引数と戻り値について理解する サブルーチンを理解するためには、引数の受け取り方と、戻り値の返却のし方を覚えれば十分です。なぜなら、引数を受け取ってから、戻り値を返却をするまでは、今まで学習したプログラミングとなんら変わることがないからです。引数と戻り値の扱いを、覚えたら、すぐに実践に移りましょう。 サブルーチン作成で、難しいのは、以下の4点です。 何をサブルーチンにするか どのような名前をつけるか 引数を何にするか 戻り値を何にするか 正

    よいサブルーチンを作成するための心がけ。★★★ - サンプルコードによる Perl 入門
  • 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

  • perl - 配列をハッシュキーとして扱う : 404 Blog Not Found

    2007年10月24日20:00 カテゴリLightweight Languages perl - 配列をハッシュキーとして扱う コメント欄にも「教科書解」がなかったので。 Perl勉強中 - YoshioriのBlog #!/usr/bin/perl use strict; use warnings; my @array = qw/1 2 3/; my @array2 = qw/1 2 3/; my %hash; $hash{@array} = 'foo'; # ちょっと変更 print $hash{ @array2 }; # foo みたいなこと出来ないのかな? 教科書解は、こちら。 $hash{ join($;, @array) } = 'foo'; これは、 $hash{1,2,3} = 'foo'; $hash{qw/1 2 3/} = 'foo'; という、配列リテラルをキーに

    perl - 配列をハッシュキーとして扱う : 404 Blog Not Found
  • 404 Blog Not Found:perl - There's more than one way to die

    2008年05月10日15:00 カテゴリLightweight Languages perl - There's more than one way to die いよいよ来週はYAPC::Asia::2008ですが、Hotel DANは日から開業。我が家では日から20日までが「YAPC旬間」です。 というわけで、その間は少なくとも一つはperlがらみのentryにしていく所存です。 で、第一回はいきなりdieの話題です。 開発日誌 pp-perl: Perlのエラー処理プログラムを停止して、メッセージ(LIST)をSTRERRに出力します。 間違っていませんが正しいとは言えません。 die = throw die()とは何か? まずは、以下のコードをご覧下さい。 [Run via codepad] eval { my $zero = 0; my $dead = 1 / $zero;

    404 Blog Not Found:perl - There's more than one way to die
  • 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
  • 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
  • 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

  • http://miau.s9.xrea.com/blog/index.php?itemid=500

    youz
    youz 2008/10/01
    萌ディタ用Perl拡張子クラスとクラス作成時のtips
  • 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン

    2007年10月30日20:00 カテゴリLightweight Languages perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン 久々の勝手に添削。今回はこちら。 40行で作るPerl用テンプレートエンジン 正規表現がらみなので、Perl以外でも有用。 添削箇所は、こちら。 40行で作るPerl用テンプレートエンジン sub convert { return unless defined(my $str = shift); $str =~ s{&amp;}{&amp;}gso; $str =~ s{<}{&lt;}gso; $str =~ s{>}{&gt;}gso; $str =~ s{\"}{&quot;}gso; $str; } これの最初のsubstitutionが&amp;ではなくて&ではないかというのはさておき、こういった場合、何度も正規表現をかけ

    404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン
  • Symbolic quine - 兼雑記

    Perl で記号だけ (ASCII が 32-126 で ~/\W/ なものと改行のみ) で Quine を書く努力をしていました。なんか最初は 300Byte 近くだったんだけどゴルフしてるうちに 103Byte まで。 ($;=<<'' #&-!!*!%>{(\$;=<<'' $; )=~(' _ ^-^,'^'"`[;[?@(\$;^\$^)})')+ )=~(' _ ^-^,'^'"`[;[?@($;^$^)})') なんか色々やってるうちに Ruby の最短 に似てきたのでした。 追記: せっかくなので顔文字を埋めてみた。顔文字埋めてる場合じゃなくてまだ縮んだ。 何やってるかっていうとなんか ;''=~ から先が要は eval($;^$^) というコードを実行していて、 $;^$^ は xxxa+print"\$;=<<'_' ..." とかいう感じの自分自身を吐き出すコードにな

    Symbolic quine - 兼雑記
  • perl - use Carp; # warn() と die() だけじゃなくて : 404 Blog Not Found

    2008年06月30日04:00 カテゴリLightweight LanguagesTips perl - use Carp; # warn() と die() だけじゃなくて 以下のエラー処理の方法にちょっと口を挟みたくなったので。 エラー処理を行う。 - サンプルコードによる Perl 入門 warn() vs. die() まず、warn()の使い方。エラーに対して使ってはいけません。warnはその名の通り、あくまでもエラーではなく警告です。エラーの際にはdie()を使わなければなりません。 警告とエラーの違いですが、警告は「続けて処理してもいいけど、これはあなたの意図ではないかもしれません」という場合、エラーは「このままでは処理を続けられません」という場合です。 たとえばperlの場合、抜けた引数はundefなので、数値としては0、文字列としては''として解釈されます。それらをデフ

    perl - use Carp; # warn() と die() だけじゃなくて : 404 Blog Not Found
  • Programming is Hard, Let's Go Scripting...

    Programming is Hard, Let's Go Scripting... Dec 6, 2007 by Larry Wall I think, to most people, scripting is a lot like obscenity. I can’t define it, but I’ll know it when I see it. Here are some common memes floating around: Simple language "Everything is a string" Rapid prototyping Glue language Process control Compact/concise Worse-is-better Domain specific "Batteries included" …I don’t see any r

    Programming is Hard, Let's Go Scripting...
    youz
    youz 2008/10/01
    Larry Wallのスクリプト言語についてのコラム
  • 更新履歴兼雑記 - Perl記号ゴルフとAcme::EyeDrops

    ここからが題です。 Perl は頭がおかしいです。すごすぎる。この感動を伝えたいと思います。まず Perl の基からです。 Hello world! を書きましょう。 ''=~('(?{'.('[[).[|`%,,/`[/[@$'^'+)@@/^(@@@@@,@),@').'! "})')えーと。このくらいわかりますよね。これは Hello world という一番簡単なプログラムなのでわからない人はちょっとプログラムの才能が無いです。嘘ですが。 Perl では記号だけでは出力もできないかな、というような話をしていたところ、 Acme::EyeDrops の出力は記号だけで出力してるぞ、ということでした。これは見たことがあったのですが、確かに今見ると記号だけです。で、これの出力の意味を理解してたんですが、なんともすごいものでした。書いてから後で Perl ヤロウどものことだから既に常識だ

    更新履歴兼雑記 - Perl記号ゴルフとAcme::EyeDrops
  • Journal of miyagawa (1653) - ActiveSupport equivalent to Perl

    UPDATE: The module was originally written using constant overloading, but it is a dangerous and gross hack, so I changed that to use autobox framework instead (wondering why I didn't try that at first!). I updated the post accordingly.Rails has ActiveSupport, something to add funky methods to Ruby core object, to do fancy things like 2.months.ago to get Time duration object etc.I found it pretty i

  • 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

  • [Perl] my と local と our の違いについて - 竹迫の近況報告

    404 Blog Not Found:perl - myとourとscopeと みんな難しく考えすぎです。 (例外については後で考えることにして)とりあえず以下の基をおさえておけば混乱することはないと思います。 ■ our 宣言について our はグローバル変数をスマートに使用するための宣言です。our は use vars と等価と考えてください。 our $var; は use vars qw($var); と等価。 our $var = 1; は use vars qw($var); $var = 1; と同じ動きをするもの、と覚えておけばOKです。それ以上の違いは基的にないと考えて構いません。 ひとつ実用上の違いがあるとすれば、our は Perl 5.6 以降の built-in なのに対して、use vars は vars.pmPerlスクリプトで実装されています。し

    [Perl] my と local と our の違いについて - 竹迫の近況報告
  • CPAN - CPANサイトからのperlモジュールの問い合わせ、ダウンロード、構築を行う

    CPANモジュール v.1.58 by Hippo2000(2000/12/19) CPAN.pmなのです。 腰が抜けるほど、モジュールのインストールが簡単になるモジュールなのです。 作者はAndreas Koenigさんです。メールで了解をいただきました。 なお内容等が間違っていたら修正します。ご連絡ください。 変更履歴: Kentaro Shirakataさんからの指摘を受けて誤字を修正しました。(2002/2/1) 目次 名前 概要 説明 対話モード CPAN::Shell autobundle 再コンパイル 4つのCPAN::*クラス: Author, Bundle, Module, Distribution プログラマ・インターフェース 4つのクラスでのメソッド キャッシュ・マネージャ(Cache Manager) Bundles 必要条件 パッケージの検索とVE

  • 0行で作るPerl用テンプレートエンジン : ひろ式めもちょう

    60行で作るPHP用テンプレートエンジン http://anond.hatelabo.jp/20071030034313 40行で作るPerl用テンプレートエンジン http://anond.hatelabo.jp/20071030153111 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン http://blog.livedoor.jp/dankogai/archives/50940023.html 触発されて表題のPerl用モジュールを作ってみました。 特徴: ・モジュールが小さい。わずか0行 ・高機能。 変数の出力はもちろん、Perlそのままの文字列演算、 ループや条件分岐に対応します ・拡張が自由 お好みのサブルーチンを追加して機能を拡張できます とても便利だと思うので、ぼくのスーパーハッキングテクニックを使ってPer

    0行で作るPerl用テンプレートエンジン : ひろ式めもちょう
  • なんでもquine : 404 Blog Not Found

    2006年04月08日17:07 カテゴリArt書評/画評/品評 なんでもquine とっても自己言及したくなったのでTB. Gödel, Escher, Bach Douglas R. Hofstadter [邦訳: ゲーデル、エッシャー、バッハ] rubyco(るびこ)の日記 - 自己言及とても眠いので自己言及プログラムを書きました。以下の一行をPerl Scriptに入れると、どんなものでも自己言及プログラム = quineになります。 open ME, $0 and print <ME>; こうしてもOK. print <ME> if open ME, $0; さらに暗黒面に進みたい人は、これも。 open 0 and print <0>; これが気に入った人はAcme::Bleachも気に入ることでしょう。 もちろん、Rubyだって出来ます。 File.open($0).read

    なんでもquine : 404 Blog Not Found
  • Perl のリスト操作を Ruby 風に - naoyaのはてなダイアリー

    Perl の言語組み込みのリスト操作は関数形式で、push(@array, 1, 2) のような記述になります。一つのリストに対して複数の操作をしたい場合などは、関数呼び出しを複数行にわたって書いていくことになり、少々面倒です。しかし Perl は、Perl のリスト実装である配列のリファレンスに bless してメソッドを定義したクラスを作ることができます。この独自に定義したクラスにプリミティブな操作を加えていって、Ruby のように連続したメソッドの呼び出しによるリスト操作を実現することが可能です。 ここでは List::RubyLike という配列クラスを作成します。まずは手始めに配列に bless して、size() メソッドが呼び出せるようにします。以下のようになります。 package List::RubyLike; use strict; use warnings; sub

    Perl のリスト操作を Ruby 風に - naoyaのはてなダイアリー