- 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つもロック用ディレクトリ作ってるの?
|

|