Perlについての質問箱 47箱目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/05/25(水) 23:18:12.33CGI と 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/05/25 現在の最新版: 5.14.0
▼ 前スレ
Perlについての質問箱 46箱目
http://hibari.2ch.net/test/read.cgi/tech/1297677532/
リンク集は >>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは >>5-7 あたり
0002デフォルトの名無しさん
2011/05/25(水) 23:18:52.40Perl プログラミング講座: 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://www.perldoc.jp/
perldoc.perl.org: ttp://perldoc.perl.org/
0003デフォルトの名無しさん
2011/05/25(水) 23:19:02.02CPAN.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
0004デフォルトの名無しさん
2011/05/25(水) 23:19:12.89# このレスは、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 でエンコードする必要があります。
0005デフォルトの名無しさん
2011/05/25(水) 23:19:21.981 http://pc.2ch.net/tech/kako/1017/10177/1017736187.html
2 http://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
3 http://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
4 http://pc2.2ch.net/tech/kako/1048/10485/1048519394.html
5 http://pc5.2ch.net/tech/kako/1053/10530/1053053082.html
6 http://pc5.2ch.net/tech/kako/1060/10606/1060689008.html
7 http://pc2.2ch.net/test/read.cgi/tech/1068051036/ (事故により消滅)
8 http://pc2.2ch.net/test/read.cgi/tech/1074151549/ (事故により消滅)
9 http://pc5.2ch.net/test/read.cgi/tech/1079114157/
10 http://pc5.2ch.net/test/read.cgi/tech/1085564875/
11 http://pc5.2ch.net/test/read.cgi/tech/1090889189/
12 http://pc5.2ch.net/test/read.cgi/tech/1094579428/
13 http://pc5.2ch.net/test/read.cgi/tech/1097851764/
14 http://pc5.2ch.net/test/read.cgi/tech/1101649274/
15 http://pc5.2ch.net/test/read.cgi/tech/1105953092/
16 http://pc8.2ch.net/test/read.cgi/tech/1111034732/
17 http://pc8.2ch.net/test/read.cgi/tech/1117870308/
18 http://pc8.2ch.net/test/read.cgi/tech/1121804136/
19 http://pc8.2ch.net/test/read.cgi/tech/1126977805/
20 http://pc8.2ch.net/test/read.cgi/tech/1131286411/
0006デフォルトの名無しさん
2011/05/25(水) 23:19:28.3021 http://pc8.2ch.net/test/read.cgi/tech/1134327348/
22 http://pc8.2ch.net/test/read.cgi/tech/1138519327/
23 http://pc8.2ch.net/test/read.cgi/tech/1141742901/
24 http://pc8.2ch.net/test/read.cgi/tech/1146022352/
25 http://pc8.2ch.net/test/read.cgi/tech/1149259409/
26 http://pc8.2ch.net/test/read.cgi/tech/1153412251/
27 http://pc8.2ch.net/test/read.cgi/tech/1157874614/
28 http://pc8.2ch.net/test/read.cgi/tech/1162273941/
29 http://pc11.2ch.net/test/read.cgi/tech/1166708139/
30 http://pc11.2ch.net/test/read.cgi/tech/1173880452/
31 http://pc11.2ch.net/test/read.cgi/tech/1181500187/
32 http://pc11.2ch.net/test/read.cgi/tech/1186995713/
33 http://pc11.2ch.net/test/read.cgi/tech/1192463997/
34 http://pc11.2ch.net/test/read.cgi/tech/1199977642/
35 http://pc11.2ch.net/test/read.cgi/tech/1208674881/
36 http://pc11.2ch.net/test/read.cgi/tech/1215569470/
37 http://pc11.2ch.net/test/read.cgi/tech/1218449440/
38 http://pc11.2ch.net/test/read.cgi/tech/1221967332/
39 http://pc12.2ch.net/test/read.cgi/tech/1234181856/
40 http://pc12.2ch.net/test/read.cgi/tech/1243631674/
0007デフォルトの名無しさん
2011/05/25(水) 23:19:36.2841 http://pc12.2ch.net/test/read.cgi/tech/1249581780/
42 http://pc12.2ch.net/test/read.cgi/tech/1257139591/
43 http://pc12.2ch.net/test/read.cgi/tech/1266565626/
44 http://hibari.2ch.net/test/read.cgi/tech/1280541200/
45 http://hibari.2ch.net/test/read.cgi/tech/1287755129/
46 http://hibari.2ch.net/test/read.cgi/tech/1297677532/
0008デフォルトの名無しさん
2011/05/25(水) 23:21:56.41テンプレなげーよ。
0009デフォルトの名無しさん
2011/05/26(木) 02:10:26.60binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
が
use encoding "cp932";
でも、いいような気がしるけど、いまいち理解できてないです…
0010デフォルトの名無しさん
2011/05/26(木) 02:38:46.950011デフォルトの名無しさん
2011/05/26(木) 06:36:42.24全然ダメ
0012デフォルトの名無しさん
2011/05/26(木) 12:40:27.81kwsk
0013デフォルトの名無しさん
2011/05/26(木) 13:14:43.30いけなくなるのが余計ってことなんじゃ。
00149
2011/05/26(木) 13:15:44.46とりあえず、最初は
use utf8;
use encoding "cp932";
use open IO => ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
こんな感じで、UTF-8形式でソース保存しています。
あ…ファイル名に全角文字だとさらにややこしくなるんですね… orz
00159
2011/05/26(木) 13:17:59.160016デフォルトの名無しさん
2011/05/26(木) 14:19:17.56ソースを utf8 で保存しれりゃ別にえぇんとちゃうのん?と思う。
文字数を数えたいなら decode してフラグ付けりゃいいだけだしさ。
0017デフォルトの名無しさん
2011/05/26(木) 14:33:53.730018デフォルトの名無しさん
2011/05/26(木) 15:11:12.92テンプレが長いのは過去スレが多いからだが、過去スレはやめても
いいんじゃない?
他のスレでも、省略しているものが多いみたいだし。
0019デフォルトの名無しさん
2011/05/26(木) 17:37:42.78例えば<font size="6">www</font>"aaa"<font color="#0000ff">www</font>"bbb"という文字列の
タグの中の"を'にタグ外の"は&quot;に変換して
<font size='6'>www</font>&quot;aaa&quot;<font color='#0000ff'>www</font>&quot;bbb&quot;というようにするには
どうしたらいいんでしょうか?
0020デフォルトの名無しさん
2011/05/26(木) 18:19:43.27そんなこと聞いてるやつがインジェクション攻撃に
対処できると思わないからタグ自体禁止する。
0021デフォルトの名無しさん
2011/05/26(木) 18:44:50.030022デフォルトの名無しさん
2011/05/26(木) 18:50:12.181.行全部のクォートを"にする
2.タグの中の"を'に変換する
3.SQLなどへのインジェクションで泣きを見る
4.あなたは晴れて失業
5.perl忍者が増える
0023デフォルトの名無しさん
2011/05/26(木) 21:40:54.68ハッシュ変数wordに$word{"テスト"}="だよ";
のような感じで値を渡しているのですが
いざif文で if ($word{$a} == "だよ")で判別しようとすると
$aがどんな値でも上記の条件式が必ず実行されてしまいます。
意味不明だと思いますがエスパーの方いましたらよろしくお願いします。
0024デフォルトの名無しさん
2011/05/26(木) 22:03:53.54文字列比較には==ではなくeqを使え
0025デフォルトの名無しさん
2011/05/26(木) 22:33:22.35!= ne
常識
0026デフォルトの名無しさん
2011/05/26(木) 22:42:03.07無事解決しました!
なるほど文字列の比較の仕方が間違ってたんですね。
どうもありがとうございました。
0027デフォルトの名無しさん
2011/05/26(木) 23:01:20.86タグの外ってことは > と < にはさまれてるって考えれば良いかと
0028デフォルトの名無しさん
2011/05/26(木) 23:10:34.54<img/>とか<br/>はどうすんの
0029デフォルトの名無しさん
2011/05/26(木) 23:30:08.44> use utf8;
> use encoding "cp932";
両方同時に使うのは間違い
ttp://perldoc.jp/docs/perl/5.8.1/utf8.pod
ttp://blog.livedoor.jp/dankogai/archives/51221731.html
0030デフォルトの名無しさん
2011/05/27(金) 03:45:12.00それは置いといて、encodingを使うと、
binmode STDIN => ":raw :encoding(cp932)";
binmode STDOUT => ":raw :encoding(cp932)";
こうなって、"\n"の挙動が変わるから注意は必要だね。
0031デフォルトの名無しさん
2011/05/27(金) 08:24:04.59use utf8;
use open qw(:encoding(cp932) :std);
0032デフォルトの名無しさん
2011/05/27(金) 10:32:06.73>フォームから入力されたデータ
この意味がよくわかんないんだけど、単なる文字列の変換なら
my $str = '<font size="6">www</font>"aaa"<font color="#0000ff">www</font>"bbb"';
$str =~ s/(<[^>]*?)"(.*?)"/\1'\2'/g;
$str =~ s/"/&quot;/g;
0033デフォルトの名無しさん
2011/05/27(金) 13:05:02.520 から 1 までの範囲の RGBA の配列に変換してくれるモジュールには
どういったのがあるのでしょうか?
サブルーチンを自分で書いた方が早い気がしますが、
CPAN にあるのならそれを使った方が良いかなあ?と思って
0034デフォルトの名無しさん
2011/05/27(金) 13:25:00.08改行を含む任意の1文字はどう表現すればいいですか?
0035デフォルトの名無しさん
2011/05/27(金) 13:39:48.57s修飾子を使うか | で並べる
/./s
/.|¥n/
お好きな方で。
0036デフォルトの名無しさん
2011/05/27(金) 14:42:25.83よく解らなかったので検索したら、たとえば
binmode STDOUT => ":crlf:encoding(cp932)";
という指定で大丈夫でしょうか?
0037デフォルトの名無しさん
2011/05/27(金) 17:58:40.36礼儀正しくやるならそうなるね。
面倒ならSTDINだけ:crlfを追加とか。
binmode STDIN => ":crlf";
0038デフォルトの名無しさん
2011/05/27(金) 18:52:12.71{}の中のaaaをAAAにしたいんですけど
$str=~s/{aaa}/AAA/g;としてもうまくいきません
どうすればうまくいくんでしょうか?
0039デフォルトの名無しさん
2011/05/27(金) 19:03:27.46やめたほうがいいといわれたのでやめます
0040デフォルトの名無しさん
2011/05/27(金) 19:23:35.56$str="aaa{aaa}aaa{aaa}";
なら $str=~s/{aaa}/AAA/g;でうまくいくよ。
0041デフォルトの名無しさん
2011/05/27(金) 22:48:57.57CPANにUPすると容赦なくdisられるのな…。
0042デフォルトの名無しさん
2011/05/27(金) 23:22:45.70#!C:/Perl/bin/perl
require 'cgi-lib.pl';
require 'jcode.pl';
print "Content-type: text/html\n";
print "\n";
%form = &read_input('euc');
$name= $form['name'];
print "$name";
これでなんで何も表示されないのか全くわからん。
ディレクトリ内の「cgi-lib.pl」の名前を変えてみたところサーバーエラーになったらから、
「cgi-lib.pl」の読み込みはちゃんとできていたということになるんだけど。
0043デフォルトの名無しさん
2011/05/27(金) 23:24:08.08これなに
0044デフォルトの名無しさん
2011/05/27(金) 23:27:48.260045デフォルトの名無しさん
2011/05/27(金) 23:37:14.620046デフォルトの名無しさん
2011/05/27(金) 23:49:49.21{} ハッシュパピー
0047デフォルトの名無しさん
2011/05/27(金) 23:56:18.76よーし治……らない! なぜ。
0048デフォルトの名無しさん
2011/05/27(金) 23:59:50.550049デフォルトの名無しさん
2011/05/28(土) 00:00:50.35した結果はどうなる?
0050デフォルトの名無しさん
2011/05/28(土) 00:07:35.230051デフォルトの名無しさん
2011/05/28(土) 00:10:44.02ジャッジメントですの!
0052デフォルトの名無しさん
2011/05/28(土) 00:19:17.65というか
http://www.tiu.ac.jp/~nakabasa/Internet/CGI/cgi4.html
このページの下のほうを参考にしたんで、負ける気がしない!
0053デフォルトの名無しさん
2011/05/28(土) 00:24:03.090054デフォルトの名無しさん
2011/05/28(土) 00:24:44.84use CGI;
my $form = CGI->new;
print $form->param('name');
0055デフォルトの名無しさん
2011/05/28(土) 00:32:24.33もう1度検討を重ねてから出直してきます。
0056デフォルトの名無しさん
2011/05/28(土) 01:20:02.710057デフォルトの名無しさん
2011/05/28(土) 01:28:18.81&read_input('euc');
をやめて
&ReadParse;
にしたらできた。ていうかcgi-lib.plに「read_input」なんて文字列自体存在しなかったぞ。どうなってんだ^o^
0058デフォルトの名無しさん
2011/05/28(土) 02:33:27.610059デフォルトの名無しさん
2011/05/28(土) 05:41:01.870060デフォルトの名無しさん
2011/05/28(土) 07:12:47.44use CGI ':cgi-lib';
%form = Vars;
0061デフォルトの名無しさん
2011/05/28(土) 12:29:11.06でもすでに手作業で移行しますた
0062デフォルトの名無しさん
2011/05/29(日) 03:13:18.36> でもすでに手作業で移行しますた
なってねえな〜「でもすでに」じゃねーだろ
そういう時はウソでも「参考になりました」とか「もっと精進します」とか書いとけよ
0063デフォルトの名無しさん
2011/05/29(日) 03:23:49.620064デフォルトの名無しさん
2011/05/29(日) 04:26:29.99日本語でおk
0065デフォルトの名無しさん
2011/05/30(月) 11:26:36.12Running install for module 'Gtk2'
Running make for F/FL/FLORA/Gtk2-1.223.tar.gz
Has already been unwrapped into directory C:\strawberry\cpan\build\Gtk2-1.223-C10W1L
'C:\strawberry\perl\bin\perl.exe Makefile.PL' returned status 512, won't make
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
なんかこうなるようになっちゃったんですけど
最初からやり直すにはどうしたらいいんざましょ?
0066デフォルトの名無しさん
2011/05/30(月) 13:26:37.32エラーメッセージで
「Gtk2-1.223.tar.gz は C:\strawberry\cpan\build\Gtk2-1.223-C10W1L にもう展開してあるよ!」って言ってるんだから
コマンドプロンプトで C:\strawberry\cpan\build\Gtk2-1.223-C10W1L に移動して、
make
make test
make install
で良いんじゃないの?
0067デフォルトの名無しさん
2011/05/30(月) 14:15:45.270068デフォルトの名無しさん
2011/05/30(月) 21:53:49.88}
この<>はなんですか?
0069デフォルトの名無しさん
2011/05/30(月) 22:06:24.93@ARGVに設定された引数のファイル名の内容を順に1行読むか、引数がない場合は標準入力から読む 、という指定。
I/O Operators in perldoc perlop
0070デフォルトの名無しさん
2011/05/30(月) 22:10:13.37山カッコ演算子。
ダイヤモンド演算子とも呼ばれる。
0071デフォルトの名無しさん
2011/05/30(月) 22:10:56.310073デフォルトの名無しさん
2011/05/30(月) 22:40:02.95ありがとうございます。検索しても記号だと見つからないようなので助かりました。
0074デフォルトの名無しさん
2011/05/30(月) 22:43:00.980075デフォルトの名無しさん
2011/05/31(火) 09:24:40.69暇な人に対するアホな質問です。
昔自分で作った記述ですが、昔すぎて作ってた時の記憶が出てきません。
特定のケースで不備が出る場合とか、そうゆうのを思いついたら教えてください。
処理の目的はどんな文字でも一緒に混ぜても大丈夫、みたいな感じです。
たぶん一般的な通信のヘッダーとかの分解にも使えたような気がします。
sub Separator_join ($$;@) {
my $separat = shift or return();
my $enclose = shift or return();
my @entity = @_ or return();
$separat ne $enclose or return();
map {s/($separat+)/$separat$1/go} @entity;
return( join qq[$enclose$separat$enclose], @entity );
}
#▼Separator_joinで生成されたスカラーに対し、安全にセパレータで分割してリストを返す
sub Separator_split ($$$) {
my ($separat, $enclose, $all) = @_;
my @entity = split /$enclose$separat$enclose/, $all;
map{s/$separat(?!$separat)//go} @entity;
return(@entity);
0076デフォルトの名無しさん
2011/05/31(火) 10:25:46.36007775
2011/05/31(火) 13:01:56.41ありがとうございます。Perlだったか!という感じです。
アルゴリズム的な問題とか、想定範囲の抜け目とか、その変もお願いします。
おかしな事が起きない確証(?)って言うか確信みたいなのが欲しい感じです。
メモリが足りない場合……とか、そうゆう関数に直接関係ないのはいいですけど。
別に暇な人でいいんで、お願いします。
曖昧な記憶ではメールの仕様と同じだったと思うんで、
どんな内容でもデータは壊れないし復元できると信じたい想いなんですが。
0078デフォルトの名無しさん
2011/05/31(火) 13:19:05.51>>4のやり方で、MechanizeでShift_JISのページを取得してファイルに出力したところ、
�@�U�пァが
\x{fffd}@\x{fffd}K\x{fffd}Z〒に
なってました。
0079デフォルトの名無しさん
2011/05/31(火) 13:21:12.040080デフォルトの名無しさん
2011/05/31(火) 13:31:09.93起こりそうとか、メタキャラクタのエスケープしてないぞとか
s///o使ってるので$separatや$encloseを違う文字列で呼んだら
おかしくなりそうとかその辺が突っ込みどころかなぁ。
ちゃんと仕様を残しましょうww
0081デフォルトの名無しさん
2011/05/31(火) 13:47:15.14008275
2011/05/31(火) 15:33:04.61>$separatと同じ文字が$encloseに混じってたりすると嫌なことが
>起こりそうと
考えてみた結果、
$separat = q(/);
$enclose = q(_/);
@entity = (q(_/_/));
これで見事におかしくなる予感がしました。
こんな引数使う馬鹿誰だよ、って少し思いますけど。
一文字限定とか仕様変えてもいいんですが、既存のどっかにバグが出たら嫌なので
重複文字列の全チェック関数を作ります。無駄に重たくなりそうだけど…。
>メタキャラクタのエスケープしてない
仰るとおりです。
>s///o使ってるので$separatや$encloseを違う文字列で呼んだら
>おかしくなりそうとかその辺が突っ込みどころかなぁ。
あれ、関数を再度呼んだらoは初期化されないんですか?
ループの中だけで有効で、スコープ抜けたら初期化される物と勝手に思ってました。
すみません検索してきます。
0083デフォルトの名無しさん
2011/05/31(火) 19:44:13.28decode('cp932',$cp932_char);
decode('utf8',$utf8_char);
とかやってから処理すればいいんですかね?
なんだかどれがどれと一緒なのかわからなくなっとります
0084デフォルトの名無しさん
2011/06/01(水) 15:03:51.07きもちわる
0085デフォルトの名無しさん
2011/06/01(水) 15:57:02.300086デフォルトの名無しさん
2011/06/01(水) 17:39:27.81Mechanizeが悪かったこの野郎!
勝手にデコードしやがって!
寝る
0087デフォルトの名無しさん
2011/06/01(水) 22:32:35.23new{
$obj = {'is_error' => 0};
bless $obj, $pkg;
return $obj;
}
my $test = TEST->new();
if($test->{'is_error'}){〜}
みたいに一々書く必要は無いですよね?(サンプル自体が分かりにくいかもしれませんが・・・^-^;)
0088デフォルトの名無しさん
2011/06/01(水) 23:33:59.13むしろ$test->{is_error}でハッシュを参照するのがよろしくない
0089デフォルトの名無しさん
2011/06/02(木) 00:01:01.82new() or die みたいな書き方を書かれてるってことは、new でエラーを返したい場合は undef を返しても OK という事ですよね?
009082
2011/06/02(木) 00:44:32.99sub test_1{
my $test = $_[0];
my $test2 = 'aabb';
{ $test2 =~ s/$test//og }
print "$test2\n";
}
&test_1("a");
&test_1("b");
いったいこの o の仕様はどうゆうこと。
スコープ抜けてもoは継続されるわ、
myの変数だからサブルーチン呼んだら新しい変数になってるハズなのに、oがそのまま記憶されてるわ、
なんですかこの仕様。
サブルーチンで o 使えないじゃないですか。
Perl作った人は何考えてるんですか。
なんかoを「ここでoを初期化させる!」みたいな記述とかないんですか?
0091デフォルトの名無しさん
2011/06/02(木) 01:05:24.660092デフォルトの名無しさん
2011/06/02(木) 01:14:17.30他のモジュールでも参考にして好きにすりゃいいよ
あとreturnはundefじゃなくて引数なしにしとけ
0093デフォルトの名無しさん
2011/06/02(木) 01:24:31.62http://perldoc.jp/docs/perl/5.10.0/perlfaq6.pod#What32is32o32really32for63
0095デフォルトの名無しさん
2011/06/02(木) 02:07:27.26undef を含む配列となる場合があるから return undef じゃなくて return のみ
書くと良い訳ですね。
ふと思ったけど、たしか関数が何で評価されてるか知る関数ありましたよね?
スカラなら return undef で、配列なら return で返せるといいなぁ。
やっぱ undef をちゃんと返したい (^_^;)
0096デフォルトの名無しさん
2011/06/02(木) 02:18:51.37質問の前に関数一覧ぐらい確認しろ
http://perldoc.jp/index/function
0097デフォルトの名無しさん
2011/06/02(木) 07:00:23.29前日(2011-05-31)と、一週間前(2011-05-25)を求めたい
丁度いいモジュールか計算方法を教えて下さい
0098デフォルトの名無しさん
2011/06/02(木) 07:20:17.600099デフォルトの名無しさん
2011/06/02(木) 07:30:12.77use Time::Piece;
use Time::Seconds;
my $t = Time::Piece->strptime("2011-06-01","%Y-%m-%d");
say ($t - ONE_DAY); # Tue May 31 00:00:00 2011
say ($t - ONE_WEEK); # Wed May 25 00:00:00 2011
>>98
Date::Simple もたしかにいいね
0100デフォルトの名無しさん
2011/06/02(木) 14:14:14.98separator やenclosure 自体のエスケープがないのだから、 $enclose$separat$enclose をそのまま並べた文字列がきたらアウトだろ。
CSVの """" や application/x-www-form-urlencoded の %HH のようなエスケープ処理がないと無理。
0101デフォルトの名無しさん
2011/06/02(木) 15:35:44.19$separatを1つ付け加えることで、$enclose$separat$encloseという並びが
付け加える処理を行った後のデータには含まれてないことが保証されるように
するって考えなわけです。$separatは前処理で少なくとも2回以上の繰り返し
になっているはずなので一つだけなら区切りだとわかるわけだな。
■ このスレッドは過去ログ倉庫に格納されています