Perlについての質問箱 49箱目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/10/30(日) 14:44:20.41CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://hibari.2ch.net/php/ )
このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。
http://www.perl.org/get.html
● 2011/10/30 現在の最新版: 5.14.2
▼ 前スレ
Perlについての質問箱 48箱目
http://hibari.2ch.net/test/read.cgi/tech/1313840197/
リンク集は >>2-3辺り
Perl 日本語処理の基礎の基礎 >>4辺り
0002デフォルトの名無しさん
2011/10/30(日) 14:45:15.61Perlは死んだ
0003デフォルトの名無しさん
2011/10/30(日) 14:45:36.91さようなら! 過去の言語!
0004デフォルトの名無しさん
2011/10/30(日) 14:45:52.85Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/
[本]
リャマ: ttp://www.oreilly.co.jp/books/9784873114279/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://ascii.asciimw.jp/books/books/detail/4-7561-3057-7.shtml
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/
[オンラインマニュアル]
最新のドキュメント: ttp://search.cpan.org/dist/perl/
perldoc.jp: ttp://perldoc.jp/
perldoc.perl.org: ttp://perldoc.perl.org/
0005デフォルトの名無しさん
2011/10/30(日) 14:46:10.22Jcode関係は過去のやり方です。
0006デフォルトの名無しさん
2011/10/30(日) 14:46:42.49CPAN.com: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/
[テクニック]
Perl メモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perl のページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perl の小技: ttp://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl 5.8 Unicodeメモ]
ttp://www.rwds.net/kuroita/program/Perl_unicode.html (修正)
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0007デフォルトの名無しさん
2011/10/30(日) 14:47:28.43# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)"; # ※1
use Encode;
# 次に、あなたが実行したい処理の内容を入れて下さい。
$file = 'C:/なんたら/かんたら.txt';
open my $fh, '<', encode("cp932", $file) or die $! ; # ※2
print <$fh>;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。条件が異なる場合の対処方法は、ご自分で勉強して下さい。
# 【注】※1. の行を入れると、DOS 窓への日本語出力は簡便になりますが、
# ソースファイル名に非 ANSI 文字が含まれる場合に die 文の出力が失敗します。
# ※2. OS に渡す文字列(ファイル名,dos コマンドのオプションなど)は、
# この例のように cp932 でエンコードする必要があります。
0008デフォルトの名無しさん
2011/10/30(日) 14:48:11.670009デフォルトの名無しさん
2011/10/30(日) 14:49:17.18http://search.cpan.org/dist/Encode/
UNICODEでわからなくなったらここを読め
http://perldoc.jp/docs/perl/5.8.1/utf8.pod
http://perldoc.jp/docs/perl/5.10.0/perlunifaq.pod
0010デフォルトの名無しさん
2011/10/30(日) 14:50:21.93utf8フラグとい名前がまずかったね。
文字列フラグなどという名前だったらよかった。
文字列フラグはPerl固有のものだから
Perlコード外部から渡されるのは文字列ではない。
文字列でなかったらなにか?それはバイナリ。
バイナリを文字として扱いたければ、文字に変換しないといけない。
それがdecode。
ではソースコードに書いてあるのは、文字かバイナリか。
それはuse utf8を使えば文字で、そうでない場合はバイナリ。
話はこれだけ。
0011デフォルトの名無しさん
2011/10/30(日) 14:50:36.62while(<>){
chomp;
my @row = split(/,/, $_);
for my $row (@row){
Encode::from_to($row,'utf8','sjis');
print $row;
}
}
0012デフォルトの名無しさん
2011/10/30(日) 14:53:48.76モダンPerlの世界へようこそ
http://gihyo.jp/dev/serial/01/modern-perl/0001
0013デフォルトの名無しさん
2011/10/30(日) 14:54:42.28Windowsだとそうはいかない。
0014デフォルトの名無しさん
2011/10/30(日) 14:55:54.27文字列には、文字数というものがあるので
文字とバイナリは違います。
0015デフォルトの名無しさん
2011/10/30(日) 14:58:04.920016デフォルトの名無しさん
2011/10/30(日) 14:59:33.85減るので利用者として楽です。
0017デフォルトの名無しさん
2011/10/30(日) 15:00:07.72ビット(バイト)が並んだもの。それ以外に情報を持っていない。
・文字列
バイナリに様々なメタ情報が追加されたもの。
文字コード情報がが固定、もしくは内包されている。
データの終端情報を持っている。
1文字という概念がある。1文字は多バイト、または可変バイトで構成されている。
バイト単位での操作は行わない。
0018デフォルトの名無しさん
2011/10/30(日) 15:05:07.880019デフォルトの名無しさん
2011/10/30(日) 15:14:41.240020デフォルトの名無しさん
2011/10/30(日) 15:18:01.66ときでフラグがつく、つかないが変わる、ということからすると、latin-1
リテラルで Unicode 文字列をあらわすというのは今でも、それが perl
の正しい文字列の扱い方ということになるとおもう。
0021デフォルトの名無しさん
2011/10/30(日) 15:19:34.86日本語でおk
0022デフォルトの名無しさん
2011/10/30(日) 15:22:16.34だから、そういうへんな挙動がないEncodeモジュールを
使ってくださいと書いてあるんだよ。
http://perldoc.jp/docs/perl/5.8.1/utf8.pod
> utf8::encode($string)
>
> 論理キャラクタを、8ビットシーケンス表現に、PerlのUTF-Xエンコーディングに、
> (適切に)変換します。何も返しません。 Encode::encode_utf8()と同じです。
> 次のことに注意してください。レガシーのバイトエンコーディングを、
> Unicode にする変換に使うべきではありません:そのためには、Encode を使って下さい。
0023デフォルトの名無しさん
2011/10/30(日) 15:47:51.88そこに書いた「文字列」を「文字列インスタンス」「文字列オブジェクト」
と書換えるのなら構わないけど、一般的な言葉の「文字列」をその定義に
しちまうのはどうよ?
そうでないと今、見えているものが文字列じゃなくなっちゃうぞ。
0024デフォルトの名無しさん
2011/10/30(日) 15:57:16.10なんで? データの終端情報は微妙だけど、
ここに書いてある文字を読むためには、ShiftJISという文字コード
まで含めてやっと文字列として読めるだろ?
そしてその1文字が何バイトであるかなんて考えないだろ?
0025デフォルトの名無しさん
2011/10/30(日) 16:23:16.44パピルスに書かれたものも、粘土板に刻まれたものも、木簡に書かれた
ものも文字列と言われてきたのだから、これからもそうしたほうがいい
と思う。
(それともお前が全部燃やしたいの?)
・(ひとが扱う)文字列
バイナリに様々なメタ情報が追加されたもの。
→ コンピュータ導入前から人間は文字列は使っているわけで、"バイナリ"
は無関係。コンピュータがデジタルではなった場合も然り。
文字コード情報が固定、もしくは内包されている。
→ 同じ理由で文字コード情報は文字列の定義に関係がない。
データの終端情報を持っている。
→ バイナリデータだって終端情報を持っていることがある。
1文字という概念がある。
→ 確かに。でももしかしたら1文字の概念があやふやだったり、なかったり
するようなもの(言語?)もあるかもしれない。
1文字は多バイト、または可変バイトで構成されている。バイト単位での
操作は行わない。
→ これまたコンピュータ上/内の話。コンピュータの有無やその構造・方式
と文字列の定義は無関係。
0026デフォルトの名無しさん
2011/10/30(日) 16:26:32.52意味がわからん。
今はコンピュータ上の文字の表現の仕方の話だろ。
手書きしたものとか言い出したら、
文字はバイナリではない(分子かなんかカ?w)ということになるだろ。
なに関係ありそうで関係ないものの話持ちだしてんだかw
こいつは頭が悪いと認定してよさそうだ。
0027デフォルトの名無しさん
2011/10/30(日) 16:29:44.06ttp://www.unicode.org/standard/WhatIsUnicode.html
に
Fundamentally, computers just deal with numbers. They store letters
and other characters by assigning a number for each one.
ってあるようにコンピュータは文字を扱うわけではない。
0028デフォルトの名無しさん
2011/10/30(日) 16:33:21.15文字コード情報が別に必要になる。
ASCIIだって、ASCIIコードという情報がなければ、
アルファベットですら文字として認識できない。
たとえばASCIIコードでABCDと書いてあるように見えても、
これはASCIIではなくUTF32ですといわれれば別の文字になるしね。
文字を文字として認識するためには、文字コード情報が必要不可欠。
C言語とかこの文字コード情報が文字列にくっついていないから
(そもそもC言語には文字はあっても文字列はないんだが)
文字として表示するためには人間が文字コードのことを考慮する必要があった。
最近の言語では、文字とバイナリは区別され、文字には文字コード情報が内包されている。
そのため、人間がいちいち文字コードは何か? と考える必要がなくなった。
PerlのUTF8フラグもその一つ。
0029デフォルトの名無しさん
2011/10/30(日) 16:35:11.85中途半端に持ってくるなよ
基本的に、コンピュータは数字だけを扱います。彼らはそれぞれに番号を割り当てることによって、
文字や他の文字を格納する。ユニコードが発明される前に、これらの番号を割り当てるための
さまざまなエンコーディングシステムの何百ものがあった。単一の符号化に十分な文字が含まれていないことができます:
例えば、欧州連合(EU)だけではそのすべての言語をカバーするいくつかの異なるエンコーディングが必要です。
であっても英語のような単一言語の単一の符号化は、共通使用されているすべての文字、句読点、技術記号のための十分でした。
お互いに、これらの符号化システムは、また競合。つまり、二つのエンコーディングは、2つの異なる文字に対して同じ番号を使用して、
または同じ文字に異なる番号を使用することができます。任意のコンピュータ(特にサーバ)さまざまなエンコーディングを
サポートする必要があります。まだいつでもデータが異なるエンコーディングやプラットフォーム間で受け渡され、データは常に破損の危険性を実行される。
0030デフォルトの名無しさん
2011/10/30(日) 16:36:46.56「2つの異なる文字に対して同じ番号」を割り当てるわけ。
つまり番号からでは、どの文字かどうかはわからない。
そこで使用されるのが、エンコーディング(文字コード)
番号を文字として認識するには、文字コード情報が必要不可欠
0031デフォルトの名無しさん
2011/10/30(日) 16:47:39.58例えばPerlで処理した後にPythonで処理したり、お前の母ちゃんが処理したり
することもあるだろ?
0032デフォルトの名無しさん
2011/10/30(日) 16:49:32.04そういう場合は文字を一旦バイナリに変換する。
そして他の言語でバイナリとして読み取ったものを
その言語用の文字列として変換するんだよ。
0033デフォルトの名無しさん
2011/10/30(日) 16:51:39.460034デフォルトの名無しさん
2011/10/30(日) 16:53:22.730035デフォルトの名無しさん
2011/10/30(日) 17:01:38.82バイナリエディタの区別がつかない人?
バイナリのまま、文字列を操作するのは大変だろw
だからテキストエディタで文字列として解釈させて・・・
でも元がバイナリ(文字コードデータが含まれてない)だから、
たまに自動判定できなくて・・・
こんなことを、いちいち言わないとわからないのかな?
0036デフォルトの名無しさん
2011/10/30(日) 17:03:36.760037デフォルトの名無しさん
2011/10/30(日) 17:04:24.270038デフォルトの名無しさん
2011/10/30(日) 17:05:30.40そんな事言ってるのはお前だけw
0039デフォルトの名無しさん
2011/10/30(日) 17:08:56.05扱っているわけではない。もし今会話している相手がコンピュータ
だっていうならチューリングテスト合格だと思うぞ。
0040デフォルトの名無しさん
2011/10/30(日) 17:13:07.05プログラミング言語での文字列型に格納されてる文字列について話してる人がいるかかみ合わないのでは?
0041デフォルトの名無しさん
2011/10/30(日) 17:15:24.89プログラミング言語での文字列型に格納されてる文字列
以外の話をしている人は、なんなんだろうね。
0042デフォルトの名無しさん
2011/10/30(日) 17:16:08.13ことにすべて同意する。
0043デフォルトの名無しさん
2011/10/30(日) 17:19:41.78ここはperlスレ。
perlにおいて文字列オブジェクトとは
変数の値にUTF8フラグがついたもの。
0044デフォルトの名無しさん
2011/10/30(日) 17:21:30.96格納される前は、格納されるものを何て呼べばいいの?
そこを議論しているつもり。
確かに格納される前の話はPerlと無関係かもしれないけれど、説明したり
するときにどうしてもそれを表わさないといけないよね?
0045デフォルトの名無しさん
2011/10/30(日) 17:27:06.390046デフォルトの名無しさん
2011/10/30(日) 17:29:28.39B) 文字列オブジェクトには文字列が格納されている
0047デフォルトの名無しさん
2011/10/30(日) 17:32:28.520048デフォルトの名無しさん
2011/10/30(日) 17:32:45.56これでも読んでください。
http://perldoc.jp/docs/perl/5.10.0/perlunitut.pod
・テキスト文字列(文字の文字列)
テキスト文字列、または 文字の文字列 は文字からなります。
バイト列はここでは無意味で、エンコーディングがあります。 各文字は単に文字です。
テキスト文字列は Unicode 文字列 とも呼ばれます; なぜなら、Perl では テキスト文字列は Unicode 文字列だからです。
・バイナリ文字列(バイト文字列)
バイナリ文字列、または バイト文字列 はバイト列からなります。
ここでは、文字はなく、単にバイトだけがあります。
外側の世界(現在の Perl プロセスの外側のあらゆるもの) との通信はバイナリで 行われます。
・エンコード
エンコード は テキスト から バイナリ への変換です
・デコード
デコード は バイナリ から テキスト への変換です。
0049デフォルトの名無しさん
2011/10/30(日) 17:45:18.83例:
@array = (
[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15]
);
希望:上記2次元配列の中味が分からないという状況で、15という一番最後の数字を取得したい。
状況:@{$array[$#array]}で最後の配列要素[11,12,13,14,15]を取り出せることまで分かりました。
その後、いろいろ試したんですが、うまくいきません。[-1]は使えないみたいですし……。
ご教授お願いします。
0050デフォルトの名無しさん
2011/10/30(日) 17:46:16.62B) ≒ C) 文字列変数に文字列が格納されている
ってこと。
Perlの場合は文字と数値を区別しない変数なので文字列変数ってもの
がなかったわけで、ついでにバイナリストリングと文字列の区別も
なかった。区別がない方が便利なこともあるし、システム的に区別が
あった方が便利なこともある。
でも入れるものと入れられるものを区別できないと困るし、単語が
今までの用法と異なるのも混乱の元。
0051デフォルトの名無しさん
2011/10/30(日) 17:50:42.920052デフォルトの名無しさん
2011/10/30(日) 17:53:32.260053デフォルトの名無しさん
2011/10/30(日) 17:56:44.75あ〜れぇ〜って読むの?
それとも、ありぃ〜?って読むの?
0054デフォルトの名無しさん
2011/10/30(日) 18:36:16.810055デフォルトの名無しさん
2011/10/30(日) 19:08:21.20B') 数値オブジェクトには数値が格納されている
数値にはリテラルの語感があるので、A') が不自然に感じる。
0056デフォルトの名無しさん
2011/10/30(日) 19:16:27.45変数にバイナリ値が格納されている。
変数に文字列が格納されている。
これでいいじゃん
0057デフォルトの名無しさん
2011/10/30(日) 19:19:04.01>>52
ありがとうございます。
[-1]だと何故かダメなんです。表示されません。
0058デフォルトの名無しさん
2011/10/30(日) 19:21:36.92-1 が使えない状況がおかしい。
使えないというコードそのままさらしてみ?
0059デフォルトの名無しさん
2011/10/30(日) 19:26:15.90格納される前は?
これから格納しようかと思っているものの名称は?
0060デフォルトの名無しさん
2011/10/30(日) 19:29:41.19要するに変数の右辺だろ?
変数に入れたからって、右辺の状態が
変更されるわけ無いだろ。
変数に入れるまでもなく、
数値、バイナリ値、文字列、ついでにオブジェクトだよ。
0061デフォルトの名無しさん
2011/10/30(日) 19:30:26.03○要するに変数への代入式の右辺だろ?
0062デフォルトの名無しさん
2011/10/30(日) 19:33:40.770063デフォルトの名無しさん
2011/10/30(日) 19:39:29.07なら答えは>>48に書いてあるじゃん。
> 外側の世界(現在の Perl プロセスの外側のあらゆるもの) との通信はバイナリで 行われます。
はい、バイナリです。
0064デフォルトの名無しさん
2011/10/30(日) 19:40:01.460065デフォルトの名無しさん
2011/10/30(日) 19:41:51.30がんばれ!!!
0066デフォルトの名無しさん
2011/10/30(日) 19:42:32.36お前何のはなししてるの?
0067デフォルトの名無しさん
2011/10/30(日) 19:47:05.380068デフォルトの名無しさん
2011/10/30(日) 19:56:22.110069デフォルトの名無しさん
2011/10/30(日) 20:00:49.05no utf8;
0070デフォルトの名無しさん
2011/10/30(日) 20:09:50.87文字の話は↓こっちに移ったんだろうがよ
Perlについて
http://hibari.2ch.net/test/read.cgi/tech/1217851121/
0071デフォルトの名無しさん
2011/10/30(日) 20:18:25.73環境はHTML出力なので、
あまり周辺を広げるとスレ違いになりそうなんすが、
my @current_month = calendar($mon,$year); #@current_monthに対象月の日にちデータを二次元配列で格納。
print @{$current_month[-1]}[-1]; #対象月の最終日を表示。
試したもの↓
print "$current_month[-1][-1]";
print "@{$current_month[-1]}[-1]";
print "@{$current_month[$#current_month][-1]}";
print "$current_month[$#current_month][-1]";
""を外してみてもダメでした。
0072デフォルトの名無しさん
2011/10/30(日) 20:22:21.560073デフォルトの名無しさん
2011/10/30(日) 20:34:39.89モジュールの作り方とか載ってないので、次の本を探
しています。
だいたいPerlの書き方はわかったので、リファレンスを
兼ねた本がいいと思い、「プログラミングPerl 第3版」
を検討していますが、内容的には古くないでしょうか?
2002年というのがどうにも気になりまして。
あとできればマルチバイト文字にも配慮した本だと
いいのですが望み薄ですか?
shiftjisのテキストファイルを扱うときに、日本語処理に
随分手間取ったので。(Encodeモジュールを使いました)
0074デフォルトの名無しさん
2011/10/30(日) 20:41:09.19週ごとに区別する都合で2次元配列なんです。
いろいろ手間をかければ月の最終日が何日なのかは参照できると思いますが、
一発でアクセスできる方法があればなと……。
0075デフォルトの名無しさん
2011/10/30(日) 20:43:04.650076デフォルトの名無しさん
2011/10/30(日) 20:46:39.12して、
print Dumper \@current_month ;
の結果が想定通りかまず調べろ。
実際には一次元が返ってたとか、undef が
返ってたとかあるだろ。
0077デフォルトの名無しさん
2011/10/30(日) 20:47:28.970078デフォルトの名無しさん
2011/10/30(日) 20:50:38.36埋まっているに一票。
0079デフォルトの名無しさん
2011/10/30(日) 22:30:04.75今日はもうコードをチェックしませんが、恐らく真理です……。
calendarモジュールから取得した日にちデータを、
実際のカレンダーのように、日〜土までを一行として表組みしてます。
仮に月曜日でその月が終わるとすると、火〜土までは空白セルとして表示するようになってます。
……とすると配列の最後尾にアクセスするんじゃなくて、
undefでない最後の有効値にアクセスするように書けばいいってことですよね。
いちいちループ使ってその配列の後ろからundefかそうでないかを調べていったほうが早いでしょうか。
一発で最後の有効値にアクセスする方法ってあります?
0080デフォルトの名無しさん
2011/10/30(日) 22:39:28.1477氏がその質問を予見してて、答えの一案を書いてるだろ。
0081デフォルトの名無しさん
2011/10/30(日) 23:04:38.66use strict; use warnings; もしてないであろう>>79なら平気かしらんが
0082デフォルトの名無しさん
2011/10/31(月) 00:22:08.94続・初めてのPerl 改訂版
まるごとPerl! Vol.1
それに腐っても鯛、
プログラミングPerl 第3版
は、読む価値がある
でもその前に
プログラミングPerl 第2版
を薦めておく
0083デフォルトの名無しさん
2011/10/31(月) 00:27:31.33実際は読んでないんだろうなw
0084デフォルトの名無しさん
2011/10/31(月) 01:41:52.11欲しいのは「二次元配列の最後の(undefではない)要素の値」なのか、
「その年・月の末日の日付」なのか、どっち?
後者ならその配列の値を参照する以外にも取得方法はあると思うが。
use Date::Calc qw(Days_in_Month);
print Days_in_Month($year,$mon);
とか。
まあ>>77の方法でもいいだろうけど。
0085デフォルトの名無しさん
2011/10/31(月) 03:05:19.57例えば、480×320pxの画像を、400×400pxの枠内に収めたいとき、
cropするだけだと、400×300pxとなってしまいます。
これを、上下50pxずつ白い背景を付け足して、400×400pxの画像に
したいのですが、方法をご存知の方がいたら是非教えてください。
0086デフォルトの名無しさん
2011/10/31(月) 04:48:48.11俺だとこうするかなぁ。行頭の空白全角にしてるけど:
my $last_day = (
grep { defined $_ }
map { @{$_} }
@current_month
)[-1];
0087デフォルトの名無しさん
2011/10/31(月) 08:37:42.50Data::Dumperは出力結果をevalすると元に戻るというのも趣旨の1つ。
そのため、元がテキスト文字列だったものをevalしてもテキスト文字列
に戻るように、"\x{ff84}"という記法で出力している。
0088デフォルトの名無しさん
2011/10/31(月) 12:31:48.72ありがとうございました。
>>86の方法で解決です。
ちなみにuse strict;use warnings;どっちもしてます。
0089デフォルトの名無しさん
2011/10/31(月) 13:28:43.74大方、CGI でしか動かしてなくてしかも CGI::Carp を使ったデバッグすらしてない、とかなんだろうけど。
0090デフォルトの名無しさん
2011/11/01(火) 17:59:02.821000個の配列を大きい順に並びかえるようなソートだと
自作関数だと1000*1000回のループになっちゃうんだけど、これより速いですか?
0091デフォルトの名無しさん
2011/11/01(火) 18:01:00.070092デフォルトの名無しさん
2011/11/01(火) 18:21:27.17http://perldoc.perl.org/sort.html
0093デフォルトの名無しさん
2011/11/03(木) 00:28:27.70use encoding "utf8"
use Encode;
use strict;
print encode('shiftjis',"テストテスト");
こんな感じのソースを書いて、UNIXサーバに送って
TeraTerm(SJIS設定)で実行すると文字化けする
んですが、何が問題なのでしょう?
TeraTermをutf8設定にして、encodeなしでで表示させれば、
うまく表示されるんですが、SJISのファイルが多いので、TeraTermの
設定はSJISにしておきたいと思っています。
もちろん上記ソースはUTF8で保存してます。
0094デフォルトの名無しさん
2011/11/03(木) 00:53:08.42use encoding;は、jperlなど、かつて存在したL10Nされたperl用に
書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。
スクリプトはUTF-8で書き、use utf8;する
のがモダンPerlのあり方です。
0095デフォルトの名無しさん
2011/11/03(木) 01:15:50.78おー ありがとうございます。
ソースが職場なので、あとで確認してみます。
この辺の漢字圏の文化を踏まえたPerlの本が
あると良いのですけど、ありませんかね?
0096デフォルトの名無しさん
2011/11/03(木) 01:28:38.23モダンperlについて調べたほうがいい。
ネットは古臭いコードで溢れてる。
0097デフォルトの名無しさん
2011/11/03(木) 01:38:26.41これまた奇特な言語だな
0098デフォルトの名無しさん
2011/11/03(木) 02:28:27.58Perlの標準ライブラリとは、ユーザが作ったモジュール。
それが利点でもあるが、メンテナが一個人だったりするわけで
その人の気分で仕様が変わり、互換性が低い部分がある。
0099デフォルトの名無しさん
2011/11/03(木) 03:51:43.51文字コード「超」研究 改訂第2版 深沢千尋
まだあるけどね
0100デフォルトの名無しさん
2011/11/03(木) 10:42:18.14use Socket;
socket(・・・);
connect(・・・);
な感じでインターネット上のwebサイトからページを取得してるんだけど、
サイトの応答が遅いとき、応答が帰ってくるまでCPU負荷が100%近くになる。
これって何が原因でしょうか。
まあ、PCのスペックはWin2000を使っているというあたりで想像いただけるとは思いますがしょぼいです。
Activeperlのバージョン上げれば直るのかな…
0101デフォルトの名無しさん
2011/11/03(木) 15:09:06.33お薦めだけでも300冊位思いついちゃってレスがまんどくさく
なっちゃったんだろうなw
■ このスレッドは過去ログ倉庫に格納されています