1 名前:デフォルトの名無しさん [2012/03/02(金) 14:30:16.30 ] CGI についての質問は板違いです。WEB プログラミング板でどうぞ。 CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。 (WEB プログラミング板: hibari.2ch.net/php/ ) このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 "The duct tape of the Internet" こと、Perl についての質問箱です。 "There's more than one way to do it" ということで、 Perl の奥深さについて皆で語り合い、追求してまいりましょう。 www.perl.org/get.html Download Latest Stable Source (5.14.2) ▼ 前スレ Perlについての質問箱 50箱目 toro.2ch.net/test/read.cgi/tech/1326823096/ リンク集は >>2-3 Perl 日本語処理の基礎の基礎 >>4
2 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:34:28.20 ] [プログラミング自体の経験が無い奴はまずココを読め] Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/ [本] リャマ: ttp://www.oreilly.co.jp/books/9784873114279/ 駱駝: ttp://www.oreilly.co.jp/books/4873110963/ Effective Perl: ttp://www.amazon.co.jp/Effective-ASCII-Addison-Wesley-Programming/dp/4756130577 クックブック: 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/
3 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:35:56.85 ] [モジュール] CPAN.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
4 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:36:29.88 ] # [Perl 日本語処理の基礎の基礎] # このレスは、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 でエンコードする必要があります。
5 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:37:29.65 ] Encodeモジュール (現在のPerl文字コードの標準) search.cpan.org/dist/Encode/ UNICODEでわからなくなったらここを読め perldoc.jp/docs/perl/5.8.1/utf8.pod perldoc.jp/docs/perl/5.10.0/perlunifaq.pod
6 名前:前スレ981 mailto:sage [2012/03/02(金) 17:33:26.84 ] 前スレで右寄せリスト代入をするための方法を募集したものです。 # やりたいこと my ($sensen, $sensyu, $konsyu); ($sensen, $sensyu, $konsyu) = @ARGV if (@ARGV == 3); ($sensyu, $konsyu) = @ARGV if (@ARGV == 2); unshift @ARGV, undef if (@ARGV == 2); my ($sensen, $sensyu, $konsyu) = @ARGV; # 自分 my ($konsyu, $sensyu, $sensen) = reverse @ARGV; # 984さん my ($sensen, $sensyu, $konsyu) = @ARGV[-3, -2, -1]; # 985さん リバースの方法はカッコイイですね!思いつきませんでした。 変数の宣言順とコマンドライン引数の順が変わるのが少し気になりましたが。 添字にマイナスを指定するというのも直接的に右寄せする感じが面白いですね。 皆さんレス有難うございました。
7 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 18:05:12.40 ] my$i=0,$_=$ARGV[--$i]for reverse my($sensen, $sensyu, $konsyu);
8 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 18:11:37.69 ] もっと読みにくくしろや
9 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 18:30:58.70 ] > 変数の宣言順とコマンドライン引数の順が変わるのが少し気になりましたが そもそもの仕様が、必須項目は左に、省略可能なものは右にっていうコマンドライン引数の大原則を外れてることのほうを気にしろよ
10 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:05:00.51 ] いやまあどっちの原則を重視するのかはちょっと気になってた Perl寄りなら必須項目を左に寄せる原則重視だけど 右寄せ重視で書きたい場合もあるのかなと (たいてい左小右大で書かれる数直線的な感じで書きたいとか)
11 名前:10 mailto:sage [2012/03/02(金) 19:06:30.47 ] あっと他の誰かと勘違いされかねない書き方してるな俺 この話題で書き込むのは>>10 が初めて
12 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:31:41.58 ] コマンドラインって基本英語の命令の文法だから それを理解してるかどうかよくわかるw
13 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 20:15:05.01 ] マジかよ、20年以上オプションが前で、ファイルが後ぐらいの感覚しかなかったぜ。
14 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 20:57:46.17 ] コンパイラ言語で自作するのがいいね
15 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:00:45.51 ] perlでCSVを取り扱う時の一番楽そうなライブラリは何ですか "でそれぞれの要素が括られていて、中にコンマが入っていてもok、みたいなパターンの 取り扱いに3秒で挫折したので、いい感じにsplitしてくれるだけでいいんだけど
16 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:08:11.25 ] >>15 まず聞く前に検索したら?マジで。
17 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:09:17.73 ] >>15 Text::CSV Text::CSV_XS のどっちかだね
18 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:22:50.81 ] まあ、その二つしか見つからなかったんだけど、 splitと置き換えるには結構面倒で installしないといけない、->newして->parseして->fieldsしないといけない、 unicodeで渡さないといけない、とかいろいろ きっちりしといた方が後々楽なんだろうけど、 splitと書いた所を、split_csvと書き換えるだけで全部面倒みてくれるような sub split_csv があったら、そっちの方が好きなんだよな
19 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:28:39.52 ] >>18 さすがにそれは自分で書きなよ モジュールで提供してくれるのが一番だけど
20 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:33:22.07 ] 何ていうのかな 楽をしようと思ってライブラリを頼ったのに、楽できない的な CSVくらいなら簡単だからいいんだけど、なんか大規模な作品にぶつかったりして まず勉強から入らないといけない 結果的に出来上がるコードはシンプルなんだけど、 単に大部分のオプションがデフォルトでいいと判ったからシンプルになってるだけで、 背景に膨大な知識が要る、みたいな
21 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:33:56.66 ] > installしないといけない もうPythonでも使ってろよと
22 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:35:49.77 ] >>20 ツイッターでやれ
23 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 21:06:03.91 ] >>2 Effective Perlはperl4の時代の本だよね これのperl5バージョンみたいなの無いの
24 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 21:55:22.04 ] >>23 Perl5の時代の本です。
25 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 23:46:52.88 ] あ、ほんとだ 普通に4の本だと思って読んでた
26 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 00:06:47.26 ] >>20 そんな君には詳説正規表現がおぬぬめ。 楽をしたいなら購入するがいい。
27 名前:デフォルトの名無しさん [2012/03/04(日) 03:50:08.60 ] >>20 ↑ 何このゴミ 何で2chをブログ代わりに使ってるの?
28 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 10:49:56.72 ] >>27 ↑ 何このゴミ 何で2chをブログ代わりに使ってるの?
29 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 11:43:27.43 ] 今日は何故か下痢が酷かった 昨日食べたかっぱ寿司か、ワインか、つまみの鶏肉のどれかが怪しい 鶏肉は同じもの昨日も食ったから急に悪くなるとは考えにくいし、 ワインはそんな腐るようなものでもないから、やはり寿司か
30 名前:デフォルトの名無しさん [2012/03/04(日) 13:05:33.36 ] >>28 ↑ オウム返ししたいだけで わざわざレス消費するこういうゴミって必ずいるよね
31 名前:デフォルトの名無しさん [2012/03/04(日) 14:11:30.69 ] 膨大な桁数の計算をする時にはどういう感じでやればいいですか? 3.987......e+47みたいになるので、 それの回避方法です。 いいアルゴリズムないですか?
32 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 14:17:57.69 ] >>31 www.google.co.jp/search?client=ubuntu&channel=fs&q=perl+%E8%A8%88%E7%AE%97+%E6%A1%81&ie=utf-8&oe=utf-8&hl=ja
33 名前:31 [2012/03/04(日) 14:50:58.20 ] >>32 アルゴリズムの書いてあるページ貼れやゴミ
34 名前:デフォルトの名無しさん [2012/03/04(日) 14:51:33.30 ] >>32 超サンキュウです。
35 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 15:03:10.21 ] >>33 自分で探せよハゲ ttp://bossdonreader.naganoblog.jp/e870763.html
36 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 16:26:08.36 ] >>30 ↑ オウム返ししたいだけで わざわざレス消費するこういうゴミって必ずいるよね
37 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 16:52:08.90 ] 本当にオウム返しきたw 頭悪そうw まさにゴミwww
38 名前:デフォルトの名無しさん [2012/03/04(日) 20:02:40.09 ] 馬鹿には無理
39 名前:デフォルトの名無しさん [2012/03/06(火) 01:52:18.29 ] クソスレ
40 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 01:52:35.45 ] 馬鹿には馬鹿
41 名前:デフォルトの名無しさん [2012/03/06(火) 05:14:48.30 ] うるさいゴミ
42 名前:デフォルトの名無しさん [2012/03/06(火) 16:05:48.69 ] バーカ
43 名前:デフォルトの名無しさん [2012/03/06(火) 16:06:42.71 ] >>33 しね
44 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 18:11:49.23 ] 生きる!
45 名前:デフォルトの名無しさん [2012/03/06(火) 18:57:42.01 ] ↑ ゴミ
46 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 20:22:36.52 ] またどうしようもないカスが貼りついてんのか
47 名前:デフォルトの名無しさん [2012/03/06(火) 22:14:15.40 ] >>46 =どうしようもないカス
48 名前:デフォルトの名無しさん [2012/03/06(火) 22:28:48.33 ] 失せろよ池沼
49 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 02:46:48.98 ] >>46 よう、カス
50 名前:デフォルトの名無しさん [2012/03/07(水) 03:05:21.22 ] 頭の悪いヴァカが住み着いてるな
51 名前:デフォルトの名無しさん [2012/03/07(水) 12:06:33.78 ] ケツ毛の処理方法を教えてください
52 名前:デフォルトの名無しさん [2012/03/07(水) 14:12:39.71 ] うるさいゴミ
53 名前:デフォルトの名無しさん [2012/03/07(水) 17:35:17.78 ] chompはマルチコアに対応していますか?
54 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 20:19:56.54 ] モンゴリアンchomp
55 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 20:23:18.35 ] カトchomp にしてもラクダ新版が出たというのにこの荒れっぷりは
56 名前:デフォルトの名無しさん [2012/03/07(水) 20:42:58.11 ] 「P」と「H」の両方を含む言語は大抵ゴミ 例) PHP HSP Python
57 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 21:08:45.67 ] >>56 Pythonいいんじゃないの? HSPは、どうかしらんけど。 PHPはキャラかぶってる。
58 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:12:04.62 ] Net::Nslookupでダウンしたサーバーに nslookupすると固まるのですが どうやってタイムアウトさせるのでしょうか? サーバーがダウンしてるか確認したいのですが
59 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:27:02.86 ] systemでping
60 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:30:23.36 ] 1人雇った
61 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:58:36.40 ] ソース読むと$TIMEOUTって変数があるから、適当に設定しとけばいいんじゃないの。 Windows以外なら動作するように見える。
62 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:59:25.73 ] 何入れても1分も待たされる ソースに書いてもダメみたい
63 名前:デフォルトの名無しさん [2012/03/08(木) 01:04:39.63 ] マジで馬鹿しかいない
64 名前:61 mailto:sage [2012/03/08(木) 01:40:39.28 ] >>62 デフォルトで15秒だから、他に何か問題があるんじゃないの? 試してみたらちゃんと動作したし。
65 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:51:11.95 ] つまりWindowsでは、この方法は無理なのか
66 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 07:10:05.69 ] バッチファイルとリダイレクトさいこう 巣に帰りました
67 名前:デフォルトの名無しさん [2012/03/08(木) 15:19:59.97 ] クズだな
68 名前:デフォルトの名無しさん [2012/03/08(木) 15:42:45.77 ] Programming Perlの新しいのが出るらしいけどお前たちは買いますか? www.amazon.co.jp/dp/0596004923/
69 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 15:45:28.75 ] 日本版じゃねーじゃん
70 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 16:03:34.06 ] sub read_file1 { local $/ = ""; <$_[0]>} sub read_file2 { local $/ = ""; my $fh = $_[0]; <$fh>} print read_file1("test.txt"); # ->GLOB(0x10063af0)と出力される print read_file2("test.txt"); # ->ファイル全体が正常に出力される なぜ1の方法ではうまくいかないのでしょうか?
71 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 16:06:27.75 ] すみませんコード部下二行、間違えていました。訂正です。 open my $fh, "<", "test.txt"; print read_file1($fh); print read_file2($fh);
72 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 16:34:13.01 ] >>71 perlopに書いてある 山括弧の中の文字列がファイルハンドルでもファイルハンドル名、型グロブ、 型グロブリファレンスの いずれかが入った単純スカラ変数でもなければ、 グロブを行なうファイル名のパターンと解釈され、 コンテキストによって ファイル名のリストか、そのリストの次のファイル名が返されます。 この区別は 単に構文的に行われます。 <$x> は常に間接ハンドルから readline() しますが、 <$hash{key}> は常に glob() します。 $x は単純スカラー変数ですが、$hash{key} は違う(ハッシュ要素)からです。 <$x > (余分な空白に注意) ですら readline($x) ではなく glob("$x ") として扱われます。
73 名前:71 mailto:sage [2012/03/08(木) 17:03:05.36 ] >>72 レスありがとうございます。 あぁ、ラクダ本で何かそういった記述を呼んだ記憶があります。たしかこんな文面の、 行入力演算子<>の中に変数以外のものを置くと突然変異して別の演算子になる。:グロブ演算子 配列の要素も置けなかったとは読み解けませんでした。 $_[0]はグロブすべきファイル名パターンとして解釈されたのですね。 少し紛らわしいと思います。 代替法としては・・ <$foo>をブログとして解釈させるために<${foo}>とすることができるようですが その逆、<$_[0]>をブログではなく行入力として解釈させることは出来ないようです。 >>71 のように一度別の容器に入れるしかないのでしょうか。
74 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 17:07:44.21 ] ブログ?
75 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 17:16:17.47 ] >>73 readline使えばいいと思うよ
76 名前:71 mailto:sage [2012/03/08(木) 17:23:37.36 ] >>74 ブログでした・・・ >>75 なるほど!ばかですね私ってw うまく動きました。ありがとうございます。 ~/work $ perl test.pl sub read_file1 { local $/ = ""; readline($_[0])} sub read_file2 { local $/ = ""; my $fh = $_[0]; <$fh>} open my $fh, "<", "$0"; print read_file1($fh); #print read_file2($fh); __END__
77 名前:デフォルトの名無しさん [2012/03/08(木) 17:56:17.05 ] ファイルロックについていろいろ試したけど ロックをしないで ファイルを読み込み中に書き込みするとデータが壊れる 書き込み中に読み込みしても壊れるが 読み込み中に読み込みしても壊れないということがわかった これらを考慮してファイル読み込み中は書き込みのみロック ファイル書き込み中は読み込みと書き込みの両方ロックするのが一番いいのである。
78 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 17:59:29.00 ] 何十年前の話題だよ
79 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 18:03:56.39 ] fcntlの範囲ロックは未来の技術
80 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 18:25:40.22 ] PCDOSの話か
81 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 19:02:20.23 ] $cond = "t"; $cond ? $hoge = "aiueo": nop; ↑これはいけるけど ↓これはいけないんだね $cond = ""; $cond ? nop: $hoge = "aiueo";
82 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 19:41:49.01 ] flock
83 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 19:54:16.81 ] >>81 perldoc.jp/docs/perl/5.10.0/perlop.pod#Operator32Precedence32and32Associativity > 右結合 ?: > 右結合 = += -= *= などの代入演算子 $cond = ""; ($cond ? nop : $hoge) = "aiueo"; nopが変数じゃないからエラー。
84 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 23:09:14.97 ] nopが変数じゃないからエラーじゃないから。
85 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 23:25:47.31 ] nopが変数じゃないからエラーじゃないからじゃないから。 ↓ノーエラー $aho = 84; $cond = ""; $cond ? $aho: $hoge = "aiueo";
86 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 23:33:10.23 ] 有効な左辺値を返すのか。知らなかった。
87 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 23:39:18.06 ] undef や lvalue sub のように左辺値として有効な何かであれば変数である必要はない。
88 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 23:59:15.46 ] >>87 さすがにundefはエラーを吐く。 代入可能(左辺値として妥当)な何かであればいいけど。
89 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:06:58.84 ] undef はダメだけど () や (undef) なら妥当だね。 1 ? undef : $dummy = 'aiueo'; は通らないけど、 (1 ? undef : $dummy) = 'aiueo'; は (undef) = 'aiueo' になるので通る。 my @a = "a".."z"; 1 ? $foo : $bar = @a; say $foo; #=> 26 (1 ? $foo : $bar) = @a; say $foo; #=> a
90 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:11:02.22 ] 1 ? undef : $dummy = 'aiueo'; は通らないけど、 (1 ? undef : $dummy) = 'aiueo'; は (undef) = 'aiueo' になるので通る。 これで意味が変わるのか? やっぱ、クソだわ。
91 名前:デフォルトの名無しさん [2012/03/09(金) 01:20:08.26 ] flockが使えない環境用にmkdirで書き込みのみロックと読み込みのみロックと両方ロックのを作った 作るのにまる3日もかかった
92 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:32:13.34 ] >>89 それは条件部が定数だからコンパイル時に (undef) = 'aiueo': へ最適化されて リストへの代入になるからたまたま通るだけで、 ($ARGV[0] ? undef : $dummy) = 'aiueo'; のように変動する条件なら $ARGV[0] ? undef : $dummy = 'aiueo'; と解釈され、 $ARGV[0] が真の時に undef = 'aiueo' をやろうとして実行時エラーになる。
93 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 04:55:27.45 ] じゃあ (($ARGV[0] ? undef : $dummy)) = 'aiueo'; なら通ったりするのかな?外側のカッコも最適化されてなかったものにされるのかな? それって処理系依存な動作だったりしないのかな?
94 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 06:00:11.78 ] >>93 > perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for MSWin32-x86-multi-thread (with 1 registered patch, see perl -V for more detail) ... > perl -MO=Deparse -e "(($ARGV[0] ? undef : $dummy)) = 'aiueo'" $ARGV[0] ? undef : $dummy = 'aiueo'; -e syntax OK > perl -MO=Deparse -e "1 ? undef : $dummy = 'aiueo'" undef = 'aiueo'; -e syntax OK > perl -MO=Deparse -e "(1 ? undef : $dummy) = 'aiueo'" (undef) = 'aiueo'; -e syntax OK
95 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 01:25:39.95 ] >>91 まさか今週の話じゃないよな?
96 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 01:47:59.87 ] >>68 今日届いた。らくだ本は青くなってからだじゃれが減ってつまんないよ。 版が上がってますますそう感じる。それともおいらのセンスがないのかな。
97 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 12:50:05.11 ] 日本語の第四版持ってるけどどんな所が改訂されたんだろう
98 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 12:51:35.46 ] >>97 ラクダの右足踏み込みが2ドット深くなってます。
99 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:22:01.47 ] 翻訳されたのが出るのは何年後?
100 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:35:25.50 ] 2年後でしょうね。 その頃はPerl5.18なので、脚注で補われるかと。
101 名前:デフォルトの名無しさん [2012/03/10(土) 18:10:37.59 ] このようにmkdirでロックを作っているのですが if(mkdir("write.lock",0755)){ } #(ここの隙間) if(mkdir("read.lock",0755)){ } このように読み込みのロックと書き込みのロックの隙間に別のプロセスが入り込んで read.lockを作ってしまわないようにするにはどうしたらいいんですか?
102 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 18:13:12.98 ] >>101 ちょっと意味が分からないけど、 if (mkdir("read.lock", 0755) && mkdir("write.lock", 0755)) って事? どういう事情で読み込み用と書き込み用で2つもロック用ディレクトリ作ってるの?
103 名前:デフォルトの名無しさん [2012/03/10(土) 18:46:08.41 ] >>102 まあそういうことだけど 2つロック作る理由は 書き込みページ(kakikomi.cgi) 1:ファイルロック 2:ファイル読み込み 3:データ加工 4:書き込み処理 5:ファイルロック解除 読み込んで表示するページ(hyouzi.cgi) 1:ファイルロック 2:読み込み 3:表示 4:ファイルロック解除 1つロックだとkakikomi.cgiの処理が終わるまでhyouzi.cgiがsleep待ちというのはいいのですが 問題はhyouzi.cgiの処理が終わらないと他のhyouzi.cgiがsleep待ちになってしまって観覧数が増えると重くなると言うことです すなわちhyouzi.cgiは書き込み禁止ロックだけかけて読み込みはできるというようにしたいのです。
104 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 18:58:20.53 ] DB使えばいいじゃん。 ってこれ言ったらおしまい?
105 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 19:01:20.97 ] >>103 たとえば、kakikomi.cgiやhyouzi.cgiが書き換えたり参照したりするファイルがdata.logだった場合、 kakikomi.cgiで、 ロックして書き出しの時にtmpファイルへ書き出し、 書きだしたtmpフィアルをdata.logへリネーム ロック解除。 hyouzi.cgiは、ただ読み込むだけならロック無しで読み込み。 これならどう
106 名前:デフォルトの名無しさん [2012/03/10(土) 19:10:04.23 ] hyouzi.cgiの読み込み中にrenameでdata.logの中身が変わると 読み込みが中断されたりしないのかな?
107 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 19:58:17.03 ] renameがアトミックかどうかはOS依存。 ぶっちゃけ※Windowsを除く。 つか板違い。
108 名前:デフォルトの名無しさん [2012/03/10(土) 20:15:05.94 ] 答えられなくなってきたので板違いと言って追い出すことにしました
109 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 20:18:36.62 ] >>1 とはなんだったのか
110 名前:デフォルトの名無しさん [2012/03/10(土) 21:24:22.36 ] >>1 =アトミック
111 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 05:44:09.90 ] 1 Apple 2 Orange 3 Banana : のような 番号-文字列 で構成されたデータがあり、各データは1:1かつユニークであることが保証されます。 (1つの番号に複数の文字列が指定されていたり、逆に複数の番号でAppleが割り振られていたりはしません) 番号←→文字列の相互参照をさせるとき、どのようなデータ構造にするのがスマートでしょうか? とりあえずユニークであることの保証はデータベースに丸投げして、 Perl側で必要な部分だけ取得し、2つのハッシュ(片方は配列でもいいかも)に突っ込むという形を考えています。
112 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 08:01:20.38 ] >>111 perldoc.jp/docs/perl/5.10.1/perlfaq4.pod #!/usr/bin/perl -w use strict; my @data = split /\n/, <<'EOD'; 1 Apple 3 Orange 5 Banana EOD # 番号が密で番号から文字列を引く処理が主なら配列 my @n2s; /([0-9]+) (.+)/ and $n2s[$1] = $2 for @data; print $n2s[3], "\n"; # Orange # 文字列から番号を引く処理が主ならハッシュ my %s2n; /([0-9]+) (.+)/ and $s2n{$2} = $1 for @data; print $s2n{'Orange'}, "\n"; # 3 # 番号が疎だったり両方の処理が必要ならハッシュ my %n2s = reverse %s2n; print $n2s{'1'}, "\n"; # Apple # 計算量を気にしないなら毎回検索 use List::Util qw(first); print first { defined $n2s[$_] && $n2s[$_] eq 'Banana' } 0..$#n2s; # 5 __END__ あとはこの手の処理をブラックボックスの中でやってくれるモジュールを探すなり、 それこそデータベースを使えって事になると思うよ。
113 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 09:51:41.13 ] >>112 サンクス! 実際に運用してみないと分からないけど、文字列→数字への参照の方がクリティカルになりそうなので、 2番目か3番目でやってみる! 試作段階では参照もDBに任せてたんだけど、ちょっと負荷が大きかった(´・ω・`) まあ、まだ最適化やら何やらする前ってのもあるだろうけどね。
114 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 14:11:39.48 ] 綺麗なコードだ・・・>>112 どうすればこんなコード書けるようになるんだろう
115 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 18:19:22.10 ] >>114 perldocちゃんと読んでる?
116 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 22:06:00.97 ] ほとんど読んだことない。どんな時に読むものなのか分からない。
117 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 22:32:57.14 ] ていうかどこから読んでいいのかわからない
118 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 01:09:47.82 ] CGIならKENT本もいいよ
119 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 01:10:49.42 ] どこらへんを綺麗と思ったのか知らんけど、読んどいて損は無いよ。 strictプラグマは使うべき? perldoc.jp/docs/perl/5.8.0/perlstyle.pod 後置のfor、修飾子 perldoc.jp/docs/perl/5.8.8/perlsyn.pod#Statement32Modifiers $_, $1, $2とかの定義済み変数や__END__のリテラル perldoc.jp/docs/perl/5.6.1/perlvar.pod 変数展開しないヒアドキュメント(かなり下の方だけど) perldoc.jp/docs/perl/5.14.1/perlop.pod#Quote32and32Quote-like32Operators ハッシュのキーと値をひっくり返すreverseのイディオム perldoc.jp/func/reverse
120 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 01:23:22.93 ] わざわざありがとう。個々の要素要素については分かるんだが、 全体通した時に上手に組み合わせて書くな、書き慣れてそうだなと思った。 もっと読みたい。
121 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 15:37:11.44 ] opendir my $DH, $dir or die "$dir : $!"; すると「リストを返してるのに括弧が無い」というような warning が出る。 Parentheses missing around "my" list at ... opendir my ($DH) なら怒られないけど 何故 opendir の dirhandle はリストになってるの? もしくは、リストになっていると何が出来るようになるの?
122 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 16:40:31.96 ] 警告が出ないから分からん。
123 名前:デフォルトの名無しさん [2012/03/14(水) 00:45:35.55 ] >>121 その警告は my $foo, $bar のように書いたときに出る。この場合、 my($foo), $bar と見なされるから意図している動作と違うのでは? と。 典型的な例としては、my $foo, $bar = @hoge とか。 最近のバージョンだとこの動作を意図して書いているところでは 警告が出なくなっているんだと思う。多分。
124 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 06:01:58.25 ] 「拒載韓国人(韓国人の乗車拒否)」こんな文字が台湾のタクシーに貼られていることが分かった。 韓国のインターネット上で、大きな話題を呼んでいる。 12日、韓国のコミュニティーサイトに「台湾のよくあるタクシー」「台湾の反韓感情」などのタイトルで、 台湾のタクシーの写真が投稿された。写真には女性がタクシーに乗車しようとしている場面が映っており、 開いたタクシーの窓には「拒載韓国人、NO KOREAN PASSENGER」という韓国人の乗車を拒否する文字が書かれていた。 この写真がネット上で広まると、多くの韓国人ネットユーザーが台湾タクシーの対応に反発。 「台湾はそんなに韓国人が嫌いなのか?」「私も台湾が嫌いだ」「幼稚だ」などのコメントが殺到した。 中には、「外国ではマナーを守ろうよ」「海外でK-POPや韓流は人気だけど、韓国人の市民意識のレベルはまだまだ低い」 といった意見や、「日本はほかの国々から好かれているからうらやましい」「台湾は日本が好きだよな」 「台湾は日本に植民地支配を受けたのになぜ親日なのだろう」などと日本と台湾の関係について議論する韓国人ユーザーらもいた。 韓国メディアによると、台湾内の反韓感情は、韓国が中国と国交を結んだのを機に高まった。 2004年に台湾の1人あたりのGDPが韓国を追い越した頃から、反韓感情は強まりをみせているという。 news.livedoor.com/article/detail/6364207/ image.chosun.com/sitedata/image/201203/12/2012031201423_0.jpg
125 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 08:03:53.62 ] PerlでMySQLを叩く時、今まで通りに 文字化け防止で$dbh->do("set NAMES sjis"); とやっていたのですが、新しくデータベースを作成し、そこでinsert文を作成したら Can't call method "do" on an undefined value とエラーが表示されます。 何が原因か分かる方いませんか
126 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 08:37:21.86 ] >>121 よく見たら警告の出る所では or die ... の部分を省いてた。 つまり単に opendir my $DH, $dir; と書いてた。後付でゴメンね。 >>123 なるほど dirhandle 云々じゃなくて、 my $DH, $dir の部分がリストなのでは?と警告されてるのか。 open my $FH, '<', $filename; の時はこの警告が出ないから気づかなかった。 つまり open のときはイディオムとして処理されてるのか。
127 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 08:39:35.46 ] >>125 もしかして use DBI;
128 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 08:51:24.56 ] >>127 ちゃんと記入しています。 SELECT文の時は何も問題なく接続できますが、INSERT文になるとなぜかエラーがでます。
129 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 09:00:18.46 ] 一番怪しいのは、 その手の常套句であり頻出語の筆頭である 「いままでどおりに」 その時から行った「今まで通り」の手順に何らかの問題がある
130 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 09:57:26.72 ] >>125 だから、undefined value なんだろ。$dbh が。 >>126 opendir my $dh, "$dir" でもいいはず。
131 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 11:14:45.42 ] >>130 本当にごめんなさい。 自分の頭の中では $sth = $db->do("set NAMES sjis"); とやってるつもりだったのに・・・ $dbh->do("set NAMES sjis"); なんでこんな書き方してるんだ・・・・・・
132 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 11:35:25.51 ] 質問です。 DBI.pm、DBD::Pg.pmのソースを見たのですが、 DBIのメソッドexecuteはどこで定義されているのでしょうか?
133 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 12:25:54.68 ] >>130 あ、はい。それでようやく分かった。 open my $FH, '<', $filename; は間に '<' が挟まるから リストの宣言とは解釈しようがないわけね。 どうもありがとー。
134 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 13:03:22.52 ] パーサーがコンテキスト読みすぎで 文法が無駄に複雑
135 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 15:39:57.40 ] 初歩的な質問でごめんなさい %hashの添え字をスカラー変数名に自動的に置き換えるにはどう言う風に組んだら良いのでしょうか? 例 $hash{hoge} $hash{moge} $hash{poge},,,,,, これを $hoge $moge $poge........ と言う風にしたいのですが、初心者すぎて手作業でしか出来ませんでした。
136 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 17:12:18.38 ] こういうこと? $text = <<'HERE'; $hash{hoge} $hash{moge} $hash{poge} HERE $result = ""; while ($text =~ /{(.*?)}/g) { $result .= "\$$1 "; } print $result;
137 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 17:30:14.63 ] my $keys = [ qw(a b c) ]; my $values = [ qw(apple banana chocolate) ]; my $hashref = {}; @{%$hashref}{@$keys} = @$values; print $hashref->{a}, "\n"; perl v5.8.9で実行すると apple と表示されるのですが、 perl v5.10.1ではエラーになります。 Can't use string ("0") as a HASH ref while "strict refs" in use at 〜〜. perl v5.10.1でもappleと表示されるようにするにはどうすればいいのでしょうか?
138 名前:137 mailto:sage [2012/03/14(水) 17:48:44.70 ] 自己解決 #@{%$hashref}{@$keys} = @$values; @{$hashref}{@$keys} = @$values;
139 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 18:02:18.49 ] >>136 ありがとうございます。 whileと正規表現を使えばいいんですね。 ありがとうございました。
140 名前:デフォルトの名無しさん [2012/03/14(水) 18:40:58.63 ] socket通信のプログラムを書いていますが、 オブジェクトを送信して、受信側でオブジェクトを参照しようとすると HASH(0x00)みたいになって参照できないのですが、 何か対処方法はありますか? 以上、よろしくお願いします。
141 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 18:44:14.61 ] コードも無しに対処法とは…… 俺らのことをもしかしてエスパーか何かだと思ってる?
142 名前:デフォルトの名無しさん [2012/03/14(水) 19:10:21.40 ] うーん。会社から2chに繋がらないのです。 明日USB経由でコードを持ってきて出直します。
143 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 19:11:13.76 ] それはそれでいいのかw ・・・まぁ原因部分だけならあれか
144 名前:エスパー魔美 mailto:sage [2012/03/14(水) 19:44:43.13 ] >>140 オブジェクトをそのままファイルに保存出来ないのと同じ理由。 Storable、Data::Dumper、JSON などでシリアライズして送信すると良いかも!
145 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 19:45:26.17 ] 会社って…… だーーーーーれも教えてくれないの???
146 名前:デフォルトの名無しさん [2012/03/14(水) 19:51:08.42 ] >>143 やっぱりわかっていそうだw 送信が print $socket $obj 受信が、 my $msg = <$client_socket>){ みたいな感じで、 chomp( $msg); $obj = $msg; $obj->show_hoge; ↑HASHがうんたらって出てくる。 多分、分かる人はすぐに分かる問題だと思うけど。
147 名前:デフォルトの名無しさん [2012/03/14(水) 21:56:16.89 ] >>144 了解。 ありがとうございます。
148 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 22:27:17.94 ] >>145 教えてくれる人がいる方が珍しい 大抵は孤独に独学だよ
149 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 22:59:40.11 ] >>132 DBI::DBD::SqlEngine::st::execute SqlEngine.pmの773行目あたり >>137 素直にList::MoreUtils使わん? use List::MoreUtils qw/zip/; my $keys = [ qw(a b c) ]; my $values = [ qw(apple banana chocolate) ]; my $hashref = +{ zip @{$keys}, @{$values} }; print $hashref->{a}, "\n"; >>146 show_hogeがcoderefだからそのまんまじゃシリアライズしてもダメかもね。 データだけ渡してロジックは受け側が持っとかないと。
150 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:24:05.58 ] Perl6はいつリリース予定ですか?
151 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:52:28.92 ] クリスマス
152 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:56:23.47 ] Digest-SHA-PurePerl-5.71でprint sha512(hoge);が出力されないのはなぜか教えてもらえませんか? ? sha256やsha1は出力されるのに。。
153 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 00:20:03.00 ] >>145 わかるわー 会社で聞くと、おめーそんなこともわからねーのかふざけんなって、居眠りばかり してるおっさんプログラマーに怒られる
154 名前:エスパー魔美 mailto:sage [2012/03/15(木) 02:34:00.68 ] >>152 エラーメッセージは出た? 手元の環境では動くようだけど。 # This is perl 5, version 12, subversion 3 (v5.12.3) built for darwin-multi-2level perl -MDigest::SHA::PurePerl=sha512 -e 'print sha512("hoge")' perl -MDigest::SHA::PurePerl=sha512_hex -e 'print sha512_hex("hoge")'
155 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 07:33:49.40 ] >>154 さん ありがとうございます エラーはでません。指示頂いたやりかたで試してみます。 【ソース】 use lib '../module'; use Digest::SHA::PurePerl qw(sha1 sha256 sha256_base64 sha512 sha512_base64); print sha256 (a); print "\n"; print sha256_base64(a); print "\n"; print sha512(a); print "\n"; print sha512_base64(a); 【結果】 C:\Perl\work>sha.pl ハ浴ハスハツ1ウ・ワMァ・・|Nrケw・dサ ypeBEsobvcr6wjGzmiPcTaeG7/gUfE5yuYB3ha/uSLs C:\Perl\work>
156 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 14:39:03.11 ] use Digest::SHA::PurePerl; my $state = Digest::SHA::PurePerl->new(512) or die; 私の環境もこれで死ぬ。 軽くソース追ってみたけど、64bit長の計算ができないと、はねられる模様。
157 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 18:14:15.64 ] __END__以下を一気読みして変数に入れるため以下のようなコードを書きました。 しかし一気読みされずこの様に出力されました。 >[あいうえお >かきくけこ > >] 何故行の区切り文字を無くしたにも関わらず区切られてしまうのでしょうか。 これは仕様なのでしょうか?This is perl, v5.10.1 built for MSWin32-x64-multi-thread $/ = ""; $data = <DATA>; print "[$data]"; __END__ あいうえお かきくけこ さしすせそ たちつてと なにぬねの はひふへほ
158 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 18:56:08.33 ] perldoc.perl.org/perlvar.html You may set it to undef to read through the end of file. Setting to "" will treat two or more consecutive empty lines as a single empty line.
159 名前:エスパー魔美 mailto:sage [2012/03/15(木) 18:56:25.39 ] >>157 perldoc の説明だと分かりにくいけど、"" は "¥n¥n" と似た動作をする。 多分、undef $/; が答え。
160 名前:デフォルトの名無しさん [2012/03/15(木) 19:06:08.11 ] >>157 これって改行が続いていて、そこが終了と認識されているんじゃないの? シングルクオテーションでくくってみたら?
161 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 19:34:13.02 ] いろいろ参考にしてオリジナルアップローダー作ってみたよ。 基本機能は備えて流れにくいと思うけど、至らない部分あるかも。 111.moo.jp/uploda/index.php
162 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 19:41:13.25 ] 噴いた
163 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 20:02:39.92 ] file33.jpg 1234
164 名前:157 mailto:sage [2012/03/15(木) 20:30:21.12 ] >>158 ,159,160 $/ = ""には空行を区切り文字にする、という意味があったのです。 代わりにundefを使うことで目的の動作が実現できました。 ""とundefの二種類があることを活用しているのです。 レスありがとうございました。
165 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:19:56.00 ] パ・パ・パパッパ〜Perlライス
166 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 01:20:27.74 ] >>161 あれ?アドセンスは?
167 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 01:58:25.69 ] sub decimal2binary { my $decimal = shift; my $binary = ""; while($decimal>=1) { $binary = $decimal % 2 . $binary; $decimal /= 2; } $binary; } sub binary2decimal { my $binary = shift; @binary_ary = reverse split //, $binary; my $i = 1; my $result = 0; for(@binary_ary) { $result += $_ * $i; $i <<= 1; } $result; } print binary2decimal(decimal2binary(5184)); #=> 5184 こういう10進数と2進数の変換関数を書いたのですが、もっとクールにしたいです。添削お願いします。
168 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 02:20:19.81 ] >>167 perldoc.jp/docs/perl/5.10.0/perlfaq4.pod#How32do32I32convert32between32numeric32representations47bases47radixes63
169 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 15:10:05.60 ] デバグの時に使うBEGIN{ $| = 1; print "Content-type: text/html; charset=shift-jis \n\n"; open(STDERR, ">&STDOUT"); } は具体的にどう言う動きをするのでしょうか? &STDOUTでエラーを検知したら、 print "Content-type: text/html; charset=shift-jis \n\n"でSTDOUTの中身を書き出すって感じなのかな?と思うのですが、{ $| = 1;は何を指示してるのでしょうか?感緑化されてるようでちょっと意味がわかりませんでした。 初心者ですみません。
170 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 15:16:17.28 ] perldoc嫁ks
171 名前:エスパー魔美 mailto:sage [2012/03/17(土) 16:11:46.46 ] >>169 BEGIN{ # コンパイル時に実行されるブロック (sub BEGIN { ... } と同じ) $| = 1; # STDOUTのバッファリングをオフ print "Content-type: text/html; charset=shift-jis ¥n¥n"; open(STDERR, ">&STDOUT"); # 標準エラー (STDERR) の出力先をSTDOUTと同じにする。 }
172 名前:デフォルトの名無しさん [2012/03/17(土) 18:08:54.19 ] renameが失敗するのはどういう場合ですか?
173 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 18:11:14.44 ] おなじファイルがすでに存在する場合(ファイル名がわるい)
174 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 18:14:57.02 ] >>172 同じ名前のファイルがある場合。 同じ名前のディレクトリがある場合。 変更しようとしているファイルが存在していない場合。 ファイル名を変更する権限がない場合。 別のプログラムがファイルを開いていてロックかけている場合。 名前として有効でない記号などが入った名前の場合。 ウイルスに感染している場合。 OSが不調の場合。 HDDが壊れている場合。 パソコンが壊れている場合。 そういう夢を見ていた場合。 電源が入っていない場合。 電力会社が大変な事になっている場合。 世紀末でメシア待ちの場合。 ヤマト発進後のプロジェクト成功待ちの場合。
175 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 18:36:13.19 ] エラーバリアブル見ろよ。
176 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 18:39:38.88 ] >>172 perldoc.jp/func/rename perldoc.jp/docs/perl/5.14.1/perlvar.pod#Error32Indicators
177 名前:デフォルトの名無しさん [2012/03/17(土) 19:54:51.07 ] >>174 >別のプログラムがファイルを開いていてロックかけている場合 これはflockをしている場合と言うことですか?
178 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 21:00:48.77 ] >>171 ありがとうございます。 $| = 1;をどう検索かけても、検索出来なくて途方にくれてました。 そう言う意味だったのですね。
179 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 21:30:18.96 ] >>177 OSさんがファイルロックしてる事もある flock中にファイル名変えれるかどうかはしらん、試せばいいんじゃない?
180 名前:デフォルトの名無しさん [2012/03/18(日) 03:25:45.75 ] >>178 perl 特殊変数 でggrks
181 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 03:40:58.45 ] perlvar見ればggr必要すらないがな
182 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 10:05:31.14 ] 最近の2ちゃんは略字が多くてわかりづらくなってしまったな 最近常用となってしまった2ch略字 kwsk 詳しく wktk ワクワクテケテケ ktkr キタコレ mjkt マジキチ iksg 今北産業 opop おっぱいおっぱい drum だれがうまいこと言えといった omor お前は俺か morkw またお前らかよw ohh2ckyw お前ら平日の昼間から2ちゃんかよw mjkt マジキチだからやめろ ggrks→これはわからん・・
183 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 10:07:41.42 ] perldocとか使いませんですしおすし 俯瞰出来る.jpはたまに見る
184 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 10:49:58.65 ] >>182 mjktが2通りあるぞ ここまでわかってggrksがなぜわからぬ ネタとしてはあまりにつまらなすぎて意味不明だからマジボケなんだろうけど
185 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 12:15:40.68 ] >>182 「今北産業」「だれうま」「おま俺」「マジキチ」というのが略記であって その一覧はアブジャド系表記にしか見えんが… ggrksはググれカス
186 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 12:16:48.20 ] いや、iksgは流石にアブジャドだけじゃ足らずに略もしてるか
187 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 12:22:50.40 ] ここまでコピペ
188 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:51:39.52 ] iksg イキすぎ
189 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 15:48:41.69 ] 若者のマニュアル離れが深刻。
190 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 15:49:59.80 ] マニュアル離れって・・・そこらのオッサンの方がマニュアル読まないだろうがw
191 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 15:51:49.94 ] さすがにμ即ネタは食いつきが違うな。
192 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 16:09:03.38 ] 待て、マニュアルは使うな!マニュアルは最後の武器だ!
193 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 16:55:36.06 ] マニュアルモード カラ オートメーションモード ヘ イコウシマス
194 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 17:25:33.53 ] 思い込みという脳内マニュウアルが最優先です。
195 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 18:36:54.48 ] その点、Perlはマニュアルがいらないからいいよね。
196 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 00:24:43.92 ] いやだからperldocは見ねえと言ってるだろ!
197 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 13:17:23.74 ] LWP使っています。 javascriptが有効であるかのように振る舞う方法があったら教えてもらえませんか?
198 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 13:42:35.06 ] >>197 search.cpan.org/dist/WWW-Scripter-Plugin-JavaScript/ e8y.net/mag/007-www-mechanize/
199 名前:デフォルトの名無しさん [2012/03/19(月) 15:35:17.24 ] ふつうはopenしてflockしますけど、 これロックファイル無しで一体化できませんかね
200 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 17:23:10.08 ] >>199 OSによっては sysopen で O_EXLOCK か O_SHLOCK が利用できる perldoc.jp/docs/perl/5.10.0/perlopentut.pod#Open32la32C perldoc.jp/func/sysopen
201 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 17:28:02.62 ] >>200 ありがとう おれLinusだから利用できないわ
202 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 22:50:45.14 ] おや、ご旅行ですか?
203 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 23:20:08.53 ] はい www.linuxinsight.com/files/images/linus_thumbs_up_for_windows_7.jpg
204 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 01:04:38.17 ] >>203 やったね!アンディー!
205 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 07:25:17.18 ] ウィキ作った。 書くの手伝って。 goo.gl/OyWRr
206 名前:デフォルトの名無しさん [2012/03/20(火) 07:38:39.74 ] PerlにはRubyでいうyugui本みたいなのはありますか? 思い当たるものがありましたら教えて頂けると嬉しいです _ _
207 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 07:41:31.61 ] リャマ本ってこと?
208 名前:206 mailto:sage [2012/03/20(火) 07:52:02.22 ] >>207 返信ありがとうございます。リャマ本とラクダ本は過去に読んだのですが、 リャマ本はプログラミング初心者を対象としており (プログラミング経験者には記述が冗長で、また仕様が十分に記されていない) ラクダ本は小さく纏まっていない気が私的にはするのです。 Perlの仕様を必要十分に短く簡潔に記述したものが知りたく yugui本という例えを使いました。言葉足らずで申し訳ありません;
209 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 08:45:19.33 ] 小型高速船で未明上陸、韓国人男女7人密航容疑 第7管区海上保安本部(北九州市)と大阪府警は19日、韓国からの密航者や密航の仲介をした 韓国人の男女計7人を入管難民法違反(営利目的の集団密航助長など)容疑で逮捕した、と発表した。 同本部の発表によると、7人は仲介した無職鄭舜晧(42)、ホステス梁英美(46)の両容疑者 (いずれも名古屋市在住)ら。 鄭容疑者は昨年6月30日夕、韓国南部で小型高速船に女性3人(45〜51歳)を乗せ、 同7月1日未明に山口県下関市の小串漁港に不法上陸させた疑い。 梁容疑者は千葉県柏市と大阪市の韓国人女性2人(32、53歳)を同船で出国させるため、 同漁港まで車で運ぶなどした疑い。 女性たちは1人50万〜100万円の報酬を支払っていたという。 同本部は鄭、梁両容疑者は密航請負組織の一員とみている。 大阪府警が昨年10月、不法上陸した3人のうちの1人を不法在留の疑いで逮捕し、集団密航が発覚。 3人はすでに全員逮捕、起訴され、有罪判決を受けた。 (2012年3月19日21時08分 読売新聞) www.yomiuri.co.jp/national/news/20120319-OYT1T00969.htm
210 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 11:44:50.83 ] スレッドを生むスレッドってどーやって作るの?
211 名前:デフォルトの名無しさん [2012/03/20(火) 12:21:20.66 ] perlの処理順番について質問です 1:プロセス1とプロセス2を全くの同じ時間に起動した場合 全く同じ行の全く同じ部分が同時に実行されるのか? 2:プロセス1を先に起動して、その0.01秒後くらいにプロセス2を起動した場合 プロセス1の1行目はプロセス2の1行目より0.01秒はやく実行されるだろうが それ以降の行でもプロセス1の方がプロセス2よりも0.01秒はやく実行されているのか? 例えばプロセス2の100行目がプロセス1の100行目より先に実行されるということはないのか? 教えてください
212 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 12:25:05.64 ] >>211 CPUの数はいくつありますか?(マルチコアですか?)
213 名前:デフォルトの名無しさん [2012/03/20(火) 12:27:53.24 ] >>212 CPUいくつあるかわからないので 1つの場合と複数の場合について教えてください
214 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 12:32:12.48 ] >>211 すべては不定です
215 名前:デフォルトの名無しさん [2012/03/20(火) 18:03:41.46 ] 処理の順番が狂うとうまくいきません yomikomi.cgi y-1:readlockファイルがない場合 y-2:writelockファイルを作る y-3:readlockがあればsleepで待つ y-4:読み込んで表示 kakikomi.cgi k-1:readlockファイルを作る k-2:writelockファイルを作る k-3:sleepで待ってreadlockとwitelockファイルが作成できたら k-4:書き込む 処理の順番がy-1〜y-4,k-1〜k-4となる場合や k-1,y-1,k-2,y-2,k-3,y-3,k-y,y-4となる場合は問題ないのですが yー1とyー2の間にkー1とkー3が割り込んだら ロックができない状態になります どうすればいいんでしょうか?
216 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:17:08.11 ] そういうのはひとつのロックファイルで排他ロックと共有ロックを使う
217 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:52:23.67 ] DB使いなよ。
218 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:09:26.49 ] >>217 バカのひとつおぼえだな
219 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:12:40.39 ] >>218 もしかしてDBまでモダンだと思ってるの?
220 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:17:40.90 ] >>217 =─‐\\‐ /─'''''ニ二\''' |レレゝゝ、\  ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、 <<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\ くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、 くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ, く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、 二─二二彡彡、゙、三三二==くメゝ/ ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_ ‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/:: \''-、メメゝゝゝ_ゝ 、 ,,、ヽヽ 、 ,,,,- ゙彡//ヾ、三二= くゝ/:::.... \>∠レ-,-‐ニ二メヽ''ヽ ノ ゙ヽ、,,,-‐//_///,,、゙、三二= ゙、 ""''' ヽ>//レレヽ,,___ / -,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ. //-ヘヘ,、 レレレレノ さあ願いを言え ''" ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,// ゙ヽフ/|/| レ' どんな願いも聞き流してやろう。
221 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:18:45.87 ] >>220 面白いと思ったの?
222 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:27:35.32 ] ドラゴンボールな、はいはい。
223 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:59:24.98 ] /`゚`ii´゚`ヽ
224 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:20:27.97 ] 米政府 韓国メーカーに不当廉売関税適用へ 米商務省の決定文によると、サムスン電子の冷蔵庫に対しては韓国製に5.16%、メキシコ製に15.95%の同関税を課す。 LG電子については、韓国製に15.41%、メキシコ製に30.34%をそれぞれ課す。 同関税はダンピング(不当廉売)によって、国内産業が被害を受けないよう通常賦課される関税に加え特別に課す税金。 japanese.yonhapnews.co.kr/headline/2012/03/20/0200000000AJP20120320001000882.HTML 【FTA】 米国政府 「サムスンとLGは不当廉売なので関税をもらいます!」 ★2 engawa.2ch.net/test/read.cgi/poverty/1332236917/ 前スレ 【FTA】 米国政府 「サムスンとLGは不当廉売なので関税をもらいます!」 engawa.2ch.net/test/read.cgi/poverty/1332219745/
225 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:58:33.06 ] >>211 , >>215 どうなるかは不定(決まってない、どっちになるか分からない)、としか答えようがないでそ。 どうしても特定の順番で処理させなきゃいけないんなら、 排他ロックを適切にかけながら処理するしかない。 そしてもちろん排他ロックにはアトミックな仕掛けを使わなくてはいけない。 ただそれだけのこと。 DB使えってのはDBMSがそのへんの排他制御を比較的よきにはからってくれるから。
226 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 22:29:23.12 ] flockとかそういう話じゃなくて?
227 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 22:31:28.02 ] flockでもいいんじゃない?使える環境なら
228 名前:208 [2012/03/20(火) 22:32:19.30 ] どなたか宜しければお願いします _ _ perldoc辺りが最善手になるんでしょうか・・・
229 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 22:35:17.84 ] プログラミングの基礎を学びたいのか実戦で効率的にやりたいのかどっち?
230 名前:208 mailto:sage [2012/03/20(火) 23:05:01.65 ] >>229 返信有難う御座います。プログラミングの基礎を学びたいわけではないです。 かといって、実践で(仕事で)使えればそれで良いかと言えば Perlは既に仕事で何度も使っているのでそういう訳ではないです。 Perlの仕様を隅々まで(と言っても限度はありますが 少なくともラクダ本にある程度は)把握したいです。 ですが、ラクダ本をもう一度全て読むのは分量があるので御免被りたいです。 ワガママですみません;
231 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 23:09:53.61 ] >>230 Perlの隅々の仕様の把握ならラクダ本ほど楽な方法も中々ないぞ 一気に読もうとせず、毎日コツコツ読むだけでも随分違うかと 今まで知らなかった仕様を知ることができるかもよ
232 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 23:52:47.86 ] >>230 www.modernperlbooks.com/ Modern Perlはそこそこまとまってた。 ざっくりPDF版を読んでみたら。
233 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:43:36.81 ] 毎日20ページ読むだけで2週間ありゃ読み終わる
234 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:52:29.28 ] 1ページの半分読んで眠くなる
235 名前:デフォルトの名無しさん [2012/03/21(水) 01:08:33.44 ] ディレクトリがあるかどうか調べるとき ディレクトリがない場合というのelseやunlessを使うしか方法はないんでしょうか? elseやunlessはあまり使いたくないんだけど if(-d "test"){ print "ディレクトリがあります"; } else{ print ""ディレクトリがありません; }
236 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:34:57.79 ] not -d
237 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:39:19.27 ] >>230 そんな君にはポケットリファレンスがよかろう
238 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:53:56.47 ] あの青いやつか
239 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 09:40:35.99 ] 痴漢するときに、入力したファイルをそのまま変換するのって どんなオプションでしたっけ
240 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 09:42:10.93 ] 自己解決しました。 やっぱり愛なのね。
241 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 09:53:20.77 ] >>239 ,240 なにうまいこというとんねん!
242 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 10:27:36.31 ] 関数の戻り値を変数に代入する場合、そのまま利用する場合と比較して、メモリは倍必要になるのでしょうか? my $data = large_data(); print $data; print large_data();
243 名前:208 mailto:sage [2012/03/21(水) 11:17:49.63 ] >>231 ありがとうございます!検討してみます。 >>232 まさにこういうの探していました!本当に有り難うございます _ _ みなさん長々とお付き合いありがとうございました _ _
244 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 15:59:42.57 ] >>243 行末の「 _ _」が気になる。なんの暗号だ。
245 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 16:00:40.80 ] >>236 > not -d ! -d を使ってる。理由は忘れた。
246 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 16:06:37.64 ] >>244 m(_ _)m 的なものだと思われる
247 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 16:08:37.06 ] m(_ _)m → m _ _ m → _ _ → ?
248 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 16:33:26.80 ] ( @u@)
249 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 16:42:41.27 ] >>246 >>247 なるほど。Thanks.
250 名前:デフォルトの名無しさん [2012/03/21(水) 19:09:23.68 ] 排他ロックはmkdirを使うやりかたがいろいろ紹介されていますが 共有ロックはflockを使う以外では見たことありません flockを使わないで共有ロックをするのは隙間ができたりして難しいのでしょうか?
251 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 19:26:00.44 ] >>250 別に難しくもなんともないが、mkdirだのあのあたりの方法は プログラムが死んだときにロックしっぱなしになるので 自分では絶対に採用しないな。
252 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 19:32:51.02 ] perldoc.jp/func/exec 'exec' は Perl の組み込み関数ではありません。 え?
253 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 19:37:17.22 ] hint: 404
254 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 21:56:47.17 ] >>252 おいおい知らなかったのかよ
255 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 23:54:25.80 ] シェルの関数でしょ
256 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:33:19.22 ] 最終的にシェルだとかシステムコールにたらい回されるにしたって、 perlfuncに載ってるexecはPerlの組み込み関数でしょ。 perldoc.jp/index/function execのほかにforkやexitもだけど、リンクはあるのにクリックすると組み込み関数じゃありませんってのはおかしいので何かの手違いだろう。
257 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:38:24.69 ] perldoc.jp/func/adelic 手違いっぽいね
258 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:41:59.19 ] そりゃあ簡単だ forkなんてUNIXの方の機能じゃん だからperlのモンじゃあない execもexitも同じ、perlの組み込みじゃない
259 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 01:02:12.03 ] 手違いというより単に翻訳済みのドキュメントがないってことでしょ
260 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 01:44:20.59 ] >>258 システムコールforkをPerlから呼ぶためにはPerlの組み込み関数forkが必要だろ。 それに、perlはUNIXだけのモンじゃあない。Perlの関数forkは非UNIXではそれに応じた動作をしなけりゃならない。 >>259 perldoc.jp/perlfunc からは見れるからやっぱり手違いだろう。
261 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 01:52:16.27 ] んじゃそっちからこっちへアップデートされてないってことで