Perl › ファイル入出力 › here Perlにおけるファイルハンドルの概念はややこしいので、解説しておきます。 ファイルハンドルは実体ではなくて概念的なもの Perlでファイルハンドルといった場合は、Perlがファイルハンドルとして認識する複数の実体のことをいっています。ファイルハンドルという実体があるわけではないのです。 Perlが、ファイルハンドルとして認識するもの シンボル( FH ) 型グロブ( *FH ) 型グロブへのリファレンス( \*FH ) IO::Handleクラスのオブジェクト IO::Handleオブジェクトを継承したクラスのオブジェクト( IO::File など ) Perlが、ファイルハンドルとして認識するものは、上記の5つです。以下の記述はすべて有効です。 # 1. シンボル FH open(FH, "<", $file) or die "$!"; #
普通、配列は以下のように、要素毎に代入しても、リストで一気に代入しても、要素のアドレスは変わりません。 use strict; use warnings; my @array; $array[0] = "1"; $array[1] = "2"; print "array[0]-> " . \$array[0] . "\n"; print "array[1]-> " . \$array[1] . "\n"; print "\@array-> " . $array[0] . $array[1] . "\n"; @array = ("A", "B"); print "array[0]-> " . \$array[0] . "\n"; print "array[1]-> " . \$array[1] . "\n"; print "\@array-> " . $array[0] . $array[1
このページは Perl5.6 を対象としています. perl スクリプトは EUC-JP で書かれることを想定しています. このページは 正規表現メーリングリスト を参考に,私が独自にメモとしてまとめたものです. このページの正規表現やスクリプトについての詳しい説明, わかりやすい説明はおそらくできません. このページに書かれているスクリプトは, 個人の責任において実行してください. このページに書かれているスクリプトの 利用・改造は自由 です. その際はどこかにこのページの URI( http://www.din.or.jp/~ohzaki/regex.htm )を参考として記述していただければ幸いです(任意). ご意見・ご感想・ご要望などは にお願いします.こう書いた方がいい, 動かん,わからん,バグってる,これ書け,などなどお待ちしています. このページへの リンクは自由 に張ってく
HTTP::Daemon - 簡単な http サーバクラス 概要¶ use HTTP::Daemon; use HTTP::Status; my $d = HTTP::Daemon->new || die; print "Please contact me at: <URL:", $d->url, ">\n"; while (my $c = $d->accept) { while (my $r = $c->get_request) { if ($r->method eq 'GET' and $r->url->path eq "/xyzzy") { # remember, this is *not* recommended practice :-) $c->send_file_response("/etc/passwd"); } else { $c->send_error(RC_FORBI
フロントエンドのウェブ制作を学ぶ HTML5やCSS3、JavaScriptなどの言語、それにAtomといったツール、 言語を覚えるための勉強方法などを紹介。
%c : 文字コードによる文字指定 %s : 文字列 %d : 整数 %u : 符号無し整数 %o : 符号無し整数(8進数) %x : 符号無し整数(16進数) %e : 浮動小数点数(#.######e+###) %f : 浮動小数点数 # 文字コードによる文字の指定 print sprintf("文字コード指定 : %c%c\n", 48, 49); $a = "test"; # 文字列 print sprintf("文字列 : %s\n", $a); # 文字列(桁数指定・右寄せ) print sprintf("文字列(桁数指定・右寄せ) : %10s\n", $a); # 文字列(桁数指定・左寄せ) print sprintf("文字列(桁数指定・左寄せ) : %-10s\n", $a); $b = 50; # 整数 print sprintf("整数 : %d\n", $b);
やり方が分からなかったので、 「STDERRの出力を変数に入れるにはどうしたらいいんだろうなぁ(チラッチラッ」 とツイッターでつぶやいていたら、 @hide_o_55さんと@punytanさんのお二方に教えていただきました。 どうもありがとうございます! 方法は以下の2通りです。 use Test::More tests => 2; use strict; use warnings; # STDERRを使う { local *STDERR; my $stderr; open STDERR, '>', \$stderr or die $!; warn 'error'; like $stderr, qr/^error/; } # $SIG{__WARN__}を使う { my $stderr; local $SIG{__WARN__} = sub { $stderr = shift; }; wa
文字列 数値をASCII(アスキー)コードに対応する文字に変換するには、chr関数を使用します。 #!/usr/bin/perl use strict; use warnings; # ASCII文字コードでは65,66,67はそれぞれ 'A','B','C'に対応する。 my $a_num = 65; my $b_num = 66; my $c_num = 67; print chr( $a_num ), "\n"; print chr( $b_num ), "\n"; print chr( $c_num ), "\n"; __END__ 続きを読む
Perlで書いたプログラムを極力変更せずに、STDOUTとSTDERRを通常通り出力させたまま、それに加えてファイルに出力したくなった。そのプログラムはシステム管理的コマンドで、コマンド行から使い、その出力をリアルタイムで見るのだが、出力をファイルにも保存しておきたい。STDERRも記録したいのは、dieしたときなどはSTDERRに出てしまうからである。 そのPerlプログラムの名前をfooとしよう。fooを直接起動するのではなく、以下のようなシェルスクリプト(foowrapperと呼ぼう)から呼び出すことにすれば比較的簡単に目標はほぼ達成できる。 #!/bin/sh foo 2>&1 | tee file しかし、これではちょっと不便だ。fooとfoowrapperの両方が必要になる。fooがPATHの中にないといけない。foowrapperの中にfooを絶対パスで書くと、fooの場所を
日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。
perl で日本語を含む XML を扱う場合の留意点(苦労話)をご紹介します。 まだ方法論として体系だったものになっていないのですが、処理をする際になかなか情報が見つからなかったので、参考として未完成のまま公開していきたいと思います。 色々試した環境は、perl 5.6.1 です。perl 5.8 だと色々な問題が多少は改善されているかも知れません。 目次 ・文字コードは UTF-8 でなければならない ・読み込みは XML::Simple、書き出しは print でゴリゴリが一番てっとり早い ・Jcode.pm はUTF-8 のコード変換には色々問題があった ・ハイフンの全角半角変換と文字化けの問題 及び 変換用関数 文字コードは UTF-8 でなければならない perl の場合、どんなXMLパーサーモジュールを使う場合でも、ベースに XML::Parser モジュールが使用されているこ
オブジェクト指向Perlのしくみを解説します。 Perlモジュールの作り方と使用法についても解説します。 [1] パッケージ名前空間をPerlではパッケージと言います。 デフォールトのパッケージは main パッケージです。 ただしファイルのなかにパッケージ宣言(package ...)の行があると、それ以降に書かれた「グローバル」変数(our 変数)やサブルーチンは、そこで宣言されたパッケージのものになります。 package Foo; our $name = "I am Foo!"; # $name はパッケージ Foo に入る。 # our は付けなくてもいい...。パッケージの及ぶ範囲(スコープ)はつぎに又、別のパッケージ宣言が来るまでずっと続きます。 但しパッケージ宣言がブロック {...} のなかで為された場合は、そのブロックが閉じたところでパッケージのスコープが消えます。 p
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く