タグ

Perlに関するtakata3のブックマーク (79)

  • perl でファイルの内容を一度に読み込む

  • わかりにくいのpack,unpack関数を実際に試してみた

    Perlにはpack関数、unpack関数というのがあって、プログラムの基書にも載っていたりはするのだが、あの解説を読んでもさっぱりわからないのでちょっと試してみることにした。 pack関数、unpack関数の意味不明な解説の例 http://www.tohoho-web.com/wwwperl2.htm#pack 別にこのサイトが悪いわけではなく、 どれ読んでもこんな意味不明の解説しか書かれていない。 今回必要な項目をちょっと抜粋してみる。 pack(template, list) バイナリデータを生成する。templateでlistがどんな形式のデータなのか指定する。 後ろに数値を付けるとその個数分、アスタリスクを付けるとlistの最後までバイナリデータに変換する。 unpack(template, expr) バイナリデータを解釈する templateの例 c  符号付き1バイト数

  • DBIx::Class::Manual::Joining - DBIx::ClassでテーブルをJOINするためのマニュアル

    名前 説明 結合とは何か 結合とリレーションシップを定義する 結合を使用する 複雑な結合など 複数のリレーションシップをまたぐ テーブルのエイリアス 自己結合を行う 原文へのリンク 翻訳者 名前 DBIx::Class::Manual::Joining - DBIx::Classでテーブルを結合するためのマニュアル 説明 このドキュメントは、DBIx::Classで結合を大々的に使用して(又は使用せずとも)、通常のSQLDBIx::Classベースの問い合わせへ変換する際の助けになるでしょう。 結合とは何か ここまで来たものの、結合の何たるかが実際まだよく分からない、という場合は、ここの代わりにDBIx::Class::Manual::Introを読むのも良いかもしれません。結合の何たるかを心得ている場合は、このパートは読み飛ばしてください… ともあれ、ご説明しましょう。あなたが(非)常

  • DBIx::Class::Manual::Cookbook - 様々なレシピ

    検索 検索結果のページ分け 問い合わせに対して大量の結果が返されることが予想される時は、DBIx::Classに対して結果セットをページ分け(一度に少しずつ取得)するよう要求することができます: my $rs = $schema->resultset('Artist')->search( undef, { page => 1, # 取得したいページ番号(デフォルトは1) rows => 10, # ページ毎の件数 }, ); return $rs->all(); # 1ページ目を全て取得する page属性は、検索において必ずしも指定する必要はありません: my $rs = $schema->resultset('Artist')->search( undef, { rows => 10, } ); return $rs->page(1); # 最初の10レコードを含むDBIx::Class

  • Catalyst の Controller の Attribute について勉強した - @kyanny's blog

    Catalyst::Manual::Cookbook - Cooking with Catalyst - metacpan.org :Path :Args(0) とか :Local とか、以前マニュアルを読んだけど忘れちゃったのでまた読んだ。 :Path は sub handler :Path('hoge') {} とかやると、 /hoge とかにアクセスしたときに呼ばれる。コントローラクラスにはやすメソッドを、実際外部からアクセスさせる URL のパスと違うものにできますよ、ということか。 Sledge でいうと Sledge::Dispatcher::Properties とかに相当するのかな。ヘルパーで作られる sub index :Path :Args(0) で引数なしなのはなんでそうなってるのかよくわからず。 index は default や end と同じで特殊なものらしいか

    Catalyst の Controller の Attribute について勉強した - @kyanny's blog
  • Catalyst::Plugin::ConfigLoaderでconfigの切り替えを行う - 日向夏特殊応援部隊

    はじめに Catalyst::Plugin::ConfigLoaderを使うと異なる環境の為の設定を環境変数のみで制御出来ます。 下準備 ちょっと癖物なのが下記のように設定しなきゃいけないって事です。 package MyApp; use Catalyst qw/ConfigLoader/; __PACKAGE__->config( file => __PACKAGE__->path_to(conf) ); で実際にconfディレクトリに下記のようにファイルを作ります。 $ ls conf/ myapp.json myapp_local.json myapp_service.jsonこうして例えば、 $ cat conf/myapp.json { name: 'MyApp', foo: 'foo' } $ cat conf/myapp_local.json { foo: 'bar', ba

    Catalyst::Plugin::ConfigLoaderでconfigの切り替えを行う - 日向夏特殊応援部隊
  • Perlワンライナー覚書 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Perlワンライナー覚書 - Qiita
  • 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note

    日付型の変換処理 Date/Timestamp変換のまとめ - Yuta.Kikuchiの日記 10言語のプログラミング言語に対してそこそこの知識を保有している@yutakikucです。いろんなプログラミング言語を使用していると文法を覚えるのは大変ですよね。PHP書いている途中からJavaScriptの文法を誤って書き始めたり... それぞれの言語の文法の違いを事細かく覚える事は無理に近いです。今日はそんな各種言語仕様の記述で難解なDateTime/TimeStampについて紹介したいと思います。扱うのはWeb系のメジャープログラミング言語のSQL/C++/Java/JavaScript/Perl/PHP/Python/Rubyになります。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと

    誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note
  • 【2016年度版】このPerlハマりどころがすごい!100連発 - Hatena Developer Blog

    はじめに autovivificationを避ける myと後置ifを同時に使ってはならない return;で返る値は空のリスト 正規表現によるバリデーションでは\Aと\zを使おう '0' は偽で評価される each は中断した時、中断した時点の状態が残り続ける おわりに はじめに こんにちは。アプリケーションエンジニアの id:t_kyt です。 春です。Perlを始めるにはいい季節ですね。Perl始めていますか? どの言語にもハマりどころというものがありますがPerlも例外ではありません。というわけで今回はPerlを始めた人がハマりがちなポイントを幾つか紹介したいと思います。 この記事ははてなの教科書程度の知識を前提としています。またモジュールに依存しない部分に絞りました。 github.com autovivificationを避ける autovivificationとはundefの入

    【2016年度版】このPerlハマりどころがすごい!100連発 - Hatena Developer Blog
  • Defined-or演算子「//」 - Perl入門ゼミ

    Perl › 演算子 › here Perl5.10からは、とても便利なDefined-or演算子「//」が導入されました。スラッシュが二つ続く演算子です。とっても検索しにくいので、早めに覚えておくのがいいと思います。近年の機能追加では、僕的には一番お勧めの機能ですね。 # Defined-or演算子 // Defined-or演算子は、左辺が定義されている場合は、左辺値を返却し、未定義の場合は右辺値を返すという動作をします。 # 右辺が代入される my $value = undef // 'default'; # 'default' # 左辺が代入される my $value = 0 // 'default'; # 0 my $value = '' // 'default'; # '' my $value = 'foo' // 'default'; # 'foo' これは、値が与えられなか

    Defined-or演算子「//」 - Perl入門ゼミ
  • Perl: 整数の最大値・最小値 - toyfish.blog

    Perl では整数を扱うことができるが、とても大きな値 (あるいはとても小さな負の値) になると、自動的に浮動小数点数に切り替わる。 では、整数のまま扱える値の範囲はどこからどこまでなのか。 符号付き? 符号なし? 多くのプログラミング言語では、「32 ビット符号付き整数」とか「64 ビット符号なし整数」のような型が用意されている。このような決まったサイズで 2 進数表現の整数がよく使われるのは、コンピュータ自体 (というか CPU) がそのような形式の整数を扱いやすいようにできているためだ。 Perl はどうかと思って調べてみたところ、Perl インタプリタをビルドした時の設定によって、整数として扱える範囲が変わるらしい。 32 ビット環境向けにビルドした場合 32 ビット符号なし整数と、32 ビット符号付き整数が使える 64 ビット環境向けにビルドした場合 64 ビット符号なし整数と、

    Perl: 整数の最大値・最小値 - toyfish.blog
  • リファレンスを使って仮想的多次元配列

    1.リスト 複数のスカラ変数を並べた構造を『リスト』といいます。リストはスカラと同じように数値、文字列を区別なく扱います。リストの書き方はとても簡単で、値をカンマで区切り、その全体をカッコで囲むだけです。1、2、3の 3 つの値のリストは、以下のように表します。 (1, 2, 3) リストの代入 リストの要素に代入する場合は、下記のような方法があります。 ($a, $b, $c) = (1, 2, 3); リストの中にリストがある場合には、自動的に展開されます。 (@list1, @list2, &function) 上記のようなリストは @list1 のすべての要素の後に @list2 のすべての要素を追加し、その後にfunction というサブルーティンが返すすべての要素を追加します。 リストの要素数と変数の数が違う場合 リストの要素数よりも、用意した変数のほうが多い場合には、あまった

  • 山口家の逆襲->perl-解説->デリファレンス

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • DBI-DBDについて

    DBI/DBDの使い方 この文章は、perlcgi等のプログラムができ、SQLの基的な使い方を知っているひとを対象に書かれています。 また、DBI/DBDモジュールを利用するには、perl5のオブジェクト指向(風)プログラミングの知識もある程度以上は必要です。 DBI/DBDとは、perlとデータベースの間をとりもってくれる汎用インターフェイスです。 DBIモジュールとDBDモジュールからできており、DBDモジュールは、各データベースごとに存在します。 プログラマは、DBIモジュールのルールにしたがってプログラミングすることで、どのようなデータベースにも、同じようにアクセスするプログラムを書くことができます。 ここでは、DBD/pg(PostgreSQLDBDモジュール)を使った例を提示しますが、基的には、どのようなDB相手でも同様のことができます。

  • 基本的なDB連携 - Catalystのお作法

    Catalystのお作法 とりあえずCatalystのお作法(基)をめもってます。 トップページページ一覧メンバー編集 基的なDB連携 最終更新: catalystmemo 2010年03月08日(月) 18:43:59履歴 Tweet CatalystにおけるDB連携フロー Catalystでは、actionを定義しているControllerよりModelを参照することでDB操作を実現するが、 それを詳細に説明したのが下記画像である。 まずControllerから各DBに紐づいたModelインスタンスより、data-handling要求を出す。(所謂select,insert等) 要求を受け取ったModelは、DBに属する各tableに対応するSchemaクラスを参照することでデータ操作を実行する。 データ操作結果はModelを介してControllerに返却され、これによりDB連携

    基本的なDB連携 - Catalystのお作法
  • 第120回 Perlらしく書くための5つの極意 - bingo_nakanishiの他言語出身者のためのPerl入門

    極意1 組み込み関数のカッコは書かない open my $file, '<', 'hoge.txt'; split //, $c; 組み込み関数と自分が作った関数を一発で見分けられるのは有意義だ。 それに、記号が多いと読み辛い! Perlが標準で持っている関数くらい覚えているぜ!! ということをアピールするくらいの勢いで、標準の関数の括弧はなしで!!!! 極意2 変数は必要になったら宣言 my $c = 1; # $cに関する処理 my $d = 10; # $dに関する処理 プログラム言語の中には、関数の先頭で変数を宣言しなければならない言語があるが、Perlはそんなことはない!!! 必要になったときに宣言するんだ!!!!!! 後で読んだときに、変数をすべて頭に入れる必要がなくなる!!!!! 極意3 つなげる my @c = 1..3; for(reverse @c){ print $_

    第120回 Perlらしく書くための5つの極意 - bingo_nakanishiの他言語出身者のためのPerl入門
  • Perlの型グロブと名前空間アクセスの応用

    Perlの名前空間と型グロブに関する応用的な話です。高度な内容ですので、少なくともリファレンスについては理解している人向けです。型グロブも多少知らないと難しいかもしれません。 型グロブとは 名前空間の取得と操作 外部モジュールと名前空間 名前空間の開放と変数の開放 名前空間まとめ 応用:動的な関数のフック 応用:ライブラリの自動リロード 具体的な方法 アンロードルーチン まとめ ※以下特に断りがない限りPerl 5.10での動作確認です。 型グロブとは Perlの名前空間にアクセスする際に出てくるものです。prefrefによれば型グロブには次のようなものがあります。 $scalarref = *foo{SCALAR}; $arrayref = *foo{ARRAY}; $hashref = *foo{HASH}; $coderef = *foo{CODE}; $ioref = *foo{I

    Perlの型グロブと名前空間アクセスの応用
  • 2009-01-01から1ヶ月間の記事一覧 - bingo_nakanishiの他言語出身者のためのPerl入門

    今回は、高速に移動する方法について紹介します。 今回も、入力モードにはならないまま操作の練習をしますよ。 set number $ vim bingo.plでbingo.plを開いたら、 set numberとタイプしてみましょう。これで、行番号を表示してくれます。 行末へ移動 まず、…

    2009-01-01から1ヶ月間の記事一覧 - bingo_nakanishiの他言語出身者のためのPerl入門
  • 生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic

    ちょっと前まで DBI で非同期アクセスなエントリが各所で上がっていましたが皆さん如何お過ごしでしょうか? さてと、、、歴史的な経緯とか歴史的な経緯とかで生 DBI 相当を使ってる方もそれなりにいるでしょう。奥さん、大事な事なんで二度言いましたよ! DBI のインターフェースってまぁそんな使いやすい物じゃないんですが、工夫次第で出来る事もあります。 ちなみにサンプルデータベースとして、MySQL Documentation - Example Databases の world データベースを使っています。 fetchall_arrayref でデータ整形 まず以下のように使ってみます。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use DBI; use Perl6::Say; my $dbh =

    生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic
  • それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix

    どうもkazeburoです。DBIx Trackなのに、DBIxを作らない話。 myfinderさんがDBIxを作る第一歩としてDBIのサブクラスの作り方を紹介しましたが、実際にDBIxを作り出す前に、その機能がDBIの標準機能でできないか調べるのがオススメです。 Callbacksの基 CallbacksはDBIに標準で用意されているHook機能です。 my $dbh = DBI->connect('dbi:SQLite:dbname=test.db','','', { RaiseError => 1, PrintError => 0, Callbacks => { connected => sub { ... } } }); 接続時のAttributesにCallbacksを追加します。上では接続が完了(connected)したらcoderefが呼び出されます。 接続時にテーブルを作

    それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix