CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板: http://kohada.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.18.2)
▼前スレ
Perlについての質問箱 61箱目
http://toro.2ch.net/test/read.cgi/tech/1381561905/
Perlについての質問箱 62箱目
http://toro.2ch.net/test/read.cgi/tech/1385039352/
探検
Perlについての質問箱 63箱目
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2014/02/19(水) 23:36:23.292デフォルトの名無しさん
2014/02/19(水) 23:37:34.89 【本】
初めてのPerl 第6版(リャマ)[2012年07月 発行]
http://www.oreilly.co.jp/books/9784873115672/
続・初めてのPerl 改訂第2版 [2013年08月 発行]
http://www.oreilly.co.jp/books/9784873116280/
マスタリングPerl [2009年03月 発行]
http://www.oreilly.co.jp/books/9784873113975/
もっと自在にサーバを使い倒す 業務に役立つPerl [2012年4月11日発売]
http://gihyo.jp/book/2012/978-4-7741-5025-3
モダンPerl入門 [2009/2/10]
http://www.amazon.co.jp/exec/obidos/ASIN/4798119172/secodezine-22/
モダンPerl入門 増補改訂版(仮)[2014年1月予定]
http://codezine.jp/book/modernperl2
Perl CPANモジュールガイド [2011/4/8]
http://www.amazon.co.jp/dp/486267108X
【オンラインマニュアル】
最新のドキュメント: http://search.cpan.org/dist/perl/
perldoc.jp: http://perldoc.jp/
perldoc.perl.org: http://perldoc.perl.org/
初めてのPerl 第6版(リャマ)[2012年07月 発行]
http://www.oreilly.co.jp/books/9784873115672/
続・初めてのPerl 改訂第2版 [2013年08月 発行]
http://www.oreilly.co.jp/books/9784873116280/
マスタリングPerl [2009年03月 発行]
http://www.oreilly.co.jp/books/9784873113975/
もっと自在にサーバを使い倒す 業務に役立つPerl [2012年4月11日発売]
http://gihyo.jp/book/2012/978-4-7741-5025-3
モダンPerl入門 [2009/2/10]
http://www.amazon.co.jp/exec/obidos/ASIN/4798119172/secodezine-22/
モダンPerl入門 増補改訂版(仮)[2014年1月予定]
http://codezine.jp/book/modernperl2
Perl CPANモジュールガイド [2011/4/8]
http://www.amazon.co.jp/dp/486267108X
【オンラインマニュアル】
最新のドキュメント: http://search.cpan.org/dist/perl/
perldoc.jp: http://perldoc.jp/
perldoc.perl.org: http://perldoc.perl.org/
2014/02/19(水) 23:38:16.54
[少し古めの良書]
プログラミングPerl 第3版 VOLUME 1,2(駱駝)[2002年09月 発行]
http://www.oreilly.co.jp/books/4873110963/
http://www.oreilly.co.jp/books/4873110971/
Perlクックブック 第2版 VOLUME 1,2 [2004年09月 発行]
http://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス [2006年08月 発行]
http://www.oreilly.co.jp/books/4873113008/
Perl Hacks [2007年01月 発行]
http://www.oreilly.co.jp/books/9784873113142/
実用 Perlプログラミング 第2版 [2006年03月 発行]
http://www.oreilly.co.jp/books/487311280X/
プログラミングPerl 第3版 VOLUME 1,2(駱駝)[2002年09月 発行]
http://www.oreilly.co.jp/books/4873110963/
http://www.oreilly.co.jp/books/4873110971/
Perlクックブック 第2版 VOLUME 1,2 [2004年09月 発行]
http://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス [2006年08月 発行]
http://www.oreilly.co.jp/books/4873113008/
Perl Hacks [2007年01月 発行]
http://www.oreilly.co.jp/books/9784873113142/
実用 Perlプログラミング 第2版 [2006年03月 発行]
http://www.oreilly.co.jp/books/487311280X/
2014/02/19(水) 23:38:56.41
【日本語、Unicode関連】
Encodeモジュール
http://search.cpan.org/dist/Encode/
第31回 encoding:いつまでもjperlから抜け出せない方に
http://gihyo.jp/dev/serial/01/modern-perl/0031
第32回 Encode:日本語だけ扱えればよいのではなく
http://gihyo.jp/dev/serial/01/modern-perl/0032
perlunifaq - Perl Unicode FAQ
http://perldoc.jp/docs/perl/5.18.1/perlunifaq.pod
perlunicode - Perl における Unicode サポート
http://perldoc.jp/docs/perl/5.12.1/perlunicode.pod
http://www.rwds.net/kuroita/program/Perl_unicode.html
【モジュール】
CPAN.com: http://search.cpan.org/
【Perl環境構築】
plenv
https://github.com/tokuhirom/plenv
cpanm
http://search.cpan.org/~miyagawa/App-cpanminus-1.7001/lib/App/cpanminus.pm
http://perldoc.jp/docs/modules/App-cpanminus-1.7001/lib/App/cpanminus/fatscript.pod
Encodeモジュール
http://search.cpan.org/dist/Encode/
第31回 encoding:いつまでもjperlから抜け出せない方に
http://gihyo.jp/dev/serial/01/modern-perl/0031
第32回 Encode:日本語だけ扱えればよいのではなく
http://gihyo.jp/dev/serial/01/modern-perl/0032
perlunifaq - Perl Unicode FAQ
http://perldoc.jp/docs/perl/5.18.1/perlunifaq.pod
perlunicode - Perl における Unicode サポート
http://perldoc.jp/docs/perl/5.12.1/perlunicode.pod
http://www.rwds.net/kuroita/program/Perl_unicode.html
【モジュール】
CPAN.com: http://search.cpan.org/
【Perl環境構築】
plenv
https://github.com/tokuhirom/plenv
cpanm
http://search.cpan.org/~miyagawa/App-cpanminus-1.7001/lib/App/cpanminus.pm
http://perldoc.jp/docs/modules/App-cpanminus-1.7001/lib/App/cpanminus/fatscript.pod
2014/02/19(水) 23:39:35.34
# [Perl 日本語処理の基礎の基礎]
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。
2014/02/19(水) 23:46:41.13
2014/02/19(水) 23:48:52.70
■推移
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
2013.Dec 1.072%
2014.Jan 0.917%
2014.Feb 0.887%
■推移グラフ
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/Perl.html
■Perlの今後
他言語に対する優位性がほとんどないため、消滅に向かって進んでいる。
近い将来消えるのは確実。
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
2013.Dec 1.072%
2014.Jan 0.917%
2014.Feb 0.887%
■推移グラフ
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/Perl.html
■Perlの今後
他言語に対する優位性がほとんどないため、消滅に向かって進んでいる。
近い将来消えるのは確実。
2014/02/20(木) 01:15:48.35
TIOBEって日本じゃほとんど聞いたことがないよね?Perlは日本語をちゃんと処理
できる数少ない処理系だから、海外とは状況が違うと思うんだよね
できる数少ない処理系だから、海外とは状況が違うと思うんだよね
2014/02/20(木) 01:40:45.62
自分がほとんど聞いたことがないという無知っぷりを晒しつつ
その前提で語る基地害がPerl厨
その前提で語る基地害がPerl厨
2014/02/20(木) 02:48:27.42
乱立してる統計サイトの内の一つで、たいしたサイトじゃない。
http://langpop.com/
こんなサイトもあって、今話題に登ってる言語の項目とか見たら
PHPもPerlも似たりよったり。
こんなもんに一喜一憂するのはアホのする事。
#別に「Perlが落ち目じゃない」と主張するつもりも、毛頭無い。
http://langpop.com/
こんなサイトもあって、今話題に登ってる言語の項目とか見たら
PHPもPerlも似たりよったり。
こんなもんに一喜一憂するのはアホのする事。
#別に「Perlが落ち目じゃない」と主張するつもりも、毛頭無い。
2014/02/20(木) 03:30:30.50
乱立といえばム板にスレッド乱立させてるPerl厨みたいだな
いい加減迷惑なんだよゴキブリ共
消滅寸前のゴミ言語にこんなにスレッドは必要ない
Perlについて
http://toro.2ch.net/test/read.cgi/tech/1217851121/
【モダン推奨】Perlについての質問箱 50箱目
http://toro.2ch.net/test/read.cgi/tech/1327110999/
Perl初心者スレ(マジレス回答)
http://toro.2ch.net/test/read.cgi/tech/1349538519/
Perlについての罵倒スレ 63箱目
http://toro.2ch.net/test/read.cgi/tech/1392639772/
Perlについての質問箱 63箱目
http://toro.2ch.net/test/read.cgi/tech/1392820583/
いい加減迷惑なんだよゴキブリ共
消滅寸前のゴミ言語にこんなにスレッドは必要ない
Perlについて
http://toro.2ch.net/test/read.cgi/tech/1217851121/
【モダン推奨】Perlについての質問箱 50箱目
http://toro.2ch.net/test/read.cgi/tech/1327110999/
Perl初心者スレ(マジレス回答)
http://toro.2ch.net/test/read.cgi/tech/1349538519/
Perlについての罵倒スレ 63箱目
http://toro.2ch.net/test/read.cgi/tech/1392639772/
Perlについての質問箱 63箱目
http://toro.2ch.net/test/read.cgi/tech/1392820583/
2014/02/20(木) 07:42:53.27
WebProgの方で、その活動すれば?
そのスレの内三つは荒しが立てたスレだし、Perlと名前が入るスレ自体も10個しかないけど
向うには両手に余るくらいのスレは乱立してるぞ。
そのスレの内三つは荒しが立てたスレだし、Perlと名前が入るスレ自体も10個しかないけど
向うには両手に余るくらいのスレは乱立してるぞ。
2014/02/20(木) 11:23:00.57
久々の正式なスレ立て乙
個人的には「ミニマルPerl」が俺の目を覚ましてくれた本だなあ
まあ、解ってる人には間違いなく退屈な本だけれども
個人的には「ミニマルPerl」が俺の目を覚ましてくれた本だなあ
まあ、解ってる人には間違いなく退屈な本だけれども
2014/02/20(木) 16:17:33.48
スレ乱立のうちの1つだから全く乙じゃない
ただの迷惑行為
ただの迷惑行為
2014/02/21(金) 00:39:44.03
重複によりこのスレには削除依頼が出されました
↓のスレに移動してください
【誘導】
Perlについての質問箱 63箱目
http://toro.2ch.net/test/read.cgi/tech/1392906213/
↓のスレに移動してください
【誘導】
Perlについての質問箱 63箱目
http://toro.2ch.net/test/read.cgi/tech/1392906213/
2014/02/21(金) 00:46:22.39
【プログラミング自体の経験が無い奴はまずココを読め]】
Perl プログラミング講座: ttp://nyx.pu1.net/
【本】
リャマ: ttp://www.oreilly.co.jp/books/4873112575/
駱駝: ttp://www.oreilly.co.jp/books/4873112869/
Effective Perl: ttp://www.c-r.com/book/detail/888
クックブック: ttp://gihyo.jp/book/2012/978-4-7741-4972-1
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/9784873113425/
Perl Hacks: ttp://www.oreilly.co.jp/books/4873112915/
【オンラインマニュアル】
最新のドキュメント: ttp://blog.livedoor.jp/kumagai_nori/archives/52255109.html
perldoc.jp: ttp://bg.pi-ppi.com/
perldoc.perl.org: ttp://manual.xwd.jp/
Perl プログラミング講座: ttp://nyx.pu1.net/
【本】
リャマ: ttp://www.oreilly.co.jp/books/4873112575/
駱駝: ttp://www.oreilly.co.jp/books/4873112869/
Effective Perl: ttp://www.c-r.com/book/detail/888
クックブック: ttp://gihyo.jp/book/2012/978-4-7741-4972-1
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/9784873113425/
Perl Hacks: ttp://www.oreilly.co.jp/books/4873112915/
【オンラインマニュアル】
最新のドキュメント: ttp://blog.livedoor.jp/kumagai_nori/archives/52255109.html
perldoc.jp: ttp://bg.pi-ppi.com/
perldoc.perl.org: ttp://manual.xwd.jp/
2014/02/21(金) 15:41:53.76
例のPHP厨毒の精神異常者がスレを乱立させてから動きがパッタリやんだが、規制食らったのか?
それとも夜に活動が再開されるのか?
それとも夜に活動が再開されるのか?
2014/02/21(金) 15:48:29.84
乱立させてたのってPHPユーザーなの?
てっきりPerl厨だと思ってたんだけど。
スレ乱立とか頭の悪いことをするのはPerlを選ぶような知能の低いPerl厨くらいしかいないだろ。
てっきりPerl厨だと思ってたんだけど。
スレ乱立とか頭の悪いことをするのはPerlを選ぶような知能の低いPerl厨くらいしかいないだろ。
2014/02/21(金) 16:10:45.03
2014/02/21(金) 17:14:07.34
自演乙
2014/02/21(金) 17:39:17.06
>>17
糖質も発見が早ければ投薬で治療できるから病院行ってみたら?
糖質も発見が早ければ投薬で治療できるから病院行ってみたら?
2014/02/21(金) 18:43:53.70
自己紹介乙
2014/02/21(金) 19:36:32.84
>>17ってまさか本当に自覚ないのかな。
2014/02/21(金) 19:39:12.82
2014/02/21(金) 22:00:12.92
自覚があれば病院行くだろうし
糖質と診断されればネットは控えろと言われるだろうから
こんなところにはいない
糖質と診断されればネットは控えろと言われるだろうから
こんなところにはいない
2014/02/21(金) 22:18:44.98
罵倒スレのほうが内容にマッチしてるじゃん、何でわざわざ質問箱で立て直したの?
2014/02/22(土) 02:27:43.89
Perl厨にとってはこれが質疑応答なんだよ
2014/02/23(日) 08:57:46.27
朝勃ちんこ
2014/02/24(月) 19:35:06.10
Perl=ちんこ言語
男のちんこをしゃぶれない弱輩には使いこなせない言語
男のちんこをしゃぶれない弱輩には使いこなせない言語
2014/08/22(金) 18:02:07.86ID:+einZQJ5
31デフォルトの名無しさん
2014/08/23(土) 00:49:39.55ID:j4ngjv2t ぐろ
2014/09/05(金) 22:30:13.20ID:S+Rzc4u+
>>30
グロ
グロ
2014/09/05(金) 23:11:47.51ID:p4jkMY4H
亀頭?
34デフォルトの名無しさん
2014/12/11(木) 16:19:01.34ID:OlwBDLMK perl 5(v5.16.3)で
http://d.hatena.ne.jp/syohex/20110616/1308237655
を走らせると
BEGIN not safe after errors--compilation aborted at ~/op.pl line 16.
と止まってしまいます。
解決策を教えてください。
http://d.hatena.ne.jp/syohex/20110616/1308237655
を走らせると
BEGIN not safe after errors--compilation aborted at ~/op.pl line 16.
と止まってしまいます。
解決策を教えてください。
2014/12/11(木) 17:08:56.68ID:aWaBOmKM
>>34
OSは何?
OSは何?
36デフォルトの名無しさん
2014/12/13(土) 11:26:51.16ID:sck7BTkh MacOSX1068です
2014/12/13(土) 13:22:37.60ID:toJAZvUP
>>36
mac持ってないから試せないけど、一応これで動くんじゃないかと。
adhocな対応でセキュリティ考えてないから注意してね。
open my $fh, '<', \(my $dmy = `@cmd`) or die "Can't exec @cmd";
mac持ってないから試せないけど、一応これで動くんじゃないかと。
adhocな対応でセキュリティ考えてないから注意してね。
open my $fh, '<', \(my $dmy = `@cmd`) or die "Can't exec @cmd";
38名無しさん@そうだ選挙に行こう
2014/12/13(土) 13:39:32.35ID:SQgyoVwB えーん
39デフォルトの名無しさん
2015/01/03(土) 02:38:43.41ID:fziQOJOK hage
2015/06/08(月) 23:02:16.28ID:fDJEyEgd
正規表現で
aaa 99 PPP
iii 87 XYZ
uuu 32 XXX
の PPP以降 と XYZ以降 と XXX以降 を取り出すのはどうすれば良いでしょうか?
aaa iii uuu が半角の文字 99 87 32 が 数字である事は保証されていますが
PPP XYZ XXX に至るまで半角スペース、もしくは全角スペースがいくつあるかは保証されておらず
substr 等で切りだす事はできません。わかる方宜しくお願いします。
aaa 99 PPP
iii 87 XYZ
uuu 32 XXX
の PPP以降 と XYZ以降 と XXX以降 を取り出すのはどうすれば良いでしょうか?
aaa iii uuu が半角の文字 99 87 32 が 数字である事は保証されていますが
PPP XYZ XXX に至るまで半角スペース、もしくは全角スペースがいくつあるかは保証されておらず
substr 等で切りだす事はできません。わかる方宜しくお願いします。
2015/06/09(火) 00:25:53.38ID:lkN1yBxE
文章が不透明だから分からなくなる。(誰にも分からない)。
正規表現は完璧に仕様を出さないと書けない。出せば単にそれを書くだけ。
行頭は半角文字列である → ^[a-z]
その後に半角スペースがある → \ (←見えないが半角スペース)
その後に2桁の数値がある。 → [0-9]{2}
その後に一文字以上の半角スペースと全角スペースが不定数混在する → ([\ \ ])+
その後に大文字が3つある → [A-Z]{3}
以降、行末まで。(取り出し対象文字列) → .*$
まぁ辞書やないんやけどな。ここは。
正規表現は完璧に仕様を出さないと書けない。出せば単にそれを書くだけ。
行頭は半角文字列である → ^[a-z]
その後に半角スペースがある → \ (←見えないが半角スペース)
その後に2桁の数値がある。 → [0-9]{2}
その後に一文字以上の半角スペースと全角スペースが不定数混在する → ([\ \ ])+
その後に大文字が3つある → [A-Z]{3}
以降、行末まで。(取り出し対象文字列) → .*$
まぁ辞書やないんやけどな。ここは。
2015/06/09(火) 00:26:47.75ID:lkN1yBxE
あ、行頭は3文字か
^([a-z]{3})
^([a-z]{3})
43デフォルトの名無しさん
2015/09/30(水) 22:23:35.50ID:sTs+YTNn2015/10/01(木) 08:31:04.47ID:jKkjZr1B
4544
2015/10/01(木) 13:19:49.64ID:NghmrQed スマヌ質問内容理解してなかった
だがPerl関係なくね?
だがPerl関係なくね?
46デフォルトの名無しさん
2015/10/02(金) 00:15:42.88ID:jBpUUsqc >>43
本当にクライアントが
http://○○○.com/pagejump.cgi?http://△△△.com/disp.cgi?mode=test
を送ったのなら、それが原因だと思う。
URL の各部分は適切にエスケープされなければならない。
Perl でやるならこうだ。
use URI;
use URI::Escape;
$u = URI->new("http://○○○.com/pagejump.cgi");
$u->query( uri_escape("http://△△△.com/disp.cgi?mode=test"));
# クライアントに適切なエスケープを期待出来ないなら……まあ、がんばってくれ。
本当にクライアントが
http://○○○.com/pagejump.cgi?http://△△△.com/disp.cgi?mode=test
を送ったのなら、それが原因だと思う。
URL の各部分は適切にエスケープされなければならない。
Perl でやるならこうだ。
use URI;
use URI::Escape;
$u = URI->new("http://○○○.com/pagejump.cgi");
$u->query( uri_escape("http://△△△.com/disp.cgi?mode=test"));
# クライアントに適切なエスケープを期待出来ないなら……まあ、がんばってくれ。
2015/10/02(金) 03:53:10.85ID:j2xAjxnc
2015/10/03(土) 06:04:18.38ID:AAE95wIv
4ヶ月前にレスに回答(笑)
49デフォルトの名無しさん
2015/10/13(火) 20:00:49.41ID:0lWpYFcj50デフォルトの名無しさん
2015/11/08(日) 01:17:27.81ID:ytCokofM 趣味と勉強を兼ねてcgi使ったホームページを作ってるんだが
セッションって格納した値は、同じルーチン内でしか使えないの?
格納したセッションをLocationでとんだ先で取得したいんだけど
何かと組み合わせないとそういうのできないのかな
セッションって格納した値は、同じルーチン内でしか使えないの?
格納したセッションをLocationでとんだ先で取得したいんだけど
何かと組み合わせないとそういうのできないのかな
51uy ◆Qawu9.2l1E
2015/11/08(日) 02:42:11.75ID:vxaYLa75 暗い趣味
52デフォルトの名無しさん
2015/11/20(金) 13:59:09.99ID:ygWQ/grN test
53バイキンマン
2015/11/20(金) 14:01:31.29ID:ygWQ/grN プログラム板でもやっぱそうか・・・・・
バグ発見!
名前欄に0と英数字で入力すると出力されないバグ!
変数の文字の長さで入力を判定して出力させれば
バグは治る!
すぐに対処を申請します!
バグ発見!
名前欄に0と英数字で入力すると出力されないバグ!
変数の文字の長さで入力を判定して出力させれば
バグは治る!
すぐに対処を申請します!
54デフォルトの名無しさん
2015/11/21(土) 21:10:33.25ID:WD+kKzRm >>50
セッションって?
セッションって?
2015/11/21(土) 21:12:29.73ID:WD+kKzRm
あっ、2週間前のレスだったすまん
56デフォルトの名無しさん
2015/11/23(月) 21:01:14.60ID:4+JhTSZZ a
57デフォルトの名無しさん
2015/11/23(月) 21:01:48.81ID:4+JhTSZZ 質問です。
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
my $ua = LWP::UserAgent->new;
$ua->timeout('7');
my $req = POST('http://yahoo.co.jp');
my $res = $ua->request($req);
print $res->content;
のようにすると文字化けします。文字コードの指定方法も分からず困っております
だれかおしえてくだあさい
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
my $ua = LWP::UserAgent->new;
$ua->timeout('7');
my $req = POST('http://yahoo.co.jp');
my $res = $ua->request($req);
print $res->content;
のようにすると文字化けします。文字コードの指定方法も分からず困っております
だれかおしえてくだあさい
2015/11/24(火) 00:50:23.60ID:oXoHv6i5
もらった文字列と、表示されている文字の、
文字コードが異なっているのだろう
文字を表示しているソフトの、文字コードを変えれば?
たぶん環境変数か設定項目にある
文字を表示しているソフトは、何を使っているの?
文字コードが異なっているのだろう
文字を表示しているソフトの、文字コードを変えれば?
たぶん環境変数か設定項目にある
文字を表示しているソフトは、何を使っているの?
2015/11/24(火) 00:53:35.74ID:s947wE2H
>>57
文字化けしてないよ
文字化けしてないよ
2015/11/24(火) 00:56:04.50ID:s947wE2H
yahoo.co.jpは301 Moved Permanently だけど、move先を指定しても文字化けはない
2015/11/29(日) 01:33:56.66ID:rf1AiNx3
win10の64bit版でperl32bit版動くかな?
ちなみにwin7の64bitではperl32動いてます
ちなみにwin7の64bitではperl32動いてます
2015/11/29(日) 03:12:21.07ID:rf1AiNx3
もう1個のスレのほうがメインみたいなのでそっちで聞いてきます
63デフォルトの名無しさん
2016/02/12(金) 18:03:25.55ID:/96fpKw+ ヒアドキュメントで表示は
print <<"EOS";
(中略)
EOS
だけど
これをファイルに書き込むにはどうしたらいいんですか?
print <<"EOS";
(中略)
EOS
だけど
これをファイルに書き込むにはどうしたらいいんですか?
2016/02/13(土) 12:32:20.94ID:+ZsFTbcU
print $fh <<"EOS";
中身
EOS
中身
EOS
65デフォルトの名無しさん
2016/02/14(日) 03:31:58.89ID:kuEFe+X3 別解として
perl script.pl > file.txt
perl script.pl > file.txt
66デフォルトの名無しさん
2016/02/14(日) 18:40:21.30ID:kuEFe+X3 もしかして、Windowsのスタート→プログラム→アクセサリ→メモ帳
を実行して
print <<"EOS";
(中略)
EOS
を打ちこみ、メモ帳のメニューのファイル→名前を付けて保存
のほうを知りたかったのですか?
を実行して
print <<"EOS";
(中略)
EOS
を打ちこみ、メモ帳のメニューのファイル→名前を付けて保存
のほうを知りたかったのですか?
2016/02/16(火) 07:29:00.22ID:y+ZjOqCo
いきなりだけどPerlのクラスの仕組み(かなり手抜き)
+ JavaScript の質問用スレッド vol.128 +©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1454390682/401- のJavaScriptのthisの話の余談
大雑把に言うとPerlのクラス(オブジェクト)はハッシュに毛が生えたもの
※この段階ではクラスではない。ただのハッシュを返すnew関数とそれを入れたKlassパッケージ
package Klass;
sub new { return {a=>1, b=>2 } }
sub foo {}
Perlにはメソッドというものはない。全て関数。
コンストラクタ(一般的にnewという名前にする)もただの関数。
Perlではクラスやオブジェクトはこのようにして呼び出す。
my $obj = Klass->new();
$obj->foo();
ここで問題がある。$obj->foo()は、Klass::foo()を呼び出すことになるが、
$obj(ただのハッシュ)からどうやってKlass::foo()であることを知るのか?
ただのハッシュを返しているだけのnew関数にはそれは無理なので
ただのハッシュに毛を生やす。
sub new { return bless({a=>1, b=>2 }, 'Klass') }
これでただのハッシュじゃなくてKlassという情報がくっついたハッシュになった。
これで$obj->foo()はKlass::foo()を呼び出せる。
+ JavaScript の質問用スレッド vol.128 +©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1454390682/401- のJavaScriptのthisの話の余談
大雑把に言うとPerlのクラス(オブジェクト)はハッシュに毛が生えたもの
※この段階ではクラスではない。ただのハッシュを返すnew関数とそれを入れたKlassパッケージ
package Klass;
sub new { return {a=>1, b=>2 } }
sub foo {}
Perlにはメソッドというものはない。全て関数。
コンストラクタ(一般的にnewという名前にする)もただの関数。
Perlではクラスやオブジェクトはこのようにして呼び出す。
my $obj = Klass->new();
$obj->foo();
ここで問題がある。$obj->foo()は、Klass::foo()を呼び出すことになるが、
$obj(ただのハッシュ)からどうやってKlass::foo()であることを知るのか?
ただのハッシュを返しているだけのnew関数にはそれは無理なので
ただのハッシュに毛を生やす。
sub new { return bless({a=>1, b=>2 }, 'Klass') }
これでただのハッシュじゃなくてKlassという情報がくっついたハッシュになった。
これで$obj->foo()はKlass::foo()を呼び出せる。
2016/02/16(火) 07:29:53.95ID:y+ZjOqCo
ここからが面白くて「アローの左側は関数の第一引数になる」というルールを追加する。
そうすると、Klass->new() という呼び出しは、 new('Klass') 相当になることがわかる。
ということで、newの第一引数にはクラスの文字列が入ってくるのでそれを使える。
sub new { my $class = shift; return bless({a=>1, b=>2 }, $class }
さらに、$obj->foo() の呼出も同じ。 foo($obj) 相当になる。
なので、sub foo { my $self = shift; } の$selfにはnewの戻り値である
毛が生えたハッシュ、つまりオブジェクト自身(他の言語のthis相当)が入ってくることになる。
このようにアローの左側が第一引数になる。という挙動は他の言語でも一緒で
JavaやC++は内部的にそれを行ってるだけ。
そしてJavaScriptでも.(ドット)の左側が第一引数になると考えると、
JavaScriptのthisがよくわからんという問題も簡単に理解できるはず。
JavaScriptのthisの話は元スレへどうぞ
そうすると、Klass->new() という呼び出しは、 new('Klass') 相当になることがわかる。
ということで、newの第一引数にはクラスの文字列が入ってくるのでそれを使える。
sub new { my $class = shift; return bless({a=>1, b=>2 }, $class }
さらに、$obj->foo() の呼出も同じ。 foo($obj) 相当になる。
なので、sub foo { my $self = shift; } の$selfにはnewの戻り値である
毛が生えたハッシュ、つまりオブジェクト自身(他の言語のthis相当)が入ってくることになる。
このようにアローの左側が第一引数になる。という挙動は他の言語でも一緒で
JavaやC++は内部的にそれを行ってるだけ。
そしてJavaScriptでも.(ドット)の左側が第一引数になると考えると、
JavaScriptのthisがよくわからんという問題も簡単に理解できるはず。
JavaScriptのthisの話は元スレへどうぞ
2016/02/16(火) 10:39:05.36ID:rD0NYg0s
面白いというか、みんな知ってると思う
2016/02/17(水) 00:31:54.19ID:xaInBBRG
うん。そしてそれが有用ならもっと使われているはずだが、現実はあまり使われていない。
コードが実行時に生成されるようなダイナミックなものはデバッグ、テスト、保守がしにくい。
コードが実行時に生成されるようなダイナミックなものはデバッグ、テスト、保守がしにくい。
2016/02/17(水) 00:40:54.86ID:wnysiCN2
>>70
何の話してるのお前?
何の話してるのお前?
2016/02/19(金) 00:01:04.65ID:ifdckMGM
文字列の/*と*/で囲まれた部分と/*と*/に色をつけたい
例えば$str="/*abcdef*/";の場合は
$str =~ s/\/\*/<font color=\"green\">\/\*/g;
$str =~ s/\*\//\*\/<\/font>/g;でできましたが
$str="/*//////abcdef/////*/";の場合はうまくできませんでした。
どうすればうまくいくのでしょうか?
例えば$str="/*abcdef*/";の場合は
$str =~ s/\/\*/<font color=\"green\">\/\*/g;
$str =~ s/\*\//\*\/<\/font>/g;でできましたが
$str="/*//////abcdef/////*/";の場合はうまくできませんでした。
どうすればうまくいくのでしょうか?
2016/02/19(金) 01:43:09.22ID:jNAd9H+F
$str = ̄ s{(/¥*.*?¥*/)}{<font color=”green”>$1</font>}g;
2016/02/22(月) 17:33:02.93ID:BncrDEhF
my $data = {
'data1' => [1,2,3],
'data2' => [4,5,6],
'data3' => [7,8,9]
};
上のような配列のハッシュで
ハッシュそれぞれの0番目、1番目、2番目のデータを
取り出したい場合どうすればいいのでしょうか
for (my $i = 0; $i < 3; $i++) {
print $data->{"data1"}[$i],"\n";
print $data->{"data2"}[$i],"\n";
print $data->{"data3"}[$i],"\n";
}
'data1' => [1,2,3],
'data2' => [4,5,6],
'data3' => [7,8,9]
};
上のような配列のハッシュで
ハッシュそれぞれの0番目、1番目、2番目のデータを
取り出したい場合どうすればいいのでしょうか
for (my $i = 0; $i < 3; $i++) {
print $data->{"data1"}[$i],"\n";
print $data->{"data2"}[$i],"\n";
print $data->{"data3"}[$i],"\n";
}
75デフォルトの名無しさん
2016/02/22(月) 22:57:33.32ID:mB6Cjpa076デフォルトの名無しさん
2016/02/22(月) 23:01:42.17ID:mB6Cjpa0 ごめん、ちゃんと書いたのに何かアクシデントがあったようだ。もう一回送るよ。
それで合ってるよ。
http://perldoc.jp/pod/perldsc
を読みなさい。
$data->{"data1"}->[$i]
が正式な書き方だが (配列|ハッシュ)要素の参照が連続していれば間の矢印を省略してもいい。
個人的には、リファレンスだということを意識していたいから省略しないけどね。
それで合ってるよ。
http://perldoc.jp/pod/perldsc
を読みなさい。
$data->{"data1"}->[$i]
が正式な書き方だが (配列|ハッシュ)要素の参照が連続していれば間の矢印を省略してもいい。
個人的には、リファレンスだということを意識していたいから省略しないけどね。
2016/02/23(火) 03:28:09.20ID:Oh6h4g2T
シングルクォートもダブルクォートも要らねぇ。
my $data = {
data1 => [1,2,3],
data2 => [4,5,6],
data3 => [7,8,9]
};
print $data->{data1}[$i],"\n";
my $data = {
data1 => [1,2,3],
data2 => [4,5,6],
data3 => [7,8,9]
};
print $data->{data1}[$i],"\n";
2016/02/23(火) 10:27:03.85ID:usPktkPU
Web::Scraperでスクレイピングしているのですが
サンプルでは
use YAML;
warn Dump $res;
という書き方でこの方法だとデータの構造がよくわからないのですが
Dump何をつかっているのですか?
Ubuntu14.04の64bitを使っています。
サンプルでは
use YAML;
warn Dump $res;
という書き方でこの方法だとデータの構造がよくわからないのですが
Dump何をつかっているのですか?
Ubuntu14.04の64bitを使っています。
2016/02/24(水) 18:07:14.97ID:E2TS40Hx
print $res->{list}[1]->{link}[0]->{url},"\n";
print $res->{list}[1]->{link}[0]->{title},"\n";
print $res->{list}[1]->{link}[1]->{url},"\n";
print $res->{list}[1]->{link}[1]->{title},"\n";
こういったデータをforeahで出力したい場合
???にはどのようにかけばいいのでしょうか
foreah my $i(???) {
print $i->{url};
print $i->{title};
}
print $res->{list}[1]->{link}[0]->{title},"\n";
print $res->{list}[1]->{link}[1]->{url},"\n";
print $res->{list}[1]->{link}[1]->{title},"\n";
こういったデータをforeahで出力したい場合
???にはどのようにかけばいいのでしょうか
foreah my $i(???) {
print $i->{url};
print $i->{title};
}
2016/02/24(水) 19:01:01.43ID:1Q1vaK3L
>>81
なんで同じのが2書いあるんだよ
なんで同じのが2書いあるんだよ
2016/02/24(水) 22:23:15.99ID:VYWYZ9lH
>>81
my $links = $res->{list}[1]{link};
for my $link ( @$links ) {
say $link->{$_} for qw/url title/;
}
my $links = $res->{list}[1]{link};
for my $link ( @$links ) {
say $link->{$_} for qw/url title/;
}
2016/02/24(水) 22:43:39.56ID:PL8yH0Su
>>83
say forの行が気持ち悪い。やり直し
say forの行が気持ち悪い。やり直し
2016/02/24(水) 22:47:52.27ID:VYWYZ9lH
8681
2016/02/25(木) 09:33:24.21ID:AM2kna+z >>83
ありがとうございました。
一度変数に保存してからすればよかったのですね。
my $links = $res->{list}[1]{link};
for my $link ( $res->{list}[1]{link} ) {
こういう書き方をしていてリストにするにはどうしたらいいのか
わからないので質問させていただきました。
たいへん勉強になりましたありがとうございました。
ありがとうございました。
一度変数に保存してからすればよかったのですね。
my $links = $res->{list}[1]{link};
for my $link ( $res->{list}[1]{link} ) {
こういう書き方をしていてリストにするにはどうしたらいいのか
わからないので質問させていただきました。
たいへん勉強になりましたありがとうございました。
2016/02/25(木) 23:12:11.74ID:B0t5yMaC
>>86
デリファレンスは一度代入しなくてもできるけどちょっとわかりにくいかなって
for my $link ( @{ $res->{list}[1]{link} } ) {
新しい書き方だとこんなのもあったり(postfix dereferencing)
$res->{list}[1]{link}->@*
デリファレンスは一度代入しなくてもできるけどちょっとわかりにくいかなって
for my $link ( @{ $res->{list}[1]{link} } ) {
新しい書き方だとこんなのもあったり(postfix dereferencing)
$res->{list}[1]{link}->@*
2016/02/26(金) 12:14:26.93ID:lmpGubNL
1位は「Python」、プログラミング言語別の平均年収ランキングが発表
http://www.mdn.co.jp/di/newstopics/44248/
2位には「Perl」(平均年収633万円)、3位には「Ruby」(平均年収606万円)がランクインした。
http://www.mdn.co.jp/di/newstopics/44248/
2位には「Perl」(平均年収633万円)、3位には「Ruby」(平均年収606万円)がランクインした。
89デフォルトの名無しさん
2016/02/27(土) 00:21:51.17ID:7I91l6Zs >>67-68
超亀レスですがありがとうございます、勉強になりました!
超亀レスですがありがとうございます、勉強になりました!
90デフォルトの名無しさん
2016/02/27(土) 00:49:08.38ID:fhIzDVzC my $date = '平成28年2月26日18:55';
my $week = '金';
$date =~ s/日/日 $week曜日 /;
print $date;
をすると文字化けするのですが原因がわかりません。
my $week = '金';
$date =~ s/日/日 $week曜日 /;
print $date;
をすると文字化けするのですが原因がわかりません。
2016/02/27(土) 10:36:17.16ID:VqgeV1ea
環境とか文字コードは
92デフォルトの名無しさん
2016/02/27(土) 13:36:07.74ID:fhIzDVzC さくらのレンタルサーバーのCGIでPerl 5.14.4です。
$weekを削除すると文字化けはおこりません。
別のプログラムではうまく動いているのですが
$weekを削除すると文字化けはおこりません。
別のプログラムではうまく動いているのですが
9392
2016/02/27(土) 14:09:58.43ID:fhIzDVzC $week\xe6\x9b\x9c\xe6\x97\xa5になっているみたい
プログラム内に入力している日本語がprint表示するときにくずれるようです。
プログラム内に入力している日本語がprint表示するときにくずれるようです。
2016/02/27(土) 14:23:16.95ID:VqgeV1ea
${week曜日}
${week}曜日
>プログラム内に入力している日本語がprint表示するときにくずれる
やっぱutf8フラグかなあ…
${week}曜日
>プログラム内に入力している日本語がprint表示するときにくずれる
やっぱutf8フラグかなあ…
9592
2016/02/27(土) 14:55:51.07ID:fhIzDVzC すみませんプログラムミスでした。
2016/03/05(土) 17:24:53.21ID:jVpVtd3O
日付で教えて下さい
1/23 12:34
を西暦をくっつけて
2016/1/23 12:34に変換したいのですが
例えば未来の日時の場合は
5/1 12:34
を2015/5/1 12:34と1年引いた年にしたいのですが
下のプログラムでは
2015/05/02 06:45:10になります
年の引き算はどうすればいいのでしょうか
use strict;
use warnings;
use 5.010;
use Time::Piece;
use Time::Seconds;
my $t = localtime;
my $year = $t->year;
my $str = "1/23 12:34";
my $date = Time::Piece->strptime("$year/$str", '%Y/%m/%d %H:%M');
if ($t < $date) {
$date -= ONE_YEAR;
}
say $t->strftime('%Y-%m-%d %H:%M:%S');
say $date->strftime('%Y-%m-%d %H:%M:%S');
1/23 12:34
を西暦をくっつけて
2016/1/23 12:34に変換したいのですが
例えば未来の日時の場合は
5/1 12:34
を2015/5/1 12:34と1年引いた年にしたいのですが
下のプログラムでは
2015/05/02 06:45:10になります
年の引き算はどうすればいいのでしょうか
use strict;
use warnings;
use 5.010;
use Time::Piece;
use Time::Seconds;
my $t = localtime;
my $year = $t->year;
my $str = "1/23 12:34";
my $date = Time::Piece->strptime("$year/$str", '%Y/%m/%d %H:%M');
if ($t < $date) {
$date -= ONE_YEAR;
}
say $t->strftime('%Y-%m-%d %H:%M:%S');
say $date->strftime('%Y-%m-%d %H:%M:%S');
2016/03/05(土) 17:32:45.69ID:Kk7Ussws
2016/03/06(日) 18:03:04.50ID:OXa3i/Gy
$str =
2016/03/07(月) 00:42:40.54ID:Gv57dso9
>>96
年月日に分けたのち、年を -1 する。
年月日に分けたのち、年を -1 する。
100デフォルトの名無しさん
2016/03/07(月) 06:16:56.64ID:eudRNLDZ だからそうすると2月29日が出来てしまうって言ってるわけ
101デフォルトの名無しさん
2016/03/07(月) 21:18:09.27ID:jBGm+KXA pythonのスクリプトの頭に、use strict;って書いた。頭いかれてきたw
102デフォルトの名無しさん
2016/03/07(月) 23:50:19.65ID:fqGSH3nt my($year,$month,$day,$hour,$min) = (localtime)[5,4,3,2,1];
my $str = "1/23 12:34";
my($strmonth,$strday,$strhour,$strmin) = $str =~ m|([0-9]+)/([0-9]+) ([0-9]+):([0-9]+)|;
if (
sprintf('%02d%02d%02d%02d',$strmonth,$strday,$strhour,$strmin)
gt
sprintf('%02d%02d%02d%02d',$month+1,$day,$hour,$min)
) {
printf("%04d/%02d/%02d %02d:%02d\n",1900+$year-1,$strmonth,$strday,$strhour,$strmin);
}
else {
printf("%04d/%02d/%02d %02d:%02d\n",1900+$year,$strmonth,$strday,$strhour,$strmin);
}
# 基本に忠実に。応用はそれから
my $str = "1/23 12:34";
my($strmonth,$strday,$strhour,$strmin) = $str =~ m|([0-9]+)/([0-9]+) ([0-9]+):([0-9]+)|;
if (
sprintf('%02d%02d%02d%02d',$strmonth,$strday,$strhour,$strmin)
gt
sprintf('%02d%02d%02d%02d',$month+1,$day,$hour,$min)
) {
printf("%04d/%02d/%02d %02d:%02d\n",1900+$year-1,$strmonth,$strday,$strhour,$strmin);
}
else {
printf("%04d/%02d/%02d %02d:%02d\n",1900+$year,$strmonth,$strday,$strhour,$strmin);
}
# 基本に忠実に。応用はそれから
103デフォルトの名無しさん
2016/03/08(火) 00:11:41.92ID:2waKAzbH >>102
$month -= 2;
my $str = "2/29 12:34";
したら、2015/02/29って答が出るコードなんぞ貼るなや
元の質問者のコードに、
ふつうに$obj->is_leap_yearの判定加えて、
2/29跨ぎなら、LEAP_YEAR
引けばいいだけだろ。
$month -= 2;
my $str = "2/29 12:34";
したら、2015/02/29って答が出るコードなんぞ貼るなや
元の質問者のコードに、
ふつうに$obj->is_leap_yearの判定加えて、
2/29跨ぎなら、LEAP_YEAR
引けばいいだけだろ。
104デフォルトの名無しさん
2016/03/09(水) 00:16:20.50ID:Djq1Ua6S この場合は 2015/02/29 が欲しい答え
105デフォルトの名無しさん
2016/03/09(水) 05:51:47.62ID:BRdU+Z94 バギーなコードが眼に見える様だ
106デフォルトの名無しさん
2016/03/10(木) 00:41:03.49ID:m8iGuBqw 要件にない仕様を自己満足で追加してはいけない
この件はTime::Pieceだとうまくこなせない問題
融通がきかないのがオレオブジェクトのつらいところだ
この件はTime::Pieceだとうまくこなせない問題
融通がきかないのがオレオブジェクトのつらいところだ
107デフォルトの名無しさん
2016/03/10(木) 06:53:37.48ID:cOoRDwdC Time::Piece関係ねーだろ。
頭悪いな。
頭悪いな。
108デフォルトの名無しさん
2016/03/13(日) 00:11:27.55ID:W4AXq/NT localtimeとTimelocalは次スレのテンプレに追加するか
同じ質問が繰り返されてみんな同じところではまるからなあ
同じ質問が繰り返されてみんな同じところではまるからなあ
109デフォルトの名無しさん
2016/03/17(木) 15:49:56.51ID:HmsCvSUF クッキーへの書き込み処理での質問
エラーメッセージを取得処理
print "Content-type:text/html\n";
if(エラー数が0の場合){
投稿データをクッキーに書き込む処理
}
print "\n";
エラーメッセージの表示処理
というようにエラーメッセージの取得と表示の間に
print "Content-type:text/html\n";print "\n";を挟む形になってしまうので
これらをまとめてサブルーチン化したくてもできません
こういう場合でもうまくサブルーチン化できる方法を教えてください
エラーメッセージを取得処理
print "Content-type:text/html\n";
if(エラー数が0の場合){
投稿データをクッキーに書き込む処理
}
print "\n";
エラーメッセージの表示処理
というようにエラーメッセージの取得と表示の間に
print "Content-type:text/html\n";print "\n";を挟む形になってしまうので
これらをまとめてサブルーチン化したくてもできません
こういう場合でもうまくサブルーチン化できる方法を教えてください
110デフォルトの名無しさん
2016/03/17(木) 17:41:21.64ID:H1m/hwv2 エラーメッセージの出力時にContent-typeから出力すればいいのでは
111デフォルトの名無しさん
2016/03/17(木) 18:09:04.11ID:r8Uypp4J112デフォルトの名無しさん
2016/03/19(土) 22:54:54.53ID:zQsVsKn8 my $kukkii =
113デフォルトの名無しさん
2016/03/20(日) 14:44:26.98ID:AaFdygkh '';
114デフォルトの名無しさん
2016/03/20(日) 23:05:38.19ID:ZT1ttS3p 何をしたかったのかよくわからないけど、せめて cookie と書いてほしかった。
115デフォルトの名無しさん
2016/03/21(月) 23:09:59.48ID:mpXdX/cy 住所を入れる変数でさ
$adoresu = ・・・
みたいな名前つかうヤツ、いるよね
英語なのか何なのか、よくワカラン
$adoresu = ・・・
みたいな名前つかうヤツ、いるよね
英語なのか何なのか、よくワカラン
116デフォルトの名無しさん
2016/03/23(水) 01:56:25.05ID:isz3o5XG $message = エラーメッセージを取得;
print "Content-type:text/html\n";
if(エラー数が0の場合){
投稿データをクッキーに書き込む処理
}
print "\n";
print $message; # エラーメッセージの表示処理
print "Content-type:text/html\n";
if(エラー数が0の場合){
投稿データをクッキーに書き込む処理
}
print "\n";
print $message; # エラーメッセージの表示処理
117デフォルトの名無しさん
2016/03/23(水) 21:53:51.11ID:ftv772ff my $str = "あああabcあああcdefghあああ123456";
この文字列で半角英数字の部分をAAAに置換するにはどうすればいいですか?
あああAAAあああAAAあああAAAになればOKです
この文字列で半角英数字の部分をAAAに置換するにはどうすればいいですか?
あああAAAあああAAAあああAAAになればOKです
118デフォルトの名無しさん
2016/03/23(水) 23:01:13.44ID:OHojQvKP119デフォルトの名無しさん
2016/03/24(木) 00:07:44.52ID:3WWxxvBQ my $str = "あああabcあああcdefghあああ123456";
print $str, "\n";
$str =~ s/[A-Za-z0-9]+/AAA/g;
print $str, "\n";
print $str, "\n";
$str =~ s/[A-Za-z0-9]+/AAA/g;
print $str, "\n";
120デフォルトの名無しさん
2016/03/25(金) 01:11:07.68ID:v9Mc4pMx ありがとうございます。おかげで宿題を提出することができました。
リンク先のページを読んでも何が何だかさっぱり分かりませんでした。
リンク先のページを読んでも何が何だかさっぱり分かりませんでした。
121デフォルトの名無しさん
2016/03/27(日) 01:06:33.94ID:jno5DU+g パールでまた問題に直面したら話題を提供してあげますので楽しみにしてるんだぞ。
122デフォルトの名無しさん
2016/03/27(日) 15:47:58.07ID:HfxbfBB0 ありがとうございます。
123デフォルトの名無しさん
2016/04/14(木) 19:01:51.27ID:v1e64Ann ファイル演算子の-eと-fの違いは?
ファイルが存在するかどうかはどっちを使っても良いのですか?
ファイルが存在するかどうかはどっちを使っても良いのですか?
124デフォルトの名無しさん
2016/04/14(木) 19:46:27.77ID:G3MchQfa すみません。初めてperlを使うのですが、perlでQRコードを生成したいです。
ブラウザからアクセスしてQRコードの標準出力は出来たのですが、ファイルを生成する方法がわかりません。
以下のソースを実行すると、pngが生成されるのですが、生成されたpngをダブルクリックしても開けなくなります。
use GD::Barcode::QRcode;
binmode STDOUT;
my $qr = GD::Barcode::QRcode->new('test',{Ecc=>M, Version=>5, ModuleSize=>3})->plot();
open my $fh, '>', 'qr.png' or die;
print $fh $qr->png;
close $fh;
もしお分かりの方がいらっしゃったらお願いします。
ブラウザからアクセスしてQRコードの標準出力は出来たのですが、ファイルを生成する方法がわかりません。
以下のソースを実行すると、pngが生成されるのですが、生成されたpngをダブルクリックしても開けなくなります。
use GD::Barcode::QRcode;
binmode STDOUT;
my $qr = GD::Barcode::QRcode->new('test',{Ecc=>M, Version=>5, ModuleSize=>3})->plot();
open my $fh, '>', 'qr.png' or die;
print $fh $qr->png;
close $fh;
もしお分かりの方がいらっしゃったらお願いします。
125デフォルトの名無しさん
2016/04/14(木) 20:56:59.29ID:rjSU//7G126124
2016/04/14(木) 21:09:45.25ID:G3MchQfa127デフォルトの名無しさん
2016/04/24(日) 15:13:08.67ID:mI4IMx9A centos、zshの環境で、plenvを使っていて、apacheでcgiを動かそうと考えています。
/var/www/html 直下で #!/usr/bin/perl のcgiが動くところまではブラウザで確認できました。
あとはplenvの下記初期設定をするだけ、と思ったところで詰まりました。
export PATH=~/.plenv/bin:$PATH
eval "$(plenv init -)"
apacheの自動起動では ..zshrc を指定するところがありません。
とりあえず下記で、plenvでインストールしたパスだけは設定したのですが、
eval "$(plenv init -)" の中でどんな処理がされているのかわかりません。
# echo "PATH=/home/centos/.plenv/shims:$PATH" >> /etc/sysconfig/httpd
# /etc/init.d/httpd restart
eval "$(plenv init -)" ではどんな処理がされているのでしょうか?
また、plenvの環境は、パスさえ設定しておけば、特に支障はないのでしょうか?
/var/www/html 直下で #!/usr/bin/perl のcgiが動くところまではブラウザで確認できました。
あとはplenvの下記初期設定をするだけ、と思ったところで詰まりました。
export PATH=~/.plenv/bin:$PATH
eval "$(plenv init -)"
apacheの自動起動では ..zshrc を指定するところがありません。
とりあえず下記で、plenvでインストールしたパスだけは設定したのですが、
eval "$(plenv init -)" の中でどんな処理がされているのかわかりません。
# echo "PATH=/home/centos/.plenv/shims:$PATH" >> /etc/sysconfig/httpd
# /etc/init.d/httpd restart
eval "$(plenv init -)" ではどんな処理がされているのでしょうか?
また、plenvの環境は、パスさえ設定しておけば、特に支障はないのでしょうか?
128デフォルトの名無しさん
2016/04/24(日) 16:10:25.44ID:pOtqw7s6 最後の行だけ。
普通に、echo $(plenv init -)すれば、標準出力に内容が出ます。
普通に、echo $(plenv init -)すれば、標準出力に内容が出ます。
129デフォルトの名無しさん
2016/04/24(日) 17:03:31.20ID:jLfEtDRT >>127
そーすこーどにぜんぶかいてあります
そーすこーどにぜんぶかいてあります
130127
2016/04/24(日) 23:45:45.94ID:WFRvhXno131デフォルトの名無しさん
2016/04/25(月) 02:23:47.24ID:wavxOtJH echoしなくてもplenv init - だけでいいよw
もっとも、それ見た後は
そーすこーどみれだけどなw
もっとも、それ見た後は
そーすこーどみれだけどなw
132デフォルトの名無しさん
2016/04/27(水) 09:59:00.96ID:I/i5T1uZ openで開いたファイルをcloseで閉じる前にexitなのでプログラム強制終了した場合
自動的に閉じられてますか?
何か問題ありますか?
自動的に閉じられてますか?
何か問題ありますか?
133デフォルトの名無しさん
2016/04/27(水) 13:09:15.67ID:3LxG86Of closeされることが保証されるわけではないが、普通のOSなら
OSがcloseを発行する。何を問題とみなすかによるが普通は問題ない
OSがcloseを発行する。何を問題とみなすかによるが普通は問題ない
134デフォルトの名無しさん
2016/04/28(木) 01:35:18.90ID:rK49iHPu cgiなら問題ないけどmod_perlとかだとファイルディスクリプタ消費したままになる
135デフォルトの名無しさん
2016/04/28(木) 02:09:41.77ID:hmSh3kQm exit ではなく die を使うという方法もある。もちろん eval ブロックの中で。
136デフォルトの名無しさん
2016/04/29(金) 11:09:29.51ID:OUpC6wqc END {
close(FILE);
}
もしくは
open(my $file,'file.txt');
だな
close(FILE);
}
もしくは
open(my $file,'file.txt');
だな
137デフォルトの名無しさん
2016/04/29(金) 19:53:28.89ID:WQhKsXVS tmp.datをlog.datにrenameするときrename失敗したら成功するまで繰り返す処理をしたい
このようにrename成功したらループを抜けるというやり方でもいいんでしょうか?
他にいいやり方はありますか?
for($n=0;$n<=100;$n++){
$rename_seikou = rename("tmp.dat","log.dat");
if($rename_seikou==1){
last;
}
}
このようにrename成功したらループを抜けるというやり方でもいいんでしょうか?
他にいいやり方はありますか?
for($n=0;$n<=100;$n++){
$rename_seikou = rename("tmp.dat","log.dat");
if($rename_seikou==1){
last;
}
}
138デフォルトの名無しさん
2016/04/29(金) 20:40:17.89ID:bfvjxGWD 本当にそういう繰り返しをしたいのなら sleep を入れた方がいいと思う。
それから、失敗した時は原因を確認した方がいいと思う。つまり、こんな感じ。
use Errno 'EBUSY';
if ( rename( $src,$dest)){
# 成功
} elsif ( $! eq EBUSY){
# 多分、別のプロセスで使用中。少し待てば成功するかも。
} else {
# 待っても無駄だろう。
die( $!);
}
それから、失敗した時は原因を確認した方がいいと思う。つまり、こんな感じ。
use Errno 'EBUSY';
if ( rename( $src,$dest)){
# 成功
} elsif ( $! eq EBUSY){
# 多分、別のプロセスで使用中。少し待てば成功するかも。
} else {
# 待っても無駄だろう。
die( $!);
}
139デフォルトの名無しさん
2016/04/29(金) 20:50:54.01ID:bfvjxGWD ごめん、間違えた。
$! eq EBUSY
じゃなくて
$! == EBUSY
$! eq EBUSY
じゃなくて
$! == EBUSY
140デフォルトの名無しさん
2016/04/30(土) 11:00:17.55ID:DNyH92Gg 正規表現での置換について質問です。
<ul>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
</ul>
上の最後の<li>だけ<li class="a">に置換したです。
1時間以上考えてますができません。
<ul>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
</ul>
上の最後の<li>だけ<li class="a">に置換したです。
1時間以上考えてますができません。
141140
2016/04/30(土) 11:01:02.01ID:DNyH92Gg 間違えました。
置換したです→置換したいです
置換したです→置換したいです
142デフォルトの名無しさん
2016/04/30(土) 11:11:29.23ID:dxKZGhAw 正規表現は少しでもほんの条件が不明瞭であれば誰にも書くことはできない
143140
2016/04/30(土) 11:14:44.17ID:DNyH92Gg 自己解決しました。
$a =~ s/(^.*)\<li\>(.*$)/$1\<li class\=\"a\"\>$2/s;
$a =~ s/(^.*)\<li\>(.*$)/$1\<li class\=\"a\"\>$2/s;
144140
2016/04/30(土) 11:39:47.11ID:DNyH92Gg すみません。
新たな問題が発生しました。
<ul>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
</ul>
<ul>
<li>い</li>
<li>い</li>
<li>い</li>
<li>い</li>
<li>い</li>
</ul>
上記の文字列が$aに入っている場合で、各<ul>の最後の<li>だけ<li class="a">に置換したいです。
新たな問題が発生しました。
<ul>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
</ul>
<ul>
<li>い</li>
<li>い</li>
<li>い</li>
<li>い</li>
<li>い</li>
</ul>
上記の文字列が$aに入っている場合で、各<ul>の最後の<li>だけ<li class="a">に置換したいです。
145デフォルトの名無しさん
2016/04/30(土) 12:40:49.01ID:nOun1cZC 木構造のものを正規表現で置換するのは無理
JavaScriptのjQuery の、addClass, removeClass, toggleClass などを使う
それか、HTMLをパースする、ライブラリを探す
JavaScriptのjQuery の、addClass, removeClass, toggleClass などを使う
それか、HTMLをパースする、ライブラリを探す
146デフォルトの名無しさん
2016/04/30(土) 15:45:10.24ID:Z/JJxf61 否定の文字クラス使えば、普通に最短マッチで出来る事だろ。
s{<li>([^>]*?</li>¥s+</ul>)}{<li class="a">$1}sg
パースするライブラリ使えっつーのは同意だがな
s{<li>([^>]*?</li>¥s+</ul>)}{<li class="a">$1}sg
パースするライブラリ使えっつーのは同意だがな
147デフォルトの名無しさん
2016/04/30(土) 15:46:02.92ID:Z/JJxf61 ああ、否定の文字クラス使わんでも出来るわ。
アホだ俺
アホだ俺
148140
2016/05/01(日) 14:05:59.88ID:mZCC86OL149デフォルトの名無しさん
2016/05/01(日) 16:22:48.05ID:EJZ0zho6 そのコードそのまま(円マークをバックスラッシュにして)
動かしたから、何らかの置換↓が得られたけど?
<ul>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li class="a">あ</li>
</ul>
<ul>
<li>い</li>
<li>い</li>
<li>い</li>
<li>い</li>
<li class="a">い</li>
</ul>
無意味なエスケープは、コードの邪魔になるだけだからしない方がいいよ。
置換 s/// の右辺は正規表現ですらない(よってエスケープの必要無い)し。
動かしたから、何らかの置換↓が得られたけど?
<ul>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li>あ</li>
<li class="a">あ</li>
</ul>
<ul>
<li>い</li>
<li>い</li>
<li>い</li>
<li>い</li>
<li class="a">い</li>
</ul>
無意味なエスケープは、コードの邪魔になるだけだからしない方がいいよ。
置換 s/// の右辺は正規表現ですらない(よってエスケープの必要無い)し。
150デフォルトの名無しさん
2016/05/03(火) 07:34:49.17ID:PeIabFbi \現\実 !−=≡ヘ(* - -)ノ
151デフォルトの名無しさん
2016/05/03(火) 22:19:44.35ID:u2mE3+tw /[0-9]{$num}/
のような量子数は変数にできないんでしょうか?(^^?
のような量子数は変数にできないんでしょうか?(^^?
152デフォルトの名無しさん
2016/05/04(水) 01:44:17.76ID:eTkSZ25N # 実行してみて
for $num (1..3){
$_ = '1' x ($num - 1);
print /[0-9]{$num}/ ? 'ok,' : 'not ok,';
$_ = '1' x $num;
print /[0-9]{$num}/ ? 'ok,' : 'not ok,';
$_ = '1' x ($num + 1);
print /[0-9]{$num}/ ? 'ok,' : 'not ok,';
print "\n";
}
for $num (1..3){
$_ = '1' x ($num - 1);
print /[0-9]{$num}/ ? 'ok,' : 'not ok,';
$_ = '1' x $num;
print /[0-9]{$num}/ ? 'ok,' : 'not ok,';
$_ = '1' x ($num + 1);
print /[0-9]{$num}/ ? 'ok,' : 'not ok,';
print "\n";
}
153デフォルトの名無しさん
2016/05/04(水) 17:17:13.34ID:cuRcUS6e154デフォルトの名無しさん
2016/05/04(水) 22:28:29.07ID:0wPtL/Lt $n = 2;
$pat_qr = $n + 1;
$pat_qr = qr/[0-9]{$pat_qr}/ ;
$pat_ev = eval( sprintf("qr/[0-9]{%d}/",$n+1));
$pat_co = qr/(??{ sprintf("[0-9]{%d}",$n+1) })/ ;
print( $_,"\n") foreach $pat_qr,$pat_ev,$pat_co;
# 個人的には $pat_qr がいいなぁ。eval を使うほどのことじゃないし $pat_co はデバッグしにくい。
$pat_qr = $n + 1;
$pat_qr = qr/[0-9]{$pat_qr}/ ;
$pat_ev = eval( sprintf("qr/[0-9]{%d}/",$n+1));
$pat_co = qr/(??{ sprintf("[0-9]{%d}",$n+1) })/ ;
print( $_,"\n") foreach $pat_qr,$pat_ev,$pat_co;
# 個人的には $pat_qr がいいなぁ。eval を使うほどのことじゃないし $pat_co はデバッグしにくい。
155デフォルトの名無しさん
2016/05/05(木) 15:23:19.51ID:zs5en64n # こうですよ
for $num (1..3){
$_ = '1' x $num;
print /[0-9]{@{[$num+1]}}/ ? 'ok,' : 'not ok,';
$_ = '1' x ($num + 1);
print /[0-9]{@{[$num+1]}}/ ? 'ok,' : 'not ok,';
$_ = '1' x ($num + 2);
print /[0-9]{@{[$num+1]}}/ ? 'ok,' : 'not ok,';
print "\n";
}
for $num (1..3){
$_ = '1' x $num;
print /[0-9]{@{[$num+1]}}/ ? 'ok,' : 'not ok,';
$_ = '1' x ($num + 1);
print /[0-9]{@{[$num+1]}}/ ? 'ok,' : 'not ok,';
$_ = '1' x ($num + 2);
print /[0-9]{@{[$num+1]}}/ ? 'ok,' : 'not ok,';
print "\n";
}
157153
2016/05/05(木) 19:13:26.95ID:eJss6EWw あのあのもう一つ
ファイルハンドルで3行読み込むのを作ってみたのですがうまくいきませんでした…
どうしたらよいのでしょうか…
while ( $line[0..2] = <DATA> ) {
print $line[0];
print $line[1];
print $line[2];
}
__DATA__
なんたら
かんたら
たらのめ
ファイルハンドルで3行読み込むのを作ってみたのですがうまくいきませんでした…
どうしたらよいのでしょうか…
while ( $line[0..2] = <DATA> ) {
print $line[0];
print $line[1];
print $line[2];
}
__DATA__
なんたら
かんたら
たらのめ
158153
2016/05/05(木) 19:19:01.51ID:eJss6EWw ちょっとサンプル省略しすぎてすみません。
":encoding(cp932)"
等で漢字の表示は問題ありませんm(__)m
while ( $line[0] = <DATA> ) {
$line[1] = <DATA>;
$line[2] = <DATA>;
....
のように分解して書くと問題ありません。(DATAは必ず3行一組になります)
一度に、3行読み込む方法があればお教えくださいm(__)m
":encoding(cp932)"
等で漢字の表示は問題ありませんm(__)m
while ( $line[0] = <DATA> ) {
$line[1] = <DATA>;
$line[2] = <DATA>;
....
のように分解して書くと問題ありません。(DATAは必ず3行一組になります)
一度に、3行読み込む方法があればお教えくださいm(__)m
159デフォルトの名無しさん
2016/05/05(木) 21:40:51.68ID:AhXWZZ47 @line[0..2]
配列スライスのシジルは@
配列スライスのシジルは@
160デフォルトの名無しさん
2016/05/05(木) 23:21:34.59ID:zs5en64n 都合よく固定長を前提にはできないだろうから、
# 全部読んじゃって
chomp(@_ = <DATA>);
# 3つづつ処理する
while (@line = splice(@_,0,3)) {
print map {"[$_]"} @line;
print "\n";
}
__END__
1
2
3
4
5
6
7
8
9
# 全部読んじゃって
chomp(@_ = <DATA>);
# 3つづつ処理する
while (@line = splice(@_,0,3)) {
print map {"[$_]"} @line;
print "\n";
}
__END__
1
2
3
4
5
6
7
8
9
161デフォルトの名無しさん
2016/06/01(水) 11:50:03.90ID:6wx+Ihuz $text = 'hoge<span class="hoge" id="hoge">"hoge"</span><span class="huge" id="huge">"hoge"</span>huge';
上のような文字列で<〜>(タグ内)に囲まれた"だけ
上のような文字列で<〜>(タグ内)に囲まれた"だけ
162デフォルトの名無しさん
2016/06/01(水) 11:54:16.91ID:6wx+Ihuz $text = 'hoge<span class="hoge" id="hoge">"hoge"</span>
<span class="huge" id="huge">"hoge"</span>huge';
上のような文字列(改行されてますが1行です)で<〜>(タグ内)に囲まれた"だけ " に置換したいです
s/(<.*?)"(.*?>)/$1"$2/g;
上のように試してみましたが、最初の1つのみ " に置換されるだけです
よろしくお願いします
<span class="huge" id="huge">"hoge"</span>huge';
上のような文字列(改行されてますが1行です)で<〜>(タグ内)に囲まれた"だけ " に置換したいです
s/(<.*?)"(.*?>)/$1"$2/g;
上のように試してみましたが、最初の1つのみ " に置換されるだけです
よろしくお願いします
163162
2016/06/01(水) 12:36:41.40ID:6wx+Ihuz タグの外側だけ置換する方法としては下記がどこかに載っていました
s/((?:\G|>)[^<]*?)"/$1"/g;
タグの内側だけ置換したい場合は>と<を逆にすればいいかと思ったのですができませんでした
s/((?:\G|>)[^<]*?)"/$1"/g;
タグの内側だけ置換したい場合は>と<を逆にすればいいかと思ったのですができませんでした
164デフォルトの名無しさん
2016/06/01(水) 12:56:13.02ID:UybPRljc >>161-163
$text =~ s{(?<=&lt;)(.+?)(?=&gt;)}{ $1 =~ s/&quot;/"/gr }eg;
$text =~ s{(?<=&lt;)(.+?)(?=&gt;)}{ $1 =~ s/&quot;/"/gr }eg;
165デフォルトの名無しさん
2016/06/01(水) 13:07:26.71ID:6wx+Ihuz166デフォルトの名無しさん
2016/06/01(水) 13:32:03.91ID:MHn5bFUb どんなエラーか解らないことにはなんとも……
ひょっとして、5.14 以前の Perl を使ってたりする?
ひょっとして、5.14 以前の Perl を使ってたりする?
167デフォルトの名無しさん
2016/06/01(水) 13:44:06.85ID:6wx+Ihuz >>166
5.8系です
AddHandler cgi-script-debugが使えなくなってデバッグができないんです
この文法チェッカもいつの間にか消えてました
http://homepage2.nifty.com/sophia0/perl.html
5.8系です
AddHandler cgi-script-debugが使えなくなってデバッグができないんです
この文法チェッカもいつの間にか消えてました
http://homepage2.nifty.com/sophia0/perl.html
168デフォルトの名無しさん
2016/06/01(水) 14:04:04.96ID:6wx+Ihuz teraterm入れてSSH登録してエラーチェックしてみました
Bareword found where operator expected at test.cgi line 7, near "s/"/"/gr"
syntax error at test.cgi line 7, near "s/"/"/gr "
test.cgi had compilation errors.
Bareword found where operator expected at test.cgi line 7, near "s/"/"/gr"
syntax error at test.cgi line 7, near "s/"/"/gr "
test.cgi had compilation errors.
169デフォルトの名無しさん
2016/06/01(水) 14:11:20.95ID:MHn5bFUb 置換の r オプションは 5.14 からです。従来通り
perl -pe 's{(?<=&lt;)(.+?)(?=&gt;)}{ ( $str = $1) =~ s!&quot;!\"!g ; $str ; }eg'
みたいな感じでどうでしょうか。
perl -pe 's{(?<=&lt;)(.+?)(?=&gt;)}{ ( $str = $1) =~ s!&quot;!\"!g ; $str ; }eg'
みたいな感じでどうでしょうか。
170デフォルトの名無しさん
2016/06/01(水) 14:17:56.91ID:6wx+Ihuz171デフォルトの名無しさん
2016/06/01(水) 20:08:28.85ID:2S8m0KQ+ 5.14(新しい) > 5.8(古い)だぞ
172デフォルトの名無しさん
2016/06/01(水) 21:17:48.26ID:1kxD8r4Z そいや5.24でpushやpop,shiiftなどにリファレンスを渡したときの
自動デリファレンスが止めになったのはなぜ?
折角5.14で入れた機能なのに。
自動デリファレンスが止めになったのはなぜ?
折角5.14で入れた機能なのに。
173デフォルトの名無しさん
2016/06/01(水) 21:25:33.54ID:BXoQUtbW なぜも何も。
もともと「実験的に採用した」って宣言してるし、
失敗でした、って delta に書いてあるし。
もともと「実験的に採用した」って宣言してるし、
失敗でした、って delta に書いてあるし。
174デフォルトの名無しさん
2016/06/02(木) 14:00:14.87ID:tGqw3Zei perlは、常にunstable ♪
オレの人生もunstable ♫
オレの人生もunstable ♫
175デフォルトの名無しさん
2016/06/02(木) 14:23:32.77ID:TTUXXyQU Windows 7で
tree D: /f > tree_list.txt
これで書き出した物をperlでフルパスに変換したいのですが、
何か良いモジュールなどはありますか?
tree D: /f > tree_list.txt
これで書き出した物をperlでフルパスに変換したいのですが、
何か良いモジュールなどはありますか?
176デフォルトの名無しさん
2016/06/02(木) 16:16:38.49ID:I/c4JKn/ File::Spec がそうかも。
177デフォルトの名無しさん
2016/06/03(金) 02:13:33.36ID:7/QVUMn+ cmd.exe にまかせるがよろし
dir /s /b D: 2>NUL
dir /s /b D: 2>NUL
178デフォルトの名無しさん
2016/06/03(金) 12:58:52.91ID:a9xFHzmZ179デフォルトの名無しさん
2016/06/04(土) 15:10:16.50ID:d7ojMir6 ループの条件を満たしてなくてもredoでループされるんだけど、そうゆうことでいいのかな
180デフォルトの名無しさん
2016/06/04(土) 15:25:38.27ID:wKu/P36l181デフォルトの名無しさん
2016/06/04(土) 16:50:14.92ID:d7ojMir6 >redo コマンドは、条件を再評価しないで、ループブロックの始めからもう一度 実行を開始します
そうかそうか、これが欲しかった。どうも。
そうかそうか、これが欲しかった。どうも。
182デフォルトの名無しさん
2016/06/08(水) 04:54:48.15ID:c/sFGpfw ちょっと相談と言うか、バグの原因が想像つかなくてこまっちんぐなんだけど、
$| = 1;
for(.....){
................
.................
print $x;
}
みたいな感じでいっぱいプリントしてる時、
プロセス実行中は8.00KB(8192B)しか出力されないんだよね。
本来は9.22KB程度出力されるはずで、これはプロセスが終了したら出力される。
$| = 1;
for(.....){
................
.................
print $x;
}
みたいな感じでいっぱいプリントしてる時、
プロセス実行中は8.00KB(8192B)しか出力されないんだよね。
本来は9.22KB程度出力されるはずで、これはプロセスが終了したら出力される。
183デフォルトの名無しさん
2016/06/08(水) 05:03:29.17ID:c/sFGpfw ちゃんとcloseを記述したら直りました。
184デフォルトの名無しさん
2016/06/08(水) 05:36:30.43ID:tfudflM8 どうしても即時出力したいなら、バッファリングで検索
185デフォルトの名無しさん
2016/06/08(水) 15:34:08.08ID:1ofjxszc 10GBくらいのCSVで作成された辞書の文字を置換して出力する場合最も適切な方法はどんな感じ?
すぐ思いつくのは下記だけど、膨大な回数HDDにアクセスして大丈夫かと不安になるがバッファリングされるから影響はないかな?
open(IN,"<Wikipedia.txt");
open(OUT,">>test.txt");
while(<IN>){
$_ =~ s/<|>/<>/g;
print OUT $_;
}
close OUT;
close IN;
すぐ思いつくのは下記だけど、膨大な回数HDDにアクセスして大丈夫かと不安になるがバッファリングされるから影響はないかな?
open(IN,"<Wikipedia.txt");
open(OUT,">>test.txt");
while(<IN>){
$_ =~ s/<|>/<>/g;
print OUT $_;
}
close OUT;
close IN;
186デフォルトの名無しさん
2016/06/08(水) 15:38:30.27ID:c/sFGpfw そら最低の理論値でも10GB分HDDから読み出しして10GB分HDDに書き出ししないとな
187デフォルトの名無しさん
2016/06/08(水) 15:56:29.67ID:1ofjxszc >>186
単にリードするだけなら10GBは大丈夫だろうけど、
出力のバッファリングが甘いと、何度も書き込みHDDに凄い負担掛かるんじゃないかと思って・・・
因みに、昔は下記みたいにしてた、やたらHDDがガリガリ言ってた気がする
正しい方法はどうするのが良いのかと思ってね・・・
$| = 1;
open(IN,"<Wikipedia.txt");
while(<IN>){
open(OUT,">>test.txt");
$_ =~ s/<|>/<>/g;
print OUT $_;
close OUT;
print $count++;
print "\n";
}
close IN;
単にリードするだけなら10GBは大丈夫だろうけど、
出力のバッファリングが甘いと、何度も書き込みHDDに凄い負担掛かるんじゃないかと思って・・・
因みに、昔は下記みたいにしてた、やたらHDDがガリガリ言ってた気がする
正しい方法はどうするのが良いのかと思ってね・・・
$| = 1;
open(IN,"<Wikipedia.txt");
while(<IN>){
open(OUT,">>test.txt");
$_ =~ s/<|>/<>/g;
print OUT $_;
close OUT;
print $count++;
print "\n";
}
close IN;
188デフォルトの名無しさん
2016/06/09(木) 08:19:20.98ID:5xTa9iMx189デフォルトの名無しさん
2016/06/09(木) 08:56:02.57ID:a3MG4bWs190デフォルトの名無しさん
2016/06/12(日) 12:28:41.66ID:JDueIOd3 どんな言語で書いても10GBのHDDをアクセスすること自体に変わりはない。
温度が上昇してエラーになるなら、扇風機で冷やしながら実行するとよい。
温度が上昇してエラーになるなら、扇風機で冷やしながら実行するとよい。
191デフォルトの名無しさん
2016/06/12(日) 13:25:11.80ID:ve4Ih4ce そうかなー
スクリプトだとなにやられてるんだか分からない印象だけど
スクリプトだとなにやられてるんだか分からない印象だけど
192デフォルトの名無しさん
2016/06/12(日) 13:26:20.33ID:0HO5/jac そもそも10GBのテキストなんざ、
今の基準で言えば普通よりちょっとデカい程度。
日常的に扱かってる人間からすれば、質問自体が意味不明。
一回こっきりの捨てスクリプトなんだろうから、
検証以前にさっさと書いて終りにすりゃあいい。
今の基準で言えば普通よりちょっとデカい程度。
日常的に扱かってる人間からすれば、質問自体が意味不明。
一回こっきりの捨てスクリプトなんだろうから、
検証以前にさっさと書いて終りにすりゃあいい。
193デフォルトの名無しさん
2016/06/12(日) 14:32:37.22ID:wrakKGfW でも>>187は毎回やってると流石にHDD痛めそうな気がする
ベストな方法や、やってはならない方法はあるでしょ
ベストな方法や、やってはならない方法はあるでしょ
194デフォルトの名無しさん
2016/06/12(日) 15:01:08.44ID:0HO5/jac195デフォルトの名無しさん
2016/06/12(日) 16:03:16.27ID:ve4Ih4ce まぁ俺は10GB程度のファイル、頻繁にDLしたり削除したりコピーしたり色々してるけどな、ほぼ毎日。
196デフォルトの名無しさん
2016/06/12(日) 18:22:13.25ID:wrakKGfW プログラムもだけど$|=1;使って動作確認してたり、
バッファリング無し、バッチ処理で毎晩10GB1行毎の書き込みは流石にまずいんじゃない?
185も$|=1;使ったらどんな動作になるんだろ?
187はコードが見やすくなるからテストでは結構使ってる
そのまま忘れてて大きなファイルを解析させてたりもある
みんな185形式で書いてるの?
バッファリング無し、バッチ処理で毎晩10GB1行毎の書き込みは流石にまずいんじゃない?
185も$|=1;使ったらどんな動作になるんだろ?
187はコードが見やすくなるからテストでは結構使ってる
そのまま忘れてて大きなファイルを解析させてたりもある
みんな185形式で書いてるの?
197デフォルトの名無しさん
2016/06/12(日) 18:23:39.84ID:wrakKGfW 速度も考えて最近は配列に貯めてからすることがある
ただWindowsだとすぐout of memoryでる
ただWindowsだとすぐout of memoryでる
198デフォルトの名無しさん
2016/06/12(日) 18:58:39.76ID:ve4Ih4ce まあ自分のPCならサブマシンでもメモリ32Gあるし別に・・・って感じだが
199デフォルトの名無しさん
2016/06/12(日) 19:00:15.13ID:ve4Ih4ce でもPerlってメモリの量が異常に増えるんだよね
10MBのデータを読み込んでごにょごにょしてたらなぜかメモリ200MBになってたり
普通にネイティブな言語使ったほうがいいのでは
10MBのデータを読み込んでごにょごにょしてたらなぜかメモリ200MBになってたり
普通にネイティブな言語使ったほうがいいのでは
200デフォルトの名無しさん
2016/06/12(日) 21:45:18.08ID:0HO5/jac どんなレス考えても、罵倒しか思い浮ばん。
HDDの負担以前の問題だよ。
open/closeを行数分繰替えすのが、
どれだけ時間の無駄(=マシンに負荷がかかる)か実例貼っとく。
$ perl -le ' sub ps { print `ps ux $$`}; ps ; for( 0 .. 9999999 ){ open my $h, ">>", "test.txt" ; print {$h} "h" } ; ps ;'
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
XXXXX 36471 13.2 0.1 2445400 3344 s002 S+ 8:24PM 0:00.16 perl -le sub ps { print `ps ux $$`}; ps ; for( 0 .. 9999999 ){ open my $h, ">>", "test.txt" ; print {$h} "h" } ; ps ;
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
XXXXX 36471 22.5 0.0 2445400 1664 s002 S+ 8:24PM 24:21.88 perl -le sub ps { print `ps ux $$`}; ps ; for( 0 .. 9999999 ){ open my $h, ">>", "test.txt" ; print {$h} "h" } ; ps ;
CPU time で24分だけど、実際には、9時半まで処理掛かってる。
HDDの負担以前の問題だよ。
open/closeを行数分繰替えすのが、
どれだけ時間の無駄(=マシンに負荷がかかる)か実例貼っとく。
$ perl -le ' sub ps { print `ps ux $$`}; ps ; for( 0 .. 9999999 ){ open my $h, ">>", "test.txt" ; print {$h} "h" } ; ps ;'
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
XXXXX 36471 13.2 0.1 2445400 3344 s002 S+ 8:24PM 0:00.16 perl -le sub ps { print `ps ux $$`}; ps ; for( 0 .. 9999999 ){ open my $h, ">>", "test.txt" ; print {$h} "h" } ; ps ;
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
XXXXX 36471 22.5 0.0 2445400 1664 s002 S+ 8:24PM 24:21.88 perl -le sub ps { print `ps ux $$`}; ps ; for( 0 .. 9999999 ){ open my $h, ">>", "test.txt" ; print {$h} "h" } ; ps ;
CPU time で24分だけど、実際には、9時半まで処理掛かってる。
201デフォルトの名無しさん
2016/06/12(日) 21:49:23.64ID:0HO5/jac $ perl -le ' sub ps { print `ps ux $$`}; ps ; open my $h, ">", "test.txt" ; for( 0 .. 9999999 ){ print {$h} "h" } ; ps ;'
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
XXXXX 40081 7.0 0.1 2445400 3324 s002 R+ 9:36PM 0:00.09 perl -le sub ps { print `ps ux $$`}; ps ; open my $h, ">", "test.txt" ; for( 0 .. 9999999 ){ print {$h} "h" } ; ps ;
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
XXXXX 40081 96.8 0.1 2445400 3340 s002 S+ 9:36PM 0:03.08 perl -le sub ps { print `ps ux $$`}; ps ; open my $h, ">", "test.txt" ; for( 0 .. 9999999 ){ print {$h} "h" } ; ps ;
$ ls -alh test.txt
-rw-r--r-- 1 XXXXX staff 19M 6 12 21:36 test.txt
今の時代の強力なマシンだろうが、こんだけ負担をかける事は、一昔前の人間だったら常識の範囲。
ちなみにフラッシュしようが、出力される量は変動しないんだから、
HDDの負担は変らん。と何回指摘されりゃ気が済むんだ?
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
XXXXX 40081 7.0 0.1 2445400 3324 s002 R+ 9:36PM 0:00.09 perl -le sub ps { print `ps ux $$`}; ps ; open my $h, ">", "test.txt" ; for( 0 .. 9999999 ){ print {$h} "h" } ; ps ;
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
XXXXX 40081 96.8 0.1 2445400 3340 s002 S+ 9:36PM 0:03.08 perl -le sub ps { print `ps ux $$`}; ps ; open my $h, ">", "test.txt" ; for( 0 .. 9999999 ){ print {$h} "h" } ; ps ;
$ ls -alh test.txt
-rw-r--r-- 1 XXXXX staff 19M 6 12 21:36 test.txt
今の時代の強力なマシンだろうが、こんだけ負担をかける事は、一昔前の人間だったら常識の範囲。
ちなみにフラッシュしようが、出力される量は変動しないんだから、
HDDの負担は変らん。と何回指摘されりゃ気が済むんだ?
202デフォルトの名無しさん
2016/06/12(日) 21:54:39.02ID:0HO5/jac203デフォルトの名無しさん
2016/06/12(日) 23:18:14.97ID:wrakKGfW204デフォルトの名無しさん
2016/06/12(日) 23:41:21.09ID:0HO5/jac205デフォルトの名無しさん
2016/06/12(日) 23:49:21.59ID:xguVhByI >>201
> ちなみにフラッシュしようが、出力される量は変動しないんだから、
> HDDの負担は変らん。と何回指摘されりゃ気が済むんだ?
出力される量は変動しなくても
書き込み回数は増えるじゃん。
フラッシュって何をやってるのか知らないの?
HDDに書き込まないでメモリに蓄えているものを
書き出す処理だぞ。
だからHDDの負担は増える。
> ちなみにフラッシュしようが、出力される量は変動しないんだから、
> HDDの負担は変らん。と何回指摘されりゃ気が済むんだ?
出力される量は変動しなくても
書き込み回数は増えるじゃん。
フラッシュって何をやってるのか知らないの?
HDDに書き込まないでメモリに蓄えているものを
書き出す処理だぞ。
だからHDDの負担は増える。
206デフォルトの名無しさん
2016/06/12(日) 23:52:30.66ID:xguVhByI ちなみに、出力される量も実際に変動する。
HDDに限らないが通常書き込みっていうのは
ブロック単位で書き込まれる。
HDDの場合は512バイトだったり最近は4Kバイトだったりする。
1バイトの書き込みでも4Kバイト書き込まれるわけだ。
だからデータ量が1000バイトだった場合、
フラッシュ無しだと4KBの書き込みだが
1バイト毎にフラッシュすると、4KB×1000=4MBの書き込み量になる。
ファイルサイズはどちらも同じ1000バイトであっても
それを作るための書き込み量は違う。
HDDに限らないが通常書き込みっていうのは
ブロック単位で書き込まれる。
HDDの場合は512バイトだったり最近は4Kバイトだったりする。
1バイトの書き込みでも4Kバイト書き込まれるわけだ。
だからデータ量が1000バイトだった場合、
フラッシュ無しだと4KBの書き込みだが
1バイト毎にフラッシュすると、4KB×1000=4MBの書き込み量になる。
ファイルサイズはどちらも同じ1000バイトであっても
それを作るための書き込み量は違う。
207デフォルトの名無しさん
2016/06/13(月) 00:08:38.69ID:GclKUW1b >ちなみにフラッシュしようが、出力される量は変動しないんだから、
>HDDの負担は変らん。と何回指摘されりゃ気が済むんだ?
この二行は、あなたのご指摘通り。
訂正します。
>>187の
>$| = 1;
は、*OUTのフラッシュになんの関与もしていないけど。
>HDDの負担は変らん。と何回指摘されりゃ気が済むんだ?
この二行は、あなたのご指摘通り。
訂正します。
>>187の
>$| = 1;
は、*OUTのフラッシュになんの関与もしていないけど。
208デフォルトの名無しさん
2016/06/13(月) 00:32:22.24ID:Yqh2uzvZ >>204
205-206が言いたいこと言ってくれた
擁護でも晒すわけでもなく、より適切な方法が見つかれば良いと思う
185にしても、もっとバッファリングしてやればHDDへのIOが減りHDDの負担は減るんじゃないかなと
標準だと4/8KBでフラッシュしてるよね、これを100MBにすればHDDへの負担はぐっと減りそう
今時のキャッシュ大きめのHDDでどの程度意味があるのか分からないし
寿命に影響するかどうかは分からないけど毎日繰り返す処理なら意味があるかも
>>207
そうなの?って思って調べてみた
http://mikeda.hatenablog.com/entry/20090503/1241365884
みたらselectしないと効かないっぽいな
205-206が言いたいこと言ってくれた
擁護でも晒すわけでもなく、より適切な方法が見つかれば良いと思う
185にしても、もっとバッファリングしてやればHDDへのIOが減りHDDの負担は減るんじゃないかなと
標準だと4/8KBでフラッシュしてるよね、これを100MBにすればHDDへの負担はぐっと減りそう
今時のキャッシュ大きめのHDDでどの程度意味があるのか分からないし
寿命に影響するかどうかは分からないけど毎日繰り返す処理なら意味があるかも
>>207
そうなの?って思って調べてみた
http://mikeda.hatenablog.com/entry/20090503/1241365884
みたらselectしないと効かないっぽいな
209デフォルトの名無しさん
2016/06/13(月) 01:15:56.79ID:w1lAZiF2 夏場なんで、while ブロックの先頭に
sleep 2 unless $. % 10000;
を入れるとよい。2つの数字は調整してみてくれ。
sleep 2 unless $. % 10000;
を入れるとよい。2つの数字は調整してみてくれ。
210デフォルトの名無しさん
2016/06/13(月) 15:19:04.03ID:bjrR9GHC #!/usr/bin/perl -w
use strict;
use File::Path;
use IO::File;
sub diskstat {
system(
use strict;
use File::Path;
use IO::File;
sub diskstat {
system(
211デフォルトの名無しさん
2016/06/13(月) 16:48:17.11ID:bjrR9GHC https://ideone.com/fUNKyh
このプログラムの意図 : >>185 と >>187 の違いがディスクアクセスに及ぼす影響の検証。
明らかに >>185 よりも >>187 の方がシステムコールの回数が多い。
しかし、それだけでディスクアクセスに違いが出てくるわけではない。
実行時間を同程度にしてみたらどうなるだろうか。
実行する前に
grep sda5
の sda5 を環境に合わせて書き換えてほしい。
このプログラムの意図 : >>185 と >>187 の違いがディスクアクセスに及ぼす影響の検証。
明らかに >>185 よりも >>187 の方がシステムコールの回数が多い。
しかし、それだけでディスクアクセスに違いが出てくるわけではない。
実行時間を同程度にしてみたらどうなるだろうか。
実行する前に
grep sda5
の sda5 を環境に合わせて書き換えてほしい。
212デフォルトの名無しさん
2016/06/14(火) 01:15:43.18ID:M6DJWkXG > 実行時間を同程度にしてみたらどうなるだろうか。
実行時間を同程度にしたら、遅い方の書き込み量が減るから
比較にならんだろw
実行時間を同程度にしたら、遅い方の書き込み量が減るから
比較にならんだろw
213デフォルトの名無しさん
2016/06/14(火) 20:04:47.85ID:UhtJW9b9 プログラムを見てくれてないのかな……だとしたらその時点でもう対象外なんだけど。
ろくに見もしないで何を想像したの?
ろくに見もしないで何を想像したの?
214デフォルトの名無しさん
2016/06/15(水) 01:35:53.40ID:7O5/ia9k そう言えば古いDiffソフト(AikoWin)やたらHDDガリガリ音鳴ってたな
あれ読み出しが少しずつでHDDに相当の負担が掛かるとか聞いたことがある
細かいファイルを書き込むのも良くないけど、自分でソフト作る時にには
呼び出しも気を付けないとまずいんだよなー
あれ読み出しが少しずつでHDDに相当の負担が掛かるとか聞いたことがある
細かいファイルを書き込むのも良くないけど、自分でソフト作る時にには
呼び出しも気を付けないとまずいんだよなー
215211
2016/06/15(水) 12:03:11.68ID:rzJhZO2i もう少しマシなプログラムを書いてみたよ。
https://ideone.com/Nh4Esi
Linux 限定だけど無修正で実行できる。
実行時間は 5 分くらいかかるよ。正確なデータを得るにはそうした方がいいみたいなんだ……
https://ideone.com/Nh4Esi
Linux 限定だけど無修正で実行できる。
実行時間は 5 分くらいかかるよ。正確なデータを得るにはそうした方がいいみたいなんだ……
216デフォルトの名無しさん
2016/06/15(水) 13:23:28.38ID:rzJhZO2i 自分の実行結果を書いておくよ。
sub f_a {
my $fh = IO::File->new( &genfn(),'>') || die( $!);
$fh->autoflush( 0);
$fh->print('h') foreach 0 .. 65535;
$fh->close;
}
sub f_b {
my $fh = IO::File->new( &genfn(),'>') || die( $!);
$fh->autoflush( 1);
$fh->print('h') foreach 0 .. 65535;
$fh->close;
}
sub f_c {
my $fn = &genfn();
foreach ( 0 .. 65535) {
my $fh = IO::File->new( $fn,'>>') || die( $!);
$fh->print('h');
$fh->close;
}
}
これらを 16 回ずつ実行した結果、f_a,f_b はそれぞれ 2232 セクタ、
f_c は 2224 セクタ書き込んだみたいだよ。もちろん書き込んだ回数だよ。
sub f_a {
my $fh = IO::File->new( &genfn(),'>') || die( $!);
$fh->autoflush( 0);
$fh->print('h') foreach 0 .. 65535;
$fh->close;
}
sub f_b {
my $fh = IO::File->new( &genfn(),'>') || die( $!);
$fh->autoflush( 1);
$fh->print('h') foreach 0 .. 65535;
$fh->close;
}
sub f_c {
my $fn = &genfn();
foreach ( 0 .. 65535) {
my $fh = IO::File->new( $fn,'>>') || die( $!);
$fh->print('h');
$fh->close;
}
}
これらを 16 回ずつ実行した結果、f_a,f_b はそれぞれ 2232 セクタ、
f_c は 2224 セクタ書き込んだみたいだよ。もちろん書き込んだ回数だよ。
217デフォルトの名無しさん
2016/06/15(水) 17:57:12.29ID:rzJhZO2i https://ideone.com/K0qeSx
もう少しユーザーフレンドリーな感じにしてみたよ。これで最後だよ。
Windows ではこういう情報を得る方法は無いの?
非同期書き込みが無いのなら彼らの言うことも間違いではないんだけど。
もう少しユーザーフレンドリーな感じにしてみたよ。これで最後だよ。
Windows ではこういう情報を得る方法は無いの?
非同期書き込みが無いのなら彼らの言うことも間違いではないんだけど。
218デフォルトの名無しさん
2016/06/18(土) 11:42:41.43ID:zTifxauk $ perl -p -e 〜
となっているのですが、-p と -e の意味を教えてください。
となっているのですが、-p と -e の意味を教えてください。
219218
2016/06/18(土) 13:00:49.64ID:zTifxauk 一行構文のOPだとわかりました。
しかし、
C:\perl\bin\perl -e 'for $i (@ARGV) { print $i ,"\n";}' args1 args2 args3
をWindows環境で実行すると
Can't find string terminator "'" anywhere before EOF at -e line 1
と出てしまいます。
解決方法を教えほしいです。
しかし、
C:\perl\bin\perl -e 'for $i (@ARGV) { print $i ,"\n";}' args1 args2 args3
をWindows環境で実行すると
Can't find string terminator "'" anywhere before EOF at -e line 1
と出てしまいます。
解決方法を教えほしいです。
220デフォルトの名無しさん
2016/06/18(土) 13:07:12.42ID:FKPQs3z7 'print "\n"'ではなく"print qq(\n)"のように
221デフォルトの名無しさん
2016/06/18(土) 14:22:55.12ID:zTifxauk C:\perl\bin\perl -e 'for $i (@ARGV) { "print $i ,qq(\n)";}' args1 args2 args3
で試したがダメでした…
で試したがダメでした…
222デフォルトの名無しさん
2016/06/18(土) 14:58:07.42ID:h9LNivvl >>221
俺は昨日から始めたんで確かなことは言えないけど、
DOSプロンプトだと、''で括ってもダメだったよ
(何か設定があるんだけど昨日からなんで...)
例えば、
perl -e 'print "hello"'
は
perl -e "print \"Hello World\n\""
ってしないと動かなかった
俺は昨日から始めたんで確かなことは言えないけど、
DOSプロンプトだと、''で括ってもダメだったよ
(何か設定があるんだけど昨日からなんで...)
例えば、
perl -e 'print "hello"'
は
perl -e "print \"Hello World\n\""
ってしないと動かなかった
223デフォルトの名無しさん
2016/06/18(土) 15:22:54.54ID:h9LNivvl よくよく考えたら、コマンドプロンプトで''はいけるはず無いよね
だって、まずコマンドプロンプトで命令が解釈されるわけだから
'a b'だと、連続した文字列とはならずに
'aとb'の2つの引数が指定されたと受け取られちゃうわけだしね
だって、まずコマンドプロンプトで命令が解釈されるわけだから
'a b'だと、連続した文字列とはならずに
'aとb'の2つの引数が指定されたと受け取られちゃうわけだしね
224デフォルトの名無しさん
2016/06/18(土) 15:30:14.88ID:xZeqh3Cr Perl の文法上
"\n"
の代わりに
qq(\n)
と書けますよ……という話じゃないのかなあ。
とりあえず、ググって見つけたページ
http://thinca.hatenablog.com/entry/20100210/1265813598
http://up-cat.net/%25A5%25B3%25A5%25DE%25A5%25F3%25A5%25C9%25A5%25D7%25A5%25ED%25A5%25F3%25A5%25D7%25A5%25C8%25A4%25CE%25A5%25A8%25A5%25B9%25A5%25B1%25A1%25BC%25A5%25D7%25BB%25C5%25CD%25CD.html
相変わらずカオスなんですね。それがいやで Linux に乗り換えたのは前世紀のことなのに……
"\n"
の代わりに
qq(\n)
と書けますよ……という話じゃないのかなあ。
とりあえず、ググって見つけたページ
http://thinca.hatenablog.com/entry/20100210/1265813598
http://up-cat.net/%25A5%25B3%25A5%25DE%25A5%25F3%25A5%25C9%25A5%25D7%25A5%25ED%25A5%25F3%25A5%25D7%25A5%25C8%25A4%25CE%25A5%25A8%25A5%25B9%25A5%25B1%25A1%25BC%25A5%25D7%25BB%25C5%25CD%25CD.html
相変わらずカオスなんですね。それがいやで Linux に乗り換えたのは前世紀のことなのに……
225デフォルトの名無しさん
2016/06/18(土) 17:13:02.52ID:Q2VQ6qXf DOS/Windowsコマンドプロンプトのクォートは "
UNIXのシェルのクォートは '
ただそれだけ
コマンドプロンプトのクォートとして "" を使っているから、Perl部分は
qq() を使ってる
UNIXのシェルのクォートは '
ただそれだけ
コマンドプロンプトのクォートとして "" を使っているから、Perl部分は
qq() を使ってる
226デフォルトの名無しさん
2016/06/18(土) 17:51:48.00ID:5RdW1n8d すごいにゃー。ワシは動けばいいやなんで。
227デフォルトの名無しさん
2016/06/18(土) 17:53:59.52ID:qpxG5nAO 動かないんだろ?
228デフォルトの名無しさん
2016/06/18(土) 20:50:09.79ID:QKdVDmdU PowerShell_ISE では、どうなる?
229デフォルトの名無しさん
2016/06/19(日) 20:43:06.86ID:p98kttl2 ファイルの中身じゃなくて、ファイル名をバイナリかなんかで扱いたいときはどうすれば良いでしょうか
どっかの国のどっか語でファイル名書いてあって、ファイル一覧を入手したら全部文字化けみたいな感じになってて困った
どっかの国のどっか語でファイル名書いてあって、ファイル一覧を入手したら全部文字化けみたいな感じになってて困った
230デフォルトの名無しさん
2016/06/19(日) 22:30:28.43ID:/GELYJ8A まず、そのファイルが壊れてないかどうかエンコーディングが判らないことには確認しようがありません。
そして、そこに書かれているファイル名が正しいとしても、問題はそのファイル名で何をするかです。
ファイルを作成するとしたら少々困難を伴うと思いますが、何をしますか?
もう少し説明が欲しいです。
そして、そこに書かれているファイル名が正しいとしても、問題はそのファイル名で何をするかです。
ファイルを作成するとしたら少々困難を伴うと思いますが、何をしますか?
もう少し説明が欲しいです。
231デフォルトの名無しさん
2016/06/19(日) 23:56:05.73ID:p98kttl2 1: ファイルは壊れてないです。あとファイルの中身はどうでも良くて困ってるのはファイルですね。
2: こちら側からバイナリを含めて希望してるのでそもそも文字コードは問わないです。
なおwindowsですので強制的な解釈としてはcp932でしょうか。文字かどうかは不明ですか。
3: 書いてある通り、ファイル一覧を入手したいです。(と言うよりすでにしました)。その時点での文字化けについてです。
2: こちら側からバイナリを含めて希望してるのでそもそも文字コードは問わないです。
なおwindowsですので強制的な解釈としてはcp932でしょうか。文字かどうかは不明ですか。
3: 書いてある通り、ファイル一覧を入手したいです。(と言うよりすでにしました)。その時点での文字化けについてです。
232デフォルトの名無しさん
2016/06/20(月) 01:41:13.70ID:Nxz2d29B 文字化けは君の環境のフォントの問題では…
233デフォルトの名無しさん
2016/06/20(月) 01:52:28.59ID:3dbzY2ue234デフォルトの名無しさん
2016/06/20(月) 01:55:16.19ID:3dbzY2ue >>231
CPANにあるWin32::Unicodeを使ってみてはどうだろう。
CPANにあるWin32::Unicodeを使ってみてはどうだろう。
235デフォルトの名無しさん
2016/06/20(月) 02:14:22.79ID:JJJI2UNm ちゃんと話を追ってればシングルクォートではコマンド文字列をperlに渡せないってことを理解できるのに
だから>>220では全体をダブルクォートで括ってるわけ
だから>>220では全体をダブルクォートで括ってるわけ
236230
2016/06/20(月) 13:40:47.81ID:cF0IFcLP >>231
「そのファイルが壊れてないか」と書いたのはファイル一覧のことだったんですが……
まあ、それは置いといて。
困っていると言われても、何をお望みなのかよく分かりません。
マルチバイト文字を作成者が意図した通りの文字として読みたいということなら、
やはりエンコーディングを知る必要があります。
そして、そのエンコーディングを扱うことが出来るソフトウェアと、もちろんフォントも必要です。
どんな環境で、どこからどのような手段で入手して、何をして文字化けだと思ったのか、
それがどうなるのが望みなのかを書いていただけないと、お役に立てそうもありません。
「そのファイルが壊れてないか」と書いたのはファイル一覧のことだったんですが……
まあ、それは置いといて。
困っていると言われても、何をお望みなのかよく分かりません。
マルチバイト文字を作成者が意図した通りの文字として読みたいということなら、
やはりエンコーディングを知る必要があります。
そして、そのエンコーディングを扱うことが出来るソフトウェアと、もちろんフォントも必要です。
どんな環境で、どこからどのような手段で入手して、何をして文字化けだと思ったのか、
それがどうなるのが望みなのかを書いていただけないと、お役に立てそうもありません。
237デフォルトの名無しさん
2016/06/20(月) 14:10:59.68ID:ppvG3ddJ ファイル名はテキストだろ。
バイナリのファイル名など、聞いたことがない
フォントが無いだけで、たぶん正常だろ。
それか、ファイル一覧を表示している、端末の文字コードが違うだけ
そのファイル名をエディタにコピーして、色々な文字コードに変えて、試してみる
バイナリのファイル名など、聞いたことがない
フォントが無いだけで、たぶん正常だろ。
それか、ファイル一覧を表示している、端末の文字コードが違うだけ
そのファイル名をエディタにコピーして、色々な文字コードに変えて、試してみる
238デフォルトの名無しさん
2016/06/20(月) 14:43:14.96ID:og12Zqf+ 先日も申しましたが、ファイル名はOSの仕様によってcp932扱いで表示されたバイナリです。
windowsにおけるバイナリとテキストの違いは、改行など一部の文字の解釈です
すなわち、ファイル名を入手した時点で破損しています
windowsにおけるバイナリとテキストの違いは、改行など一部の文字の解釈です
すなわち、ファイル名を入手した時点で破損しています
239デフォルトの名無しさん
2016/06/20(月) 15:21:44.17ID:7O0ObdXP うーん・・・
関係ないけど
ハートマークのファイル名作ったけど、
ちゃんと表示できたよ
関係ないけど
ハートマークのファイル名作ったけど、
ちゃんと表示できたよ
240デフォルトの名無しさん
2016/06/20(月) 15:27:52.95ID:JJJI2UNm >>238
「ファイルはテキストだが何のコードでエンコードされたものかわからん」をcp932で開いた
ではなくて
「cp932でエンコードしてしまって、もう元のファイルの情報は欠けてしまった文字化けファイル」を開いた
ってことか?
「ファイルはテキストだが何のコードでエンコードされたものかわからん」をcp932で開いた
ではなくて
「cp932でエンコードしてしまって、もう元のファイルの情報は欠けてしまった文字化けファイル」を開いた
ってことか?
241デフォルトの名無しさん
2016/06/20(月) 16:05:49.21ID:S2CnEqh7 >>238
破損とは何か。期待値と実際値を言わないとわからん
破損とは何か。期待値と実際値を言わないとわからん
242デフォルトの名無しさん
2016/06/20(月) 16:53:54.14ID:cF0IFcLP もう一度聞くけど、どこからどのような手段で入手して、どうやって見てるの?
どうなってほしいの? 使ったソフトウェアの仕様はちゃんと理解できてるの?
どうなってほしいの? 使ったソフトウェアの仕様はちゃんと理解できてるの?
243デフォルトの名無しさん
2016/06/20(月) 23:26:05.47ID:og12Zqf+ Aディレクトリの中のファイル名をopendirでとってくる。
この時のファイル名ってどう言う扱い?バイナリ?テキスト?コードは?フラグは?
とってきたらそれがすでに破損してて開くこともできない。
この時のファイル名ってどう言う扱い?バイナリ?テキスト?コードは?フラグは?
とってきたらそれがすでに破損してて開くこともできない。
244デフォルトの名無しさん
2016/06/20(月) 23:27:22.44ID:og12Zqf+ もちろん cp932で定義されてる範囲のバイト列ではバグらないよ
245デフォルトの名無しさん
2016/06/21(火) 00:30:40.48ID:zxMwhnoQ そうですか。
で?
で?
246デフォルトの名無しさん
2016/06/21(火) 12:21:49.21ID:yHwsrvxs -------------------------------------------------------
Perl に関係ない話題は、以上で終了。
Perl に関係ない話題は、以上で終了。
247デフォルトの名無しさん
2016/06/22(水) 02:03:09.88ID:pkNIGL7K >>ファイルの中身じゃなくて、ファイル名をバイナリかなんかで扱いたいときはどうすれば良いでしょうか
特別なことをしなければバイナリで扱うことになる。むしろファイル名は文字列では扱(え|わ)ない。
特別なことをしなければバイナリで扱うことになる。むしろファイル名は文字列では扱(え|わ)ない。
248デフォルトの名無しさん
2016/06/22(水) 17:07:36.10ID:NJ9t5GVO Perlを使って下記のように2文字半角スペースを入れたいのです。
0015000008006a3376 -> 00 15 00 00 08 00 6a 33 76
下記を教えて貰いましたが旨く出来ません・・・アドバイス願います。
$ perl -p -e 's/(..)/$1 /g;'
001500 -> 00 15 00
0015000008006a3376 -> 00 15 00 00 08 00 6a 33 76
下記を教えて貰いましたが旨く出来ません・・・アドバイス願います。
$ perl -p -e 's/(..)/$1 /g;'
001500 -> 00 15 00
249デフォルトの名無しさん
2016/06/22(水) 17:34:24.64ID:MK9gPhs4 いや、ちゃんとその通りになったけど……どううまくいかなかったの?
末尾にスペースが入っちゃいかんとかなら、方法はあるけど。
末尾にスペースが入っちゃいかんとかなら、方法はあるけど。
250デフォルトの名無しさん
2016/06/22(水) 17:34:34.20ID:zY+0G6HH それでできたけど。
251デフォルトの名無しさん
2016/06/22(水) 17:44:10.61ID:NJ9t5GVO 試したのは下記ですが、進まないと言うか終らないんです。
連続数字は変えますが・・・123456に変更
perl -p -e 's/ 123456/$1 /g;'
perl -p -e 's/(123456)/$1 /g;'
perl -p -e 's/( 123456)/$1 /g;'
perl -p -e 's/\(123456\)/$1 /g;'
連続数字は変えますが・・・123456に変更
perl -p -e 's/ 123456/$1 /g;'
perl -p -e 's/(123456)/$1 /g;'
perl -p -e 's/( 123456)/$1 /g;'
perl -p -e 's/\(123456\)/$1 /g;'
252デフォルトの名無しさん
2016/06/22(水) 18:37:34.12ID:ZXocXNxo >>251
いや、そのドットが重要なのでは…?
いや、そのドットが重要なのでは…?
253デフォルトの名無しさん
2016/06/22(水) 19:34:58.14ID:NJ9t5GVO254デフォルトの名無しさん
2016/06/22(水) 19:45:27.49ID:9eEpB7QB もう連続した数値を2桁ずつ区切るとは話が違ってきてるぞ
まあ色々試しているんだろうが、まず正規表現をちゃんと勉強した方が結局は早道だよ
まあ色々試しているんだろうが、まず正規表現をちゃんと勉強した方が結局は早道だよ
255デフォルトの名無しさん
2016/06/22(水) 20:13:59.90ID:SZhXzwW9256デフォルトの名無しさん
2016/06/22(水) 20:14:45.08ID:GjDXavCQ $string = '012345';
$string =~ s/(..)/$1 /g;
$string =~ s/(..)/$1 /g;
257デフォルトの名無しさん
2016/06/22(水) 20:36:25.70ID:jdKVcriH s/(..)/$1 /g
( ) で囲むと、キャプチャーできて、$1〜9 で後方参照できる。
. は、任意の1文字だから、.. で2文字
その2文字を、$1で参照して、その後ろに、半角空白を付けている。
$1の後ろに、半角空白があるだろ
g(global)フラグは、すべて置換する
だから、ab なら、ab半角空白 となる。
正規表現の説明を参照
( ) で囲むと、キャプチャーできて、$1〜9 で後方参照できる。
. は、任意の1文字だから、.. で2文字
その2文字を、$1で参照して、その後ろに、半角空白を付けている。
$1の後ろに、半角空白があるだろ
g(global)フラグは、すべて置換する
だから、ab なら、ab半角空白 となる。
正規表現の説明を参照
258デフォルトの名無しさん
2016/06/22(水) 20:38:53.55ID:q7cmPaAS 質問者は本当にやりたいことを隠して質問してるからもうどおでもいいけど
なぜ perl -p -e 's/(..)/$1 /g;' でうまくいっちゃうんだろうね。
ぱっと見だと
001500 -> 00 01 15 50 00
になってもおかしくないのになと思った。
なぜ perl -p -e 's/(..)/$1 /g;' でうまくいっちゃうんだろうね。
ぱっと見だと
001500 -> 00 01 15 50 00
になってもおかしくないのになと思った。
259デフォルトの名無しさん
2016/06/22(水) 21:11:10.25ID:NJ9t5GVO260デフォルトの名無しさん
2016/06/22(水) 22:35:11.08ID:jdKVcriH >>258
1234なら、12 23 34 にはならない
.. は2文字に一致するから、12に一致する。
すると次は、3からスタートするから、34に一致する
つまり、一致した次の文字から、スタートする
1234なら、12 23 34 にはならない
.. は2文字に一致するから、12に一致する。
すると次は、3からスタートするから、34に一致する
つまり、一致した次の文字から、スタートする
261デフォルトの名無しさん
2016/06/22(水) 23:26:29.09ID:q7cmPaAS なるほろー。
最初はこんな感じが頭にうかんだけど冗長だね。ワンライナー3級ですな。
perl -ne 'for( $i = 0; $i < length() ; $i += 2 ){ print substr($_,$i,2)" " }'
最初はこんな感じが頭にうかんだけど冗長だね。ワンライナー3級ですな。
perl -ne 'for( $i = 0; $i < length() ; $i += 2 ){ print substr($_,$i,2)" " }'
262デフォルトの名無しさん
2016/06/23(木) 09:02:33.36ID:9bmKWFfz もう顔文字にしか見えない(..)どうしてくれる
264デフォルトの名無しさん
2016/06/23(木) 14:28:28.61ID:Fa0lhzij265デフォルトの名無しさん
2016/06/28(火) 23:22:27.94ID:sQcX3Fgh 複数の文字列フィルタ (grep や s) を連続で通す書き方って、どうだったっけ?
ある文字列を
・grep でフィルタ → grep で再度フィルタ → s で置換 → split で分割 → 先頭要素だけスカラー変数に格納
これをスマートに(可能ならば1行で)やりたい。
ある文字列を
・grep でフィルタ → grep で再度フィルタ → s で置換 → split で分割 → 先頭要素だけスカラー変数に格納
これをスマートに(可能ならば1行で)やりたい。
266デフォルトの名無しさん
2016/06/28(火) 23:31:42.78ID:IoEHfO5D @result = map {(split //)[0]} map {s//;$_} grep {} grep {} @strings;
こんな雰囲気でええんでないかい?
こんな雰囲気でええんでないかい?
267デフォルトの名無しさん
2016/06/29(水) 01:53:58.12ID:edw32cCt mapやgrepを一行で複数書くのはアホの代表だと思いまーす
268デフォルトの名無しさん
2016/07/02(土) 14:22:47.36ID:UtcihNE2 基本的に日本語で書いたときの逆順に記述するだけなんだけどね
マニュアル読んで分からなければたぶん無理だろう
マニュアル読んで分からなければたぶん無理だろう
269デフォルトの名無しさん
2016/07/02(土) 15:01:42.19ID:9DiVepfM 批判するならコードかけや
270デフォルトの名無しさん
2016/07/04(月) 00:55:08.84ID:xC//1vCA id="011"<width>1</width>
この文字列から011だけ正規表現で抜き出す方法教えてください
idの数値だけを抜き出したい
この文字列から011だけ正規表現で抜き出す方法教えてください
idの数値だけを抜き出したい
271デフォルトの名無しさん
2016/07/04(月) 00:57:21.80ID:eDhj/6QR272デフォルトの名無しさん
2016/07/04(月) 01:08:21.29ID:xC//1vCA >>271
ありますが、かなり長いxmlなので必要だと思った部分だけ抜き出しました
もう少し抜き出してみるとこんな感じです
source="http://hogehoge.xml" />
<name="foo" id="0110"
このような文字列が大量にあってそのなかからidの数値だけが欲しいです
ありますが、かなり長いxmlなので必要だと思った部分だけ抜き出しました
もう少し抜き出してみるとこんな感じです
source="http://hogehoge.xml" />
<name="foo" id="0110"
このような文字列が大量にあってそのなかからidの数値だけが欲しいです
273デフォルトの名無しさん
2016/07/04(月) 01:29:50.90ID:xC//1vCA274デフォルトの名無しさん
2016/07/04(月) 22:53:37.85ID:0oVcG5wM HTMLパーサーを使うのが一番簡単で正確
コメントの中にHTMLがあったらどうするんだ?
つーか正規表現を乱用するな。
コメントの中にHTMLがあったらどうするんだ?
つーか正規表現を乱用するな。
275デフォルトの名無しさん
2016/07/04(月) 22:54:10.05ID:0oVcG5wM XMLパーサーか
276デフォルトの名無しさん
2016/07/05(火) 17:36:47.05ID:QGn+r4HY277デフォルトの名無しさん
2016/07/05(火) 17:48:38.40ID:gL12vNid なんか最初のだと後に<width>のある特定のidの値が欲しいのかな?って思ってたけど
そうでもなくて全部のidの値でいいんだってのが>>273でわかったんで拍子抜けしたところ
そうでもなくて全部のidの値でいいんだってのが>>273でわかったんで拍子抜けしたところ
278デフォルトの名無しさん
2016/07/08(金) 23:33:47.61ID:l/0Eyz2z うん、自称ベテランにありがち。
279初心者です
2016/07/09(土) 07:48:40.33ID:g+Tip2fR 宜しくお願いします。
$ua->cookie_jar(HTTP::Cookies->new(file => "cookie.txt",autosave => 1));
でcookie.txtにクッキーを取得できるのは分かりますが
削除したい場合にはどのようなコードを書くんでしょうか?
$ua->cookie_jar(HTTP::Cookies->new(file => "cookie.txt",autosave => 1));
でcookie.txtにクッキーを取得できるのは分かりますが
削除したい場合にはどのようなコードを書くんでしょうか?
280デフォルトの名無しさん
2016/07/09(土) 16:55:14.14ID:ce8+Vk05 そういえばいつもお世話になってるのに知らないな……と思ってマニュアルを読んでみた。
どうやら clear を使うらしいな。まずは scan で中身を見てみるのが良さそうだ。
これ以上は説明のしようがない。自分で頑張ってほしい。
どうやら clear を使うらしいな。まずは scan で中身を見てみるのが良さそうだ。
これ以上は説明のしようがない。自分で頑張ってほしい。
281デフォルトの名無しさん
2016/07/09(土) 21:07:47.73ID:g+Tip2fR ウィッス
282デフォルトの名無しさん
2016/07/11(月) 17:00:44.97ID:ELH2iWp3 マルチプロセス処理の Parallel::Prefork は、
Windows の StrawberryPerl か ActivePerl に、インストール可能ですか?
http://pass.cpantesters.org/distro/P/Parallel-Prefork.html
Strawberry、Active、旧バージョン、32bit、64bitなど色々試したけど、
>Can't locate Parallel/Prefork.pm in @INC (you may need to install the Parallel::
>Prefork module) (@INC contains: C:/...
Windows の StrawberryPerl か ActivePerl に、インストール可能ですか?
http://pass.cpantesters.org/distro/P/Parallel-Prefork.html
Strawberry、Active、旧バージョン、32bit、64bitなど色々試したけど、
>Can't locate Parallel/Prefork.pm in @INC (you may need to install the Parallel::
>Prefork module) (@INC contains: C:/...
283デフォルトの名無しさん
2016/07/12(火) 01:04:59.55ID:BoIJCZeB cpanmやらppmでやってみたら
284デフォルトの名無しさん
2016/07/14(木) 20:00:42.23ID:GgJblQeZ 突然文字が正しく表示できなくなるゴミPerl
人をイラつかせるために作られた言語だなこれ
存在価値がないどころか存在事態が害悪
早く消滅すればいいのに
人をイラつかせるために作られた言語だなこれ
存在価値がないどころか存在事態が害悪
早く消滅すればいいのに
285デフォルトの名無しさん
2016/07/14(木) 20:06:36.90ID:GgJblQeZ マジで使い物にならない
「ゴミPerlで文字がいきなり変になる対処」
「産廃Perlの文字取り扱いがおかしいのをなんとかする方法」
「糞Perlが文字をまともに扱えないことへの特効薬」
もう数時間検索してるが解決案が出てこない
こんなに酷い言語はPerlくらい
「ゴミPerlで文字がいきなり変になる対処」
「産廃Perlの文字取り扱いがおかしいのをなんとかする方法」
「糞Perlが文字をまともに扱えないことへの特効薬」
もう数時間検索してるが解決案が出てこない
こんなに酷い言語はPerlくらい
286デフォルトの名無しさん
2016/07/14(木) 20:15:06.51ID:GgJblQeZ Perlは本物のゴミ
文字すらまともに表示できないとか利用価値なし
文字すらまともに表示できないとか利用価値なし
287デフォルトの名無しさん
2016/07/14(木) 20:25:10.95ID:GgJblQeZ Perlのゴミなところ
文字「あ」すら表示すらできないためとてつもなくイライラする
文字「あ」すら表示すらできないためとてつもなくイライラする
288デフォルトの名無しさん
2016/07/14(木) 20:28:38.21ID:GgJblQeZ 明日納品なのに解決する兆しなし
こういうときは一から書き直すことも多いが何千行もあるシステムを明日までに書き上げられるわけもない
本当にPerlはゴミすぎる
こういうときは一から書き直すことも多いが何千行もあるシステムを明日までに書き上げられるわけもない
本当にPerlはゴミすぎる
289デフォルトの名無しさん
2016/07/14(木) 23:24:13.01ID:RqQ+21r9 だからバイナリで扱えと口が酸っぱくなるほど言ってきたわけで聞き入れないお前が悪い。
290デフォルトの名無しさん
2016/07/15(金) 08:14:17.03ID:rP1+mz2q 文字コードを理解してないだけでは・・・?
291デフォルトの名無しさん
2016/07/15(金) 08:34:29.93ID:XWIPLqFW テンプレの>>5 を誰かが勝手に変えたからだ。
元々はこうなっていた。
http://pc12.2ch.net/test/read.cgi/tech/1234181856/4
------------------------------------------------------------
# [Perl 日本語処理の基礎の基礎]
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO =>
元々はこうなっていた。
http://pc12.2ch.net/test/read.cgi/tech/1234181856/4
------------------------------------------------------------
# [Perl 日本語処理の基礎の基礎]
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO =>
292デフォルトの名無しさん
2016/07/15(金) 08:36:25.21ID:XWIPLqFW ありゃ?途中で切れちゃった。>>291のリンク先見てね。
293デフォルトの名無しさん
2016/07/15(金) 09:08:17.43ID:ATzxunsm とりあえず Data::Dumper と PerlIO::get_layers を使えば助けを求めるのに役立つと思うが
責任転嫁しかできないゴミに言ってもなぁ……
責任転嫁しかできないゴミに言ってもなぁ……
294デフォルトの名無しさん
2016/07/15(金) 12:22:26.70ID:XWIPLqFW >>285 それからな、
> ゴミPerl
> 産廃Perl
> 糞Perl
どれも、なかなかいいところを突いているが、ちょっと外れているな。
正解は「ガラクタ」だ。
Perl とは「pathologically eclectic rubbish lister」
(病的折衷主義のガラクタ出力装置)の 略なのだ。
> ゴミPerl
> 産廃Perl
> 糞Perl
どれも、なかなかいいところを突いているが、ちょっと外れているな。
正解は「ガラクタ」だ。
Perl とは「pathologically eclectic rubbish lister」
(病的折衷主義のガラクタ出力装置)の 略なのだ。
295デフォルトの名無しさん
2016/07/16(土) 12:58:34.75ID:STpjI2h3 インコード
使ったソースは
ウンコード
使ったソースは
ウンコード
296デフォルトの名無しさん
2016/07/17(日) 01:45:28.71ID:T2eP0LKz 内部エンコードはperl独特だよね。
扱えれば入力と出力がどんなエンコードだろうが無双出来るけど
扱えれば入力と出力がどんなエンコードだろうが無双出来るけど
297デフォルトの名無しさん
2016/07/17(日) 09:40:41.84ID:kAN9hSRv >>294
「Perl を愛する人にとっては」と前置きするのを忘れてるぞ。
「Perl を愛する人にとっては」と前置きするのを忘れてるぞ。
298デフォルトの名無しさん
2016/07/17(日) 13:59:57.99ID:D/SlpqZf まぁperlなんて使い物にならないでしょ
use utf8;付けたらそれまで文字化けしなかったUTF8の文字列が文字化けしたし
use utf8;付けたらそれまで文字化けしなかったUTF8の文字列が文字化けしたし
299デフォルトの名無しさん
2016/07/17(日) 14:42:10.28ID:F+fhoGjl なにその理論(笑)
まぁ使いにくいのは異論ないが
まぁ使いにくいのは異論ないが
300デフォルトの名無しさん
2016/07/17(日) 16:24:12.49ID:Cv1W2kE4 ではperlじゃないならなにがいいのかな。python?
rubyはパイプ記号が変なところで出てくるからちょっと違和感有り。
rubyはパイプ記号が変なところで出てくるからちょっと違和感有り。
301デフォルトの名無しさん
2016/07/17(日) 17:57:00.54ID:PyzTEoPA = パイプ記号
302デフォルトの名無しさん
2016/07/17(日) 17:57:53.58ID:F+fhoGjl 賭けてもいいが、文字コードが分からないのをPerlのせいにしてるやつが、
自分で1からプログラミングしたら壊滅的な状況になると思う。
自分で1からプログラミングしたら壊滅的な状況になると思う。
303デフォルトの名無しさん
2016/07/18(月) 02:39:59.89ID:e41bhxXR でも、かつて壊滅的な状況じゃなかったよね?
304デフォルトの名無しさん
2016/07/18(月) 03:14:08.10ID:GZVIgCur >賭けてもいいが、文字コードが分からないのをPerlのせいにしてるやつが、
>自分で1からプログラミングしたら壊滅的な状況になると思う。
意味不明な言動をする気違い。
「賭けてもいいが、腹が痛くなるのを残飯のせいにしてるやつが、
自分で1から料理したら壊滅的な状況になると思う。」
と言ってるのと同等で意味不明。
気違い。
>自分で1からプログラミングしたら壊滅的な状況になると思う。
意味不明な言動をする気違い。
「賭けてもいいが、腹が痛くなるのを残飯のせいにしてるやつが、
自分で1から料理したら壊滅的な状況になると思う。」
と言ってるのと同等で意味不明。
気違い。
305デフォルトの名無しさん
2016/07/18(月) 07:46:08.11ID:C0GpTohk 自分で料理出来るのであれば、残飯なんて最初から食べないよ…
残飯を食べるという事は、食べざろうえない理由があっての事だろうに…
残飯を食べるという事は、食べざろうえない理由があっての事だろうに…
306デフォルトの名無しさん
2016/07/18(月) 08:14:55.04ID:dOZOPpl8 すくなくとも腹痛を人のせいにしなくてすむんじゃね?
307デフォルトの名無しさん
2016/07/18(月) 14:09:08.76ID:UhcVRSnP 高級料理も残せば残飯になるのさ。
最後の姿を見ただけで、本来の姿を判断するのは
無能というもの。
最後の姿を見ただけで、本来の姿を判断するのは
無能というもの。
308デフォルトの名無しさん
2016/07/19(火) 09:36:50.47ID:BbD/ZGSl 文字コードが分からないのをPerlのせいにしてるのは馬鹿の上限を突破してるが、
腹痛を残飯のせいにするのは間違ってないだろう。食ったと言う意味では馬鹿だが
腹痛を残飯のせいにするのは間違ってないだろう。食ったと言う意味では馬鹿だが
309デフォルトの名無しさん
2016/07/19(火) 14:33:33.84ID:kU2ISgr0 どんなに文字コードを理解している人間でも文字をまともに扱えないピログラム言語の前では無力
その程度のことも分からないのかはたまたPerlがまともな言語だと錯覚しているのか
もし錯覚しているならば自分の使っている言語についてほとんど何も知らないということになる
まずはその自覚をすべきである
その程度のことも分からないのかはたまたPerlがまともな言語だと錯覚しているのか
もし錯覚しているならば自分の使っている言語についてほとんど何も知らないということになる
まずはその自覚をすべきである
310デフォルトの名無しさん
2016/07/19(火) 15:10:05.04ID:QuuYpuW+ 参考までに聞くけど、文字をまともに扱える言語って何?
311デフォルトの名無しさん
2016/07/19(火) 15:23:05.53ID:BbD/ZGSl 全行つっこみどころ満載なやつにかまってはいかん
312デフォルトの名無しさん
2016/07/20(水) 17:32:04.55ID:gGnx4FL9 んで俺も文字をまともに扱える言語がなにか気になるわけだが
310とは別人
310とは別人
313デフォルトの名無しさん
2016/07/20(水) 19:56:54.60ID:lrew/2ZZ 文字は知らんけど、
Perlってあらゆる面でPHPより劣ってるよな。
Perlってあらゆる面でPHPより劣ってるよな。
314デフォルトの名無しさん
2016/07/20(水) 20:04:27.70ID:y5BMpkOv PHPってHTML言語じゃないの?比較の対象にもならないと思うんだが。
rubyに負けてるというならまだわかるけど。
rubyに負けてるというならまだわかるけど。
315デフォルトの名無しさん
2016/07/20(水) 21:52:53.39ID:gGnx4FL9 PHPてあんた
316デフォルトの名無しさん
2016/07/20(水) 23:37:17.38ID:E+SEwayU >>314
HTML言語ってなんやw
HTMLに埋め込めるってだけでごく普通の
プログラム言語だぞ。
どれくらい普通かというと以下の機能が搭載されてる
・クラス
・インターフェース
・トレイト
・ラムダ
・クロージャー
・名前空間
・例外
・ジェネレーター
・ガベージコレクション
あと言語機能じゃないが、CLIプログラムの作成や
ウェブフレームワークなどもある。
HTML言語ってなんやw
HTMLに埋め込めるってだけでごく普通の
プログラム言語だぞ。
どれくらい普通かというと以下の機能が搭載されてる
・クラス
・インターフェース
・トレイト
・ラムダ
・クロージャー
・名前空間
・例外
・ジェネレーター
・ガベージコレクション
あと言語機能じゃないが、CLIプログラムの作成や
ウェブフレームワークなどもある。
317デフォルトの名無しさん
2016/07/20(水) 23:43:45.09ID:lrew/2ZZ >PHPってHTML言語
Perl厨は他の言語をロクに知りもしないで
敬遠してるんだろうな。
だからPerl厨はいつまで経っても
エンジニアとして半人前なのだろう。
Perl厨は他の言語をロクに知りもしないで
敬遠してるんだろうな。
だからPerl厨はいつまで経っても
エンジニアとして半人前なのだろう。
318デフォルトの名無しさん
2016/07/20(水) 23:47:10.52ID:E5afqhTD 309ではないがC言語。もちろんPerlもだ。
ついでなんで
s/ピログラム言語/プログラム言語/;
ついでなんで
s/ピログラム言語/プログラム言語/;
319デフォルトの名無しさん
2016/07/20(水) 23:55:15.99ID:gGnx4FL9 Cって純粋なC?
ご冗談を。
あれは何も文字を扱ってないよ。
自分で作って下さい、ってね。
ご冗談を。
あれは何も文字を扱ってないよ。
自分で作って下さい、ってね。
320デフォルトの名無しさん
2016/07/20(水) 23:58:27.03ID:gGnx4FL9 >>316
だからなに?
その機能'(笑)はわざわざ書かなくてはならないことなの?
だから文字の扱いに対してもおかしな考えを持つんだね。
文字を扱うのは言語の機能(笑)が大事なんだってね。
基本プログラムが出来ない人はスクリプトが持つ機能とやらに注目したがる。
自分でプログラミングできないからね。
だからなに?
その機能'(笑)はわざわざ書かなくてはならないことなの?
だから文字の扱いに対してもおかしな考えを持つんだね。
文字を扱うのは言語の機能(笑)が大事なんだってね。
基本プログラムが出来ない人はスクリプトが持つ機能とやらに注目したがる。
自分でプログラミングできないからね。
321デフォルトの名無しさん
2016/07/21(木) 00:13:43.65ID:qEfVH42B 普通のunix処理系にperlは入ってるけどPHPは入ってないでしょ。
Webプログラミングなんてどうでもいい。システムプログラミングとか
テキストマイニングしたいんだって動機から入るとぱっと見PHPは目に入らないよ。
紹介がWeb用ですなんだし。
幼児的に誹謗中傷しないで諭すコミュ力をつけたほうが。。
Webプログラミングなんてどうでもいい。システムプログラミングとか
テキストマイニングしたいんだって動機から入るとぱっと見PHPは目に入らないよ。
紹介がWeb用ですなんだし。
幼児的に誹謗中傷しないで諭すコミュ力をつけたほうが。。
322デフォルトの名無しさん
2016/07/21(木) 01:02:15.71ID:eeWcI0WT PerlとPHPを比較するって事自体、CGIの定番としてPerlが使われはじめた15〜20年ぐらい前の話だから
323デフォルトの名無しさん
2016/07/21(木) 02:09:41.10ID:vaQfL518324デフォルトの名無しさん
2016/07/21(木) 02:18:26.64ID:QEbE4SDT >>319
お前のいう文字は文字列のことか?
お前のいう文字は文字列のことか?
325デフォルトの名無しさん
2016/07/21(木) 09:47:01.78ID:oSsee0hG 質問者が言う文字だ
質問じゃなくて子供の八つ当たりに見えたが
質問じゃなくて子供の八つ当たりに見えたが
326デフォルトの名無しさん
2016/07/21(木) 10:12:11.24ID:wN4yZ2B5 普通のunix処理系wwww
普通てwwwwwwwwwww
こんな曖昧でいい加減な単語を使って反論になると思ってんのかwww
こんな客観的数値も示せない思い込みが根拠になるなら
普通の人間はPerlなんざ使わねーよwwwwwwwww
普通の人間はなwwwwwwwwwwwwwwwwwwwwwww
普通てwwwwwwwwwww
こんな曖昧でいい加減な単語を使って反論になると思ってんのかwww
こんな客観的数値も示せない思い込みが根拠になるなら
普通の人間はPerlなんざ使わねーよwwwwwwwww
普通の人間はなwwwwwwwwwwwwwwwwwwwwwww
327デフォルトの名無しさん
2016/07/21(木) 14:22:48.08ID:+jQ9eKqj perl-5.24.0.tar.gz 開いて見てみたけど
ソースはC言語で書かれているんだよね
作った人は「自分で作って下さい」を実行したんだろうね
ソースはC言語で書かれているんだよね
作った人は「自分で作って下さい」を実行したんだろうね
328デフォルトの名無しさん
2016/07/22(金) 00:54:29.43ID:ak+a/2Hs 文字を扱うのは人間。Perlが扱っているのは文字コードな。
329デフォルトの名無しさん
2016/07/22(金) 02:53:58.61ID:jSbimIDf >>316
post/getがよしなにスーパーグローバル変数(笑)に入ったり
何もしなくてもエラーがブラウザで見られたり(言語がhttpプロトコルを理解できてる?)
iniファイルで挙動が変わったり
ごく普通のプログラム言語からはかけ離れてるだろ
Javascriptの方がよっぽど普通なんだけどなぁ
post/getがよしなにスーパーグローバル変数(笑)に入ったり
何もしなくてもエラーがブラウザで見られたり(言語がhttpプロトコルを理解できてる?)
iniファイルで挙動が変わったり
ごく普通のプログラム言語からはかけ離れてるだろ
Javascriptの方がよっぽど普通なんだけどなぁ
330デフォルトの名無しさん
2016/07/22(金) 03:14:36.53ID:7iYsigKa > post/getがよしなにスーパーグローバル変数(笑)に入ったり
それは10年以上前の話だよw
知識止まってんなぁ。
それは10年以上前の話だよw
知識止まってんなぁ。
331デフォルトの名無しさん
2016/07/22(金) 03:31:19.54ID:jSbimIDf332デフォルトの名無しさん
2016/07/22(金) 04:41:07.53ID:7iYsigKa333デフォルトの名無しさん
2016/07/22(金) 09:01:23.54ID:jSbimIDf >>332
それはCGIとかがquerystringを環境変数へセットしてるだけであって(postは標準入力)
環境変数や標準入力、argsを読む機構はperlに限らずどの言語で備えてるでしょ。
デリミタも指定せずname[]のようなオレオレ仕様で勝手に解釈して予め変数に入れるのを
言語のレイヤーで行うのはphpぐらいしか思いつかない。
それはCGIとかがquerystringを環境変数へセットしてるだけであって(postは標準入力)
環境変数や標準入力、argsを読む機構はperlに限らずどの言語で備えてるでしょ。
デリミタも指定せずname[]のようなオレオレ仕様で勝手に解釈して予め変数に入れるのを
言語のレイヤーで行うのはphpぐらいしか思いつかない。
334デフォルトの名無しさん
2016/07/22(金) 09:13:02.54ID:7iYsigKa >>333
え?「思いつかない」ってだけ?w
え?「思いつかない」ってだけ?w
335デフォルトの名無しさん
2016/07/22(金) 09:14:42.73ID:DCfhc9fh PHPの話してる時点でズレてるとは思わんのかね
336デフォルトの名無しさん
2016/07/22(金) 13:21:21.28ID:9lWfzFCE いきなりなんの前触れもなかったし、何言ってんだ?と思ったら、PHPのdisりかよ。
知らんがな…
知らんがな…
337デフォルトの名無しさん
2016/07/22(金) 14:07:48.50ID:jisYPSD0 >セットしてるだけ
だけw
だけw
338デフォルトの名無しさん
2016/07/22(金) 14:50:50.79ID:jisYPSD0 言い訳が苦しくなってくると、最後に「だけ」を付加するPerl厨
窃盗犯が「ちょっと借りただけだろ」と言い訳するのと同じ
犯罪者と同じ思考パターンを有するPerl厨
ちなみに犯罪者と同じ思考パターンを持つヴァカがPerlを選ぶのか
Perlを使ってるうちに犯罪者と同じ思考パターンを持つようになるのかは不明
どちらにせよPerl厨はヴァカで犯罪者予備軍ということに変わりはない
まともな人間はPHPを選ぶ
窃盗犯が「ちょっと借りただけだろ」と言い訳するのと同じ
犯罪者と同じ思考パターンを有するPerl厨
ちなみに犯罪者と同じ思考パターンを持つヴァカがPerlを選ぶのか
Perlを使ってるうちに犯罪者と同じ思考パターンを持つようになるのかは不明
どちらにせよPerl厨はヴァカで犯罪者予備軍ということに変わりはない
まともな人間はPHPを選ぶ
339デフォルトの名無しさん
2016/07/22(金) 22:02:06.14ID:ZdAo90QB 今時仕事にも趣味にも役に立たないPHP選ぶバカはいないだろ
340デフォルトの名無しさん
2016/07/22(金) 23:10:31.36ID:jSbimIDf >>334
php以外の該当する言語を一つあげるだけで完全に論破できるチャンスだよ!
php以外の該当する言語を一つあげるだけで完全に論破できるチャンスだよ!
341デフォルトの名無しさん
2016/07/22(金) 23:38:00.41ID:SRU6z2ZT はいはい。犯罪者予備軍ね。NGにしときますわ。
やりたいことやりたい人は処理系にこだわりはないのにアホか。
コード書けない中学生がVBよりVCと言ってるのと変わらんわ。
やりたいことやりたい人は処理系にこだわりはないのにアホか。
コード書けない中学生がVBよりVCと言ってるのと変わらんわ。
342デフォルトの名無しさん
2016/07/23(土) 01:01:50.42ID:tWjtYIW6 >>340
逆だろ?
PHPが他の言語と一緒だということを証明するために
他の言語でもあるような機能を言う。
PHPは他の言語と同じであることを示すことが、正しい論破の仕方だ。
PHPは「他の言語+αの機能」であるという事実に対して
それと同じものを出すことで、何を論破することになるのか?
逆だろ?
PHPが他の言語と一緒だということを証明するために
他の言語でもあるような機能を言う。
PHPは他の言語と同じであることを示すことが、正しい論破の仕方だ。
PHPは「他の言語+αの機能」であるという事実に対して
それと同じものを出すことで、何を論破することになるのか?
343デフォルトの名無しさん
2016/07/23(土) 02:01:49.49ID:bOUqJlZz そろそろ邪魔くさくなったから消えてほしい
劣等感のかたまりは迷惑関係なく必死で長所をアピールしはじめるってね
適切なスレでやってくれんかね
劣等感のかたまりは迷惑関係なく必死で長所をアピールしはじめるってね
適切なスレでやってくれんかね
344デフォルトの名無しさん
2016/07/23(土) 02:30:45.09ID:Z+5onCph 嫌なら見なければいいのに
他人にあっちいけとか指示する池沼っているよな。
自己中心的な池沼のお手本。
他人にあっちいけとか指示する池沼っているよな。
自己中心的な池沼のお手本。
345デフォルトの名無しさん
2016/07/23(土) 08:35:47.91ID:rC+TU0A1 他プロセスでファイルをopenしているときにそのファイルをrenameしようとすると
renameできないみたいだけどうまくrenameする方法は?
renameできないみたいだけどうまくrenameする方法は?
346デフォルトの名無しさん
2016/07/23(土) 10:06:58.15ID:I+uJVTmO close
347デフォルトの名無しさん
2016/07/23(土) 11:14:44.62ID:rC+TU0A1 >>346
それだとopenとcloseする間にrenameが割り込むとだめ
そこで自分で方法を考えました
まずディレクトリにaccess_kinshi.datというファイルを作ります
このファイルが存在している間は他プロセスでこのディレクトリにあるファイルは全てアクセスできないものとする
そしてディレクトリ内にあるファイルを全てrenameする
そのあとaccess_kinshi.datファイルを削除すればいいということです
それだとopenとcloseする間にrenameが割り込むとだめ
そこで自分で方法を考えました
まずディレクトリにaccess_kinshi.datというファイルを作ります
このファイルが存在している間は他プロセスでこのディレクトリにあるファイルは全てアクセスできないものとする
そしてディレクトリ内にあるファイルを全てrenameする
そのあとaccess_kinshi.datファイルを削除すればいいということです
348デフォルトの名無しさん
2016/07/23(土) 11:20:06.22ID:I+uJVTmO 前提条件が変わってますけど
349デフォルトの名無しさん
2016/07/23(土) 15:21:23.54ID:bOUqJlZz 他のプロセスってなに?
どっちもPerlで自分の作った物なら、ファイルロックでも使うと良い。
自動待機してくれる
どっちもPerlで自分の作った物なら、ファイルロックでも使うと良い。
自動待機してくれる
350デフォルトの名無しさん
2016/07/23(土) 19:27:38.24ID:IQFGkMCr 後方参照で教えていただきたいことがあります。
A 80 90
(空白の部分はタブかスペース)
と書いてあるファイルの80とか90の部分を書き換えたいのです。
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$2$3$4$5/' file で
マッチした部分を参照できるのはわかっているのですが、この場合$3の「80」を「1」にするには
どのような方法をとればよいでしょうか?
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$21$4$5/' file とすると
$21と解釈されるようで結果がA 90となってしまいます。
A 80 90
(空白の部分はタブかスペース)
と書いてあるファイルの80とか90の部分を書き換えたいのです。
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$2$3$4$5/' file で
マッチした部分を参照できるのはわかっているのですが、この場合$3の「80」を「1」にするには
どのような方法をとればよいでしょうか?
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$21$4$5/' file とすると
$21と解釈されるようで結果がA 90となってしまいます。
351デフォルトの名無しさん
2016/07/23(土) 19:32:51.24ID:sc8oJJPG シェルスクリプトと同じで、{} で変数名を明治する。
/${1}${2}1${4}${5}/
/${1}${2}1${4}${5}/
352デフォルトの名無しさん
2016/07/23(土) 19:41:00.25ID:IQFGkMCr353デフォルトの名無しさん
2016/07/23(土) 20:22:22.12ID:rC+TU0A1 >>349
他プロセスとは同じプログラムを複数で同時実行したやつです
それとファイルロックだとディレクトリにあるファイル1つ1つにロックしなきゃならないので
ディレクトリにあるファイル全てにアクセス禁止するために
アクセス禁止用ファイルを作りました
他プロセスとは同じプログラムを複数で同時実行したやつです
それとファイルロックだとディレクトリにあるファイル1つ1つにロックしなきゃならないので
ディレクトリにあるファイル全てにアクセス禁止するために
アクセス禁止用ファイルを作りました
354デフォルトの名無しさん
2016/07/23(土) 20:22:25.35ID:erGYoQ8z スクリプトを動かすときは、「動きますように」と昭和する。
355デフォルトの名無しさん
2016/07/23(土) 20:41:29.11ID:KzTkH9Ph 自分で考えているというのは大変良いことだと思うけど、聞きたいことがあるなら
環境くらいは書いてくれないと……
それに、使用中のファイルを rename することの何が問題なのかさっぱり解らない。
まず、何をするプログラムなのかを書いた方がいいと思うよ。
環境くらいは書いてくれないと……
それに、使用中のファイルを rename することの何が問題なのかさっぱり解らない。
まず、何をするプログラムなのかを書いた方がいいと思うよ。
356デフォルトの名無しさん
2016/07/23(土) 22:25:30.57ID:rC+TU0A1 a
357デフォルトの名無しさん
2016/07/23(土) 22:36:22.09ID:rC+TU0A1 なんか書き込こもうとするとエラーが出て書き込めないわ
358デフォルトの名無しさん
2016/07/23(土) 22:48:53.55ID:rC+TU0A1 ようするに
てすと1シージーアイ
OPEN(IN、”あああ.DAT”);
すりーぷ(5);
cLOSE(IN);
てすと2シージーアイ
リネーム(”あああ.DAT”、”AAA。DAT”);
これを同時実行してもリネームはできなかったってこと
てすと1シージーアイ
OPEN(IN、”あああ.DAT”);
すりーぷ(5);
cLOSE(IN);
てすと2シージーアイ
リネーム(”あああ.DAT”、”AAA。DAT”);
これを同時実行してもリネームはできなかったってこと
359デフォルトの名無しさん
2016/07/23(土) 22:51:17.71ID:rC+TU0A1 同時実行って言ったけど先にてすと1の方を起動して5秒以内にてすと2を起動です
360デフォルトの名無しさん
2016/07/23(土) 23:18:44.54ID:eYAwBGPh 他のプロセスが開いているファイルを、更新できるわけないだろ
2つのプロセスで、ファイル共有できるのは、read & read、の組み合わせだけ。
read & write, write & read, write & write は、共有できない
2つのプロセスで、ファイル共有できるのは、read & read、の組み合わせだけ。
read & write, write & read, write & write は、共有できない
361デフォルトの名無しさん
2016/07/23(土) 23:40:01.25ID:sc8oJJPG >他のプロセスが開いているファイルを、更新できるわけないだろ
何を前提に話してんだ?
更新出来るから、ファイルロックなぞの方法が開発されたんじゃねーの?
$ for i in 1 2 3 4 5 ; do
> perl -le 'open my $f, q{>>}, q{foo.txt} ; print $f q{foo} ; sleep 2' &
> done
$ cat foo.txt
foo
foo
foo
foo
foo
何を前提に話してんだ?
更新出来るから、ファイルロックなぞの方法が開発されたんじゃねーの?
$ for i in 1 2 3 4 5 ; do
> perl -le 'open my $f, q{>>}, q{foo.txt} ; print $f q{foo} ; sleep 2' &
> done
$ cat foo.txt
foo
foo
foo
foo
foo
362デフォルトの名無しさん
2016/07/23(土) 23:51:16.68ID:tWjtYIW6363デフォルトの名無しさん
2016/07/23(土) 23:55:37.22ID:sc8oJJPG364デフォルトの名無しさん
2016/07/24(日) 00:40:44.17ID:9mJaMPLw 更新できるのは、同一プロセス内のマルチスレッドだろ
だから、マルチスレッド・プログラミングは難しい
だから、マルチスレッド・プログラミングは難しい
365デフォルトの名無しさん
2016/07/24(日) 01:05:08.31ID:IyAH6Xir ファイイルロックのモードは2より5のノンブロッキングの方が軽いですか?
366デフォルトの名無しさん
2016/07/24(日) 01:16:29.25ID:p8SJSbCV367デフォルトの名無しさん
2016/07/24(日) 02:10:22.95ID:8SIezcUV 上の2行は頭いいように見えたが
下の2行でホントに頭が悪い人だと思った。
誹謗癖はやめようね。嫌われるよ。というかすでに嫌われてると思うけど。
下の2行でホントに頭が悪い人だと思った。
誹謗癖はやめようね。嫌われるよ。というかすでに嫌われてると思うけど。
368デフォルトの名無しさん
2016/07/24(日) 02:12:06.72ID:p8SJSbCV >>367
正しいのか間違っているのかをいえよ。
正しいのか間違っているのかをいえよ。
369デフォルトの名無しさん
2016/07/24(日) 03:52:51.83ID:9mJaMPLw ノンブロッキングは、Node.js などが並行処理で、リクエストを受け付ける場合に使う。
こういうのは、プロ中のプロが使うもので、プログラムも順序通りには進まないから、
プログラミングが極めて難しい(イベントドリブン)
初心者は、ブロッキングを使え。
プログラムは一本道で、順序通りに進む
こういうのは、プロ中のプロが使うもので、プログラムも順序通りには進まないから、
プログラミングが極めて難しい(イベントドリブン)
初心者は、ブロッキングを使え。
プログラムは一本道で、順序通りに進む
370デフォルトの名無しさん
2016/07/24(日) 04:07:39.30ID:p8SJSbCV ※ただしマルチタスクOSじゃない場合に限る
371355
2016/07/24(日) 10:28:35.84ID:K5Ja97DP >>358
少なくとも Linux では問題なく rename できるよ。
rename できないというのはシステムコールのマニュアルに書いてあるの?
テストのやり方に問題は無かったの? こんなふうに同期させた方がいいと思うんだけど。
https://ideone.com/639PgP
少なくとも Linux では問題なく rename できるよ。
rename できないというのはシステムコールのマニュアルに書いてあるの?
テストのやり方に問題は無かったの? こんなふうに同期させた方がいいと思うんだけど。
https://ideone.com/639PgP
372デフォルトの名無しさん
2016/07/24(日) 22:44:38.60ID:IyAH6Xir このようにflockをネストするのは問題ありますか?
open(IN, "< $datafile");
flock(IN, 1);
open(IN2, "< $datafile2");
flock(IN2, 1);
close(IN2);
close(IN);
open(IN, "< $datafile");
flock(IN, 1);
open(IN2, "< $datafile2");
flock(IN2, 1);
close(IN2);
close(IN);
373デフォルトの名無しさん
2016/07/25(月) 18:20:04.46ID:tVy4ghQr >>371
windows環境だけどopen中のファイルのrenameはできなかった
例えばtestディレクトリがあって、プロセスAでtestディレクトリにあるファイルのrenameやファイルの作成、
プロセスBでtestディレクトリを削除するとした場合
testディレクトリにファイルが残っているとrmdirが成功しないのでtestディレクトリを削除できない
unlinkでtestディレクトリのファイルを全て削除してからtestディレクトリを削除しようとしても
その間にプロセスAでファイルが作成された場合ディレクトリを削除できない
だからディレクトリそのものをロックしたいっていうこと
windows環境だけどopen中のファイルのrenameはできなかった
例えばtestディレクトリがあって、プロセスAでtestディレクトリにあるファイルのrenameやファイルの作成、
プロセスBでtestディレクトリを削除するとした場合
testディレクトリにファイルが残っているとrmdirが成功しないのでtestディレクトリを削除できない
unlinkでtestディレクトリのファイルを全て削除してからtestディレクトリを削除しようとしても
その間にプロセスAでファイルが作成された場合ディレクトリを削除できない
だからディレクトリそのものをロックしたいっていうこと
374デフォルトの名無しさん
2016/07/26(火) 08:16:09.27ID:Yl3q3y9J >>372
問題ない
問題ない
375デフォルトの名無しさん
2016/07/26(火) 13:18:10.17ID:0CGOQrnU >>373
そういうことを先に書いてくれないと……
そうか、Windows ではできないのか……
プロセスAの処理が終わるまでプロセスBを待たせておきたいということなら
普通に mkdir でどうでしょう。可搬性も高い排他制御の定番です。
そういうことを先に書いてくれないと……
そうか、Windows ではできないのか……
プロセスAの処理が終わるまでプロセスBを待たせておきたいということなら
普通に mkdir でどうでしょう。可搬性も高い排他制御の定番です。
376デフォルトの名無しさん
2016/07/26(火) 13:54:47.54ID:M5KaPrwS377デフォルトの名無しさん
2016/07/26(火) 18:01:31.91ID:0CGOQrnU 何が目的でそのための何をしている状況なのかというのがいまだに理解できないんだけど、
そもそもそんな状況にしないやり方を考えた方がいいのかもしれない。
どうしても排他制御が必要なら例えばデータベースを使うというのは Windows でも出きると思う。
Windows のことは知らないからこれ以上はお役に立てそうに無い。
そもそもそんな状況にしないやり方を考えた方がいいのかもしれない。
どうしても排他制御が必要なら例えばデータベースを使うというのは Windows でも出きると思う。
Windows のことは知らないからこれ以上はお役に立てそうに無い。
378デフォルトの名無しさん
2016/07/27(水) 02:23:44.17ID:8IadtePG 簡単に言うとディレクトリをmkdirで削除したいけど
削除しようとしている間にディレクトリ内にファイルを作られるとmkdirできなくて削除できないので
ディレクトリ内にファイル作成もディレクトリ内のファイル読み込みも禁止にしたかったってこと
削除しようとしている間にディレクトリ内にファイルを作られるとmkdirできなくて削除できないので
ディレクトリ内にファイル作成もディレクトリ内のファイル読み込みも禁止にしたかったってこと
379デフォルトの名無しさん
2016/07/27(水) 02:26:13.90ID:8IadtePG mkdirじゃなくてrmdirだ
380デフォルトの名無しさん
2016/07/27(水) 08:10:16.74ID:yPkdt5ig 任意のプロセスがアクセスできるディレクトリを削除したいという要求自体が間違っている
381デフォルトの名無しさん
2016/07/27(水) 08:32:01.24ID:8IadtePG >>380
bbsディレクトリの中に各掲示板ごとのディレクトリがあって、さらにその中にログファイルや掲示板設定ファイルがある
削除したい掲示板は各掲示板のディレクトリごとに削除するしかないのでどうしても任意のプロセスがアクセスできる
ディレクトリを削除するしかない
test1掲示板の場合
ファイルはbbs/test1/logfile.datとbbs/test1/settei.datがあって
掲示板を削除する場合はまずこの2つのファイルを削除してtest1ディレクトリを削除するということです
bbsディレクトリの中に各掲示板ごとのディレクトリがあって、さらにその中にログファイルや掲示板設定ファイルがある
削除したい掲示板は各掲示板のディレクトリごとに削除するしかないのでどうしても任意のプロセスがアクセスできる
ディレクトリを削除するしかない
test1掲示板の場合
ファイルはbbs/test1/logfile.datとbbs/test1/settei.datがあって
掲示板を削除する場合はまずこの2つのファイルを削除してtest1ディレクトリを削除するということです
382デフォルトの名無しさん
2016/07/27(水) 09:49:12.77ID:uNHlpX2c その掲示板とやらのディレクトリは本当に、自分のプロセスだけでなく任意のプロセスからもアクセスできるのか?
であれば、ディレクトリのパーミッションが間違っている。自分のプロセス以外のアクセスを禁止せよ。
自分のプロセスしかアクセスできない前提であれば、好きなように自分で排他制御を行えばよい。例えば>>375のように。
であれば、ディレクトリのパーミッションが間違っている。自分のプロセス以外のアクセスを禁止せよ。
自分のプロセスしかアクセスできない前提であれば、好きなように自分で排他制御を行えばよい。例えば>>375のように。
383デフォルトの名無しさん
2016/07/27(水) 15:57:37.43ID:8IadtePG >>382
普通の掲示板やで
普通掲示板は誰でも観覧と書き込みができるので任意のプロセスからでも読み書きできる
それとディレクトリの削除はブラウザからperlで書いたcgiを起動して削除するので
パーミッションでのオーナーとかの判別はできないんや
普通の掲示板やで
普通掲示板は誰でも観覧と書き込みができるので任意のプロセスからでも読み書きできる
それとディレクトリの削除はブラウザからperlで書いたcgiを起動して削除するので
パーミッションでのオーナーとかの判別はできないんや
384デフォルトの名無しさん
2016/07/27(水) 16:17:33.22ID:uNHlpX2c 掲示板のcgiが動いてるプロセスは掲示板を閲覧しているユーザとは関係なかろうが。
これ以上はperlの話ではなく、そのcgi固有の話だ。
ここでやる話ではない。
これ以上はperlの話ではなく、そのcgi固有の話だ。
ここでやる話ではない。
385デフォルトの名無しさん
2016/07/29(金) 21:21:45.34ID:kdSSWeOo my(@aaa);
@aaa = sort {$b <=> $a} @aaa;
このとき$a,$bをmy($a,$b)やlocal($a,$b);と宣言するとエラーになります
$a,$bはどのように宣言すればいいんですか?
@aaa = sort {$b <=> $a} @aaa;
このとき$a,$bをmy($a,$b)やlocal($a,$b);と宣言するとエラーになります
$a,$bはどのように宣言すればいいんですか?
386デフォルトの名無しさん
2016/07/29(金) 22:20:02.88ID:lqBNaMPB aとbはあらかじめ用意された特殊変数。
特殊変数は全部グローバル変数
特殊変数は全部グローバル変数
387デフォルトの名無しさん
2016/07/30(土) 00:48:59.27ID:pBzYHnSl388デフォルトの名無しさん
2016/07/30(土) 08:47:55.59ID:k05zeajW 1:投稿ファイルをロックして書き込み
2:投稿数ファイルをロックして書き込み
1の排他ロックが成功して2の排他ロックが失敗してタイムアウトになり書き込みできなかった場合
投稿数が実際の投稿より少なくなりが整合性がとれなくなる
この場合下記のようにまとめてロックするのが普通?
まとめ排他ロック
1の処理
2の処理
ロック解除
2:投稿数ファイルをロックして書き込み
1の排他ロックが成功して2の排他ロックが失敗してタイムアウトになり書き込みできなかった場合
投稿数が実際の投稿より少なくなりが整合性がとれなくなる
この場合下記のようにまとめてロックするのが普通?
まとめ排他ロック
1の処理
2の処理
ロック解除
389デフォルトの名無しさん
2016/07/30(土) 09:56:42.41ID:0Jkia02i390デフォルトの名無しさん
2016/07/31(日) 09:21:12.12ID:9W15s1XM 1:投稿ファイルをロック
2:投稿数ファイルをロック
3:投稿ファイルを書き込み
4:投稿数ファイルを書き込み
5:投稿ファイルをアンロック
6:投稿数ファイルをアンロック
2:投稿数ファイルをロック
3:投稿ファイルを書き込み
4:投稿数ファイルを書き込み
5:投稿ファイルをアンロック
6:投稿数ファイルをアンロック
391デフォルトの名無しさん
2016/07/31(日) 14:54:33.71ID:V3GimjB6 PostgreSQLのTIMESTAMP形式の文字列を秒数(Perlのtime関数で取得したような状態)に直す関数教えて
392デフォルトの名無しさん
2016/08/02(火) 23:49:48.17ID:C1WIu1+e use DateTime::Format::Pg;
print DateTime::Format::Pg->parse_datetime( '2016-08-21 23:50:01' )->epoch;
print DateTime::Format::Pg->parse_datetime( '2016-08-21 23:50:01' )->epoch;
393デフォルトの名無しさん
2016/08/05(金) 00:01:27.27ID:RLQt/Rjs >>390
それだとロックの間に隙間ができる
それだとロックの間に隙間ができる
394デフォルトの名無しさん
2016/08/05(金) 00:02:57.68ID:RLQt/Rjs 実行時間が0.15秒から0.2秒のperlスクリプトは重い部類ですか?
395デフォルトの名無しさん
2016/08/05(金) 00:22:53.93ID:/+BaQz+x396デフォルトの名無しさん
2016/08/05(金) 09:40:54.31ID:rvcc+G4N 1:投稿数ファイルをロック
2:投稿数ファイルを書き込み
3:投稿数ファイルをアンロック
4:投稿ファイルをロック
5:投稿ファイルを書き込み
6:投稿ファイルをアンロック
じゃだめなのかな。
2:投稿数ファイルを書き込み
3:投稿数ファイルをアンロック
4:投稿ファイルをロック
5:投稿ファイルを書き込み
6:投稿ファイルをアンロック
じゃだめなのかな。
397デフォルトの名無しさん
2016/08/05(金) 09:49:56.50ID:iMQ1FKDS それ投稿数と投稿が連動してないやん
ロック
必要な書き込み全部
ロック解除
が普通
ロック
必要な書き込み全部
ロック解除
が普通
398デフォルトの名無しさん
2016/08/05(金) 17:58:59.50ID:rvcc+G4N それは「普通」というより「手抜き」だね。最初はそれでいいと思うけど。
399デフォルトの名無しさん
2016/08/05(金) 21:06:28.92ID:n2C4Ao5J400デフォルトの名無しさん
2016/08/05(金) 21:06:53.73ID:n2C4Ao5J >>396
だめ。それはバグ。
だめ。それはバグ。
401デフォルトの名無しさん
2016/08/06(土) 00:52:14.83ID:aSfsFG4F402デフォルトの名無しさん
2016/08/06(土) 07:58:04.15ID:nmoqGXlF (書き込み時)
1:まとめロックようファイルを作る
2:まとめロック用ファイルを排他ロックする
3:投稿ファイルにを投稿を書き込む
4:投稿数ファイルに投稿数を書き込む
5:まとめロックの解除
(観覧時)
1:まとめロック用ファイルを共有ロックする
2:投稿ファイルを読み込んで表示する
3;投稿数ファイルを読み込んで表示する
4:まとめロックを解除
これが正しい
1:まとめロックようファイルを作る
2:まとめロック用ファイルを排他ロックする
3:投稿ファイルにを投稿を書き込む
4:投稿数ファイルに投稿数を書き込む
5:まとめロックの解除
(観覧時)
1:まとめロック用ファイルを共有ロックする
2:投稿ファイルを読み込んで表示する
3;投稿数ファイルを読み込んで表示する
4:まとめロックを解除
これが正しい
403デフォルトの名無しさん
2016/08/09(火) 01:43:06.25ID:s2zPwIrc >>393
何のために数字が振ってあるのか分かる?
何のために数字が振ってあるのか分かる?
404デフォルトの名無しさん
2016/08/09(火) 02:52:34.66ID:d2ilw35z なんのため?
プロセス間の整合を取るのにプロセス内の順序は全く意味ない数字と思うけど。
うーん、なんのためだろ?教えてくれないかな?
プロセス間の整合を取るのにプロセス内の順序は全く意味ない数字と思うけど。
うーん、なんのためだろ?教えてくれないかな?
405デフォルトの名無しさん
2016/08/09(火) 22:13:03.27ID:zWs+JfAu > プロセス内の順序は全く意味ない数字と思うけど。
え? 順番を入れ替えても同じなると思ってるの?
例えば5 → 1 → 4 → 3 → 2 → 6 の順番で
実行しても同じ結果になると?
ロックの話以前に、あんたが何が言いたいのかわからない
え? 順番を入れ替えても同じなると思ってるの?
例えば5 → 1 → 4 → 3 → 2 → 6 の順番で
実行しても同じ結果になると?
ロックの話以前に、あんたが何が言いたいのかわからない
406デフォルトの名無しさん
2016/08/09(火) 23:09:59.97ID:d2ilw35z んでなんのため?
あと関係ない話しかしてないようだけど、同じになるって情報はどこから?
そしてその話になんの意味があると思い込んでますか?
あと関係ない話しかしてないようだけど、同じになるって情報はどこから?
そしてその話になんの意味があると思い込んでますか?
407デフォルトの名無しさん
2016/08/09(火) 23:36:26.59ID:zWs+JfAu > んでなんのため?
順番が重要だからだろ。
順番が重要だからだろ。
408デフォルトの名無しさん
2016/08/09(火) 23:38:43.66ID:zWs+JfAu >>390が書いてあることは正しくて、
この順番通りの処理をすると不整合が起きない。
重要なのは書き込みを行う前に書き込むファイルすべてを
ロックするということ。最初にまとめて行う。
こうすることでロックの間に処理が割り込まれず
正しく書き込むことができる。
この順番通りの処理をすると不整合が起きない。
重要なのは書き込みを行う前に書き込むファイルすべてを
ロックするということ。最初にまとめて行う。
こうすることでロックの間に処理が割り込まれず
正しく書き込むことができる。
409デフォルトの名無しさん
2016/08/09(火) 23:45:04.85ID:d2ilw35z ここまで正しい回答が何度も出てるのに、そのあとから間違った回答を自身満々にするのもすごいと思う
ロックは常にプロセス間の整合のみ取るべし
ロックは常にプロセス間の整合のみ取るべし
410デフォルトの名無しさん
2016/08/09(火) 23:54:26.10ID:d2ilw35z ごめん。外部仕様としてはこの場合正しかった。
内部的にはやってはいけないお手本のような無意味なロックがされてて、それで勘違いした。すまんかった。
内部的にはやってはいけないお手本のような無意味なロックがされてて、それで勘違いした。すまんかった。
411デフォルトの名無しさん
2016/08/10(水) 08:11:51.04ID:UJ0StgLg いいってことよ
412デフォルトの名無しさん
2016/08/13(土) 09:19:35.74ID:Y2Ng1HRN 確かにロックはプロセス間通信の一種で使う技術も同じか
こうゆうのはスクリプトをプログラムと思ってる人と、プログラムの基礎的な部分から学んだ人とでは差が出そうだね
こうゆうのはスクリプトをプログラムと思ってる人と、プログラムの基礎的な部分から学んだ人とでは差が出そうだね
413デフォルトの名無しさん
2016/08/22(月) 20:05:32.69ID:2GCPiaHi windows7で文字化けファイル名を取得するとショートファイルで得られるようですが、
ロングファイルのビットの並びをそのまま得たいです。
指定して得るにはどうすれば良いでしょうか?
ちなみにDOSなどでのコマンドは知っています。
ロングファイルのビットの並びをそのまま得たいです。
指定して得るにはどうすれば良いでしょうか?
ちなみにDOSなどでのコマンドは知っています。
414デフォルトの名無しさん
2016/08/22(月) 23:45:40.07ID:vzm1zF9k `dir /b *.*`
次スレのテンプレに追加するから
次スレのテンプレに追加するから
415デフォルトの名無しさん
2016/08/23(火) 00:01:48.07ID:GgtizVRn コマンドじゃなくてPerlでどうにかしたいのだけど
416デフォルトの名無しさん
2016/08/23(火) 02:38:12.51ID:a3VZWpnc バッククォートの意味が分からないのかな
417デフォルトの名無しさん
2016/08/23(火) 07:59:22.61ID:GgtizVRn コマンドだろ
418デフォルトの名無しさん
2016/08/23(火) 22:48:28.92ID:evJ0lXFt my @file = split(/\n/,`dir /b *.* 2>NUL`);
# あとは夏休みの宿題、な
# あとは夏休みの宿題、な
419デフォルトの名無しさん
2016/08/24(水) 08:59:06.43ID:hHpNATWD すまん、回答してるつもりだろうけど、頭悪い人に用はないんだ。
わざわざ何度も書いてる様だが、一番最初に(も)言った通りコマンド使うやりかたはできるから。
あと全レス会話の繋がりもなく、堂々と好き勝手なこと書く人間もしんどい。
わざわざ何度も書いてる様だが、一番最初に(も)言った通りコマンド使うやりかたはできるから。
あと全レス会話の繋がりもなく、堂々と好き勝手なこと書く人間もしんどい。
420デフォルトの名無しさん
2016/08/24(水) 20:30:09.76ID:fxHMMLTZ いや、君の記述能力が頭悪いんだよ。
流行の言葉で言うとコミュ力やプレゼン力がない。
コマンド知ってますなんて言い方じゃ伝わらない。
少しは自分の不徳を省みたらどうか。
流行の言葉で言うとコミュ力やプレゼン力がない。
コマンド知ってますなんて言い方じゃ伝わらない。
少しは自分の不徳を省みたらどうか。
421デフォルトの名無しさん
2016/08/24(水) 20:38:10.41ID:W4vM/rXO 再現出来る環境無いんだけどWin32::GetLongPathNameはどうかな
422デフォルトの名無しさん
2016/08/24(水) 20:59:49.53ID:jqqoh+mK これは知ってるかい?→ <*>
423デフォルトの名無しさん
2016/08/24(水) 23:20:14.12ID:hHpNATWD424デフォルトの名無しさん
2016/08/24(水) 23:31:21.73ID:jqqoh+mK425デフォルトの名無しさん
2016/08/29(月) 17:11:38.79ID:x3G6j3++ どうでもいいけど特殊な環境じゃなくてwindows標準の仕様かと
426デフォルトの名無しさん
2016/08/29(月) 21:33:30.70ID:NQxKIK4Q 文字化けが問題なんだろうね
427デフォルトの名無しさん
2016/08/29(月) 21:40:22.45ID:x3G6j3++ なぜ化けるのか、と言う話だ
CP932とunicodeが混在してる場合はどうすりゃいいですかって話じゃね
CP932とunicodeが混在してる場合はどうすりゃいいですかって話じゃね
428デフォルトの名無しさん
2016/09/01(木) 19:27:50.30ID:vCLh7LOG ココ参考にして ttp://hirobanex.net/article/2015/03/1425807814
こういう呼び出ししても
$teng->sql_builder->load_plugin('InsertOnDuplicate');
$teng->sql_builder->insert_on_duplicate(略)
Can't locate object method "insert_on_duplicate" via package "Teng::QueryBuilder"
で呼べないんだけどどうしたらいい?
こういう呼び出ししても
$teng->sql_builder->load_plugin('InsertOnDuplicate');
$teng->sql_builder->insert_on_duplicate(略)
Can't locate object method "insert_on_duplicate" via package "Teng::QueryBuilder"
で呼べないんだけどどうしたらいい?
429デフォルトの名無しさん
2016/09/01(木) 19:29:20.37ID:vCLh7LOG ちなみに
__PACKAGE__->load_plugin('+SQL::Maker::Plugin::InsertOnDuplicate');
でもダメ
__PACKAGE__->load_plugin('+SQL::Maker::Plugin::InsertOnDuplicate');
でもダメ
430デフォルトの名無しさん
2016/09/01(木) 20:39:24.43ID:0j1lNnbm ブログ記事じゃなくてPOD読めよ
431デフォルトの名無しさん
2016/09/01(木) 22:35:57.18ID:vCLh7LOG PODに別パッケージから plugin生やす方法なんて書いてないでしょ
432デフォルトの名無しさん
2016/09/03(土) 20:53:36.76ID:pSsdJ5JF マジレスするなら、
別の方法で呼べるか試してみる
何が起こっているのか調べてみる
ってところか。
別の方法で呼べるか試してみる
何が起こっているのか調べてみる
ってところか。
433デフォルトの名無しさん
2016/09/09(金) 12:53:46.35ID:JRjUoSNq 何を調べたらいいのかわからんので手が付かない
434デフォルトの名無しさん
2016/09/09(金) 13:05:29.57ID:JRjUoSNq はっきりしてるのはhirobanexのとおりに書いてもエラーで動かない事
それも $teng->->execute なんていうタイポレベルの話じゃなく
根本的にどこか間違ってるけど、どこだかわからんということ
$teng->sql_builder ってSQL::Makerを継承した状態でnewされてるんじゃないの?
Teng::QueryBuilder = SQL::Maker だから
これで動くんじゃないの?
$teng->sql_builder->load_plugin('InsertOnDuplicate');
$teng->sql_builder->insert_on_duplicate(略)
それも $teng->->execute なんていうタイポレベルの話じゃなく
根本的にどこか間違ってるけど、どこだかわからんということ
$teng->sql_builder ってSQL::Makerを継承した状態でnewされてるんじゃないの?
Teng::QueryBuilder = SQL::Maker だから
これで動くんじゃないの?
$teng->sql_builder->load_plugin('InsertOnDuplicate');
$teng->sql_builder->insert_on_duplicate(略)
435デフォルトの名無しさん
2016/09/09(金) 16:12:29.13ID:yxgmGddx もう直接コード読めよ
436デフォルトの名無しさん
2016/09/09(金) 16:58:05.37ID:yxgmGddx $teng->sql_builderでTeng::QueryBuilderのオブジェクトが帰ってくる
これはほぼSQL::Makerを継承しただけなのでSQL::Maker::load_pluginを読むとどうやらクラスメソッドとして書かれている
実際SQL::MakerのPODにも継承したクラスでクラスメソッドとして呼び出す例が書かれている
つまり $teng->sql_builder->load_plugin('foo') という書き方はオブジェクトから呼び出してるので間違い(おそらくTeng::QueryBuilder=HASH(0x000000)みたいなところに生えてる)
Teng::QueryBuilder->load_plugin('foo') とするか ref($teng->sql_builder)->load_plugin('foo') とするか
もしくはブログの例にもある通り独自のQueryBuilderクラスを用意するか
>>429
この__PACKAGE__はどこに書いたんや?__PACKAGE__の意味わかってる?
これはほぼSQL::Makerを継承しただけなのでSQL::Maker::load_pluginを読むとどうやらクラスメソッドとして書かれている
実際SQL::MakerのPODにも継承したクラスでクラスメソッドとして呼び出す例が書かれている
つまり $teng->sql_builder->load_plugin('foo') という書き方はオブジェクトから呼び出してるので間違い(おそらくTeng::QueryBuilder=HASH(0x000000)みたいなところに生えてる)
Teng::QueryBuilder->load_plugin('foo') とするか ref($teng->sql_builder)->load_plugin('foo') とするか
もしくはブログの例にもある通り独自のQueryBuilderクラスを用意するか
>>429
この__PACKAGE__はどこに書いたんや?__PACKAGE__の意味わかってる?
437デフォルトの名無しさん
2016/09/09(金) 17:40:55.04ID:iPoh5J1m もう、馬鹿過ぎて哀れだ。実際にやりたいことは
*SQL::Maker::insert_on_duplicate = \&SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate;
ってことでしょ? もうこれでいいでしょ。POD すら読まないんじゃ助けようがないよ。
*SQL::Maker::insert_on_duplicate = \&SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate;
ってことでしょ? もうこれでいいでしょ。POD すら読まないんじゃ助けようがないよ。
438437
2016/09/10(土) 11:47:34.76ID:VYsCJTGt ごめん、言い過ぎた。とりあえず、正解が分らない段階で俺ならどうするかを書くよ。
まず、何をしているのかを POD で確認する。
POD では load_plugin についてはクラスメソッドとして使う例だけが書かれている。
ここで「おかしい」と思わなければならない。
オブジェクトメソッドとして使えないとは書かれていないのでソースコードを読む。
%INC を見ればソースコードの場所は分かる。
load_plugin は予想以上にシンプルだった。これで解決。
解決しなかった場合。
まず、SQL::Maker::Plugin::InsertOnDuplicate を明示的に use する。それで間違いなく呼べる。
SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate( $teng->sql_builder)
あるいは
$teng->sql_builder->SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate
好きな方でいい。これでうまくいくなら load_plugin で何かが間違っている。
デバッガを使うか、load_plugin を差し替えて動作を詳しく調べる。
まず、何をしているのかを POD で確認する。
POD では load_plugin についてはクラスメソッドとして使う例だけが書かれている。
ここで「おかしい」と思わなければならない。
オブジェクトメソッドとして使えないとは書かれていないのでソースコードを読む。
%INC を見ればソースコードの場所は分かる。
load_plugin は予想以上にシンプルだった。これで解決。
解決しなかった場合。
まず、SQL::Maker::Plugin::InsertOnDuplicate を明示的に use する。それで間違いなく呼べる。
SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate( $teng->sql_builder)
あるいは
$teng->sql_builder->SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate
好きな方でいい。これでうまくいくなら load_plugin で何かが間違っている。
デバッガを使うか、load_plugin を差し替えて動作を詳しく調べる。
439デフォルトの名無しさん
2016/09/10(土) 18:20:16.29ID:1M4Sozo+ Tengを使うのかどうか自分で選べるのなら、自分が理解していないものを使わないという選択肢がある。
他の人が選んでしかも使わなければならないという状況なら、選んだ人にどう使うのかを聞くといい。
他の人が選んでしかも使わなければならないという状況なら、選んだ人にどう使うのかを聞くといい。
440デフォルトの名無しさん
2016/09/10(土) 19:19:33.59ID:7Wlp4jMr 多分ブログ書いた人やその人に教えた人はTeng本体と混ざって勘違いしたんだろうな
Teng自体はインスタンスからもロードできるから
Teng自体はインスタンスからもロードできるから
441デフォルトの名無しさん
2016/09/13(火) 17:44:13.57ID:AYCTTYgO この記事、オレオレメモだって自分で書いてるからわざわざつっこむのも野暮だけどOR検索の例もちょっとひどい。
どうしてこうなった?
どうしてこうなった?
442デフォルトの名無しさん
2016/09/22(木) 14:09:25.16ID:ULuG4eTB Windows の Strawberry Perl で、「Parallel::ForkManager」は使えますか?
----------------------------------------
use LWP::Simple;
use Parallel::ForkManager;
...
@links=(
["http://www.foo.bar/rulez.data","rulez_data.txt"],
["http://new.host/more_data.doc","more_data.doc"],
...
);
...
# 最大30プロセスで並列的にダウンロードを行います
my $pm = new Parallel::ForkManager(30);
foreach my $linkarray (@links) {
$pm->start and next; # forkさせます
my ($link,$fn) = @$linkarray;
warn "Cannot get $fn from $link"
if getstore($link,$fn) != RC_OK;
$pm->finish; # 子プロセスをexitします
}
$pm->wait_all_children;
----------------------------------------
の様なスクリプトで、数万ファイルをダウンロードしようとすると、
child process '-*****' disappeared.
A call to `waitpid` outside of Parallel::ForkManager might have reaped it.
のエラーを出しながら、メモリを全消費・開放を何度か繰り返した後に、
最終的には、「Out of memory!」で異常終了します。
Cygwin の Perl では、「Cannot get $fn from $link」エラーを出しまくりますが、
メモリを全消費する事はありません(異常終了もしません)。
----------------------------------------
use LWP::Simple;
use Parallel::ForkManager;
...
@links=(
["http://www.foo.bar/rulez.data","rulez_data.txt"],
["http://new.host/more_data.doc","more_data.doc"],
...
);
...
# 最大30プロセスで並列的にダウンロードを行います
my $pm = new Parallel::ForkManager(30);
foreach my $linkarray (@links) {
$pm->start and next; # forkさせます
my ($link,$fn) = @$linkarray;
warn "Cannot get $fn from $link"
if getstore($link,$fn) != RC_OK;
$pm->finish; # 子プロセスをexitします
}
$pm->wait_all_children;
----------------------------------------
の様なスクリプトで、数万ファイルをダウンロードしようとすると、
child process '-*****' disappeared.
A call to `waitpid` outside of Parallel::ForkManager might have reaped it.
のエラーを出しながら、メモリを全消費・開放を何度か繰り返した後に、
最終的には、「Out of memory!」で異常終了します。
Cygwin の Perl では、「Cannot get $fn from $link」エラーを出しまくりますが、
メモリを全消費する事はありません(異常終了もしません)。
443デフォルトの名無しさん
2016/09/22(木) 15:02:46.45ID:EZPik98J windowsのForkは、表面上は同じように動作する仕様になっているが、
実際にプロセスやスレッド、CPUの動作が期待通りになってるかと言うとそれは違う。
ほとんどの場合が、unixとの互換性を保つための見せかけ。
実際にプロセスやスレッド、CPUの動作が期待通りになってるかと言うとそれは違う。
ほとんどの場合が、unixとの互換性を保つための見せかけ。
444デフォルトの名無しさん
2016/09/22(木) 16:23:36.65ID:PQbGo3UU rulezの綴りがzの辺り、悪さしてそうだな
445デフォルトの名無しさん
2016/09/23(金) 01:08:30.38ID:Ay1vA5a9 if($hoge=~/(\d+)$hoge3$/){$hoge2=$1}
これの意味は
$hoge3が数字のみなら$hogeに代入し、$hoge2にも代入するという意味でしょうか?
これの意味は
$hoge3が数字のみなら$hogeに代入し、$hoge2にも代入するという意味でしょうか?
446442
2016/09/23(金) 05:21:37.52ID:CNgCRT2E >>443
「WindowsのFork」の意味は分かりませんが(Windows用PerlのFork?)、
Cygwin の perl は、
C:\cygwin64\bin\bash --login -i -c "perl ...
等としなくても、Windows から直接起動出来るので、
あのスプリクトで直接起動しても、メモリエラーは出ませんでした。
Cygwin の perl を、Strawberry Perl の代わりに、、、と思ったら、
いきなり chomp が、CR+LF を削除してくれなかった。
>>444
perldoc.jp からのコピペです。
>>445
if ( 文字列 =~ /パターン/ )
もし「文字列」の中に「パターン」が含まれていれば、
if ( $hoge =~ /(\d+)$hoge3$/ ) { $hoge2 = $1 }
もし「 $hoge 」の中に「 \d+$hoge3$ 」が含まれていれば、「 $hoge2 」に「 \d+ 」を代入
「WindowsのFork」の意味は分かりませんが(Windows用PerlのFork?)、
Cygwin の perl は、
C:\cygwin64\bin\bash --login -i -c "perl ...
等としなくても、Windows から直接起動出来るので、
あのスプリクトで直接起動しても、メモリエラーは出ませんでした。
Cygwin の perl を、Strawberry Perl の代わりに、、、と思ったら、
いきなり chomp が、CR+LF を削除してくれなかった。
>>444
perldoc.jp からのコピペです。
>>445
if ( 文字列 =~ /パターン/ )
もし「文字列」の中に「パターン」が含まれていれば、
if ( $hoge =~ /(\d+)$hoge3$/ ) { $hoge2 = $1 }
もし「 $hoge 」の中に「 \d+$hoge3$ 」が含まれていれば、「 $hoge2 」に「 \d+ 」を代入
448デフォルトの名無しさん
2016/09/23(金) 14:09:14.63ID:eBfGtRhY 普段それを読む文化にない人がいきなり読めたら逆にすごいと思う
PerlってPerlが分かる人だけの言語
PerlってPerlが分かる人だけの言語
449デフォルトの名無しさん
2016/09/26(月) 17:38:36.14ID:ak8zLIw0 Perl on Bash on Ubuntu on Windows10 での、
モジュールのインストールで、無駄に苦労した。
解決法: Config.pm の修正
Windows10 のコマンドプロンプトでも、
エスケープシーケンスが使えるらしい。
PROMPT $E[96m$T$E[3D $E[93m$P$G$E[37m$E[1C
懐かし
モジュールのインストールで、無駄に苦労した。
解決法: Config.pm の修正
Windows10 のコマンドプロンプトでも、
エスケープシーケンスが使えるらしい。
PROMPT $E[96m$T$E[3D $E[93m$P$G$E[37m$E[1C
懐かし
450デフォルトの名無しさん
2016/09/28(水) 02:39:45.69ID:sK8+jqCL ソースはサンプルコードな
451デフォルトの名無しさん
2016/10/03(月) 14:01:12.25ID:OUfpKV3+ C:\> prompt $e[1;36m[$d$s$t$h$h$h] $e[1;33m%USERNAME%@%COMPUTERNAME% $e[37m$p$_$g$s
452デフォルトの名無しさん
2016/10/03(月) 19:32:24.04ID:tI+B9pP0 ザメフォン元気?
453デフォルトの名無しさん
2016/10/06(木) 18:37:40.82ID:fMpg74pi ビット演算を多用したいんだけど、変数のサイズを指定したい。longとか。
とりあえず、16bitと32bitと64bitの整数が欲しい。
あと数値と文字が勝手に切り替わらないようにしたい。
ビット演算してるブロックだけでいいんで。
あと環境の保証も欲しい。どのマシンでどのbitのPerlとか関係なく。
俺が32bitのビット演算って言えばそれはもう絶対32nit演算。
もちろん不当に遅くなる方法は許さない。
とりあえず、16bitと32bitと64bitの整数が欲しい。
あと数値と文字が勝手に切り替わらないようにしたい。
ビット演算してるブロックだけでいいんで。
あと環境の保証も欲しい。どのマシンでどのbitのPerlとか関係なく。
俺が32bitのビット演算って言えばそれはもう絶対32nit演算。
もちろん不当に遅くなる方法は許さない。
454デフォルトの名無しさん
2016/10/06(木) 20:14:48.16ID:rUXrZJG3 C で書け。
455デフォルトの名無しさん
2016/10/06(木) 20:56:23.24ID:Wdgc44Vq C++でもいいぞ
456デフォルトの名無しさん
2016/10/06(木) 21:07:21.59ID:ZdOAOk1u rubyで十分
457デフォルトの名無しさん
2016/10/06(木) 21:31:39.42ID:fMpg74pi Cとかでもいいけどdllの使い方分からないのだ
458デフォルトの名無しさん
2016/10/07(金) 03:14:09.37ID:hiGL0oI+459デフォルトの名無しさん
2016/10/07(金) 07:25:20.66ID:codMUtxm vec かな。それでも不満なら perlfaq3 を読んで C で書け。
460デフォルトの名無しさん
2016/10/07(金) 12:43:21.52ID:codMUtxm 実際に何をして、その結果何が問題だったの? そのくらいは書いてくれないと……
461デフォルトの名無しさん
2016/10/08(土) 01:08:43.11ID:hitB9rm0 >>457
xsと言うのがあるが、一時的に値が複製されて良いなら標準入出力(メモリ渡し)のほうが絶対に楽だと思うのだ。
ま、perl使ってるなら複製されたメモリのほうが元のデータより圧倒的に小さいはずだが
xsと言うのがあるが、一時的に値が複製されて良いなら標準入出力(メモリ渡し)のほうが絶対に楽だと思うのだ。
ま、perl使ってるなら複製されたメモリのほうが元のデータより圧倒的に小さいはずだが
462デフォルトの名無しさん
2016/10/08(土) 09:19:23.51ID:ZgFPdp2t ビット演算したいなら普通にすればいいよ。
◯ビット変数がほしいといわれても、それは適切にマスクすればいいだけだし。
◯ビット変数のように振る舞うものがほしいということなら、Perl は C よりも期待に応えられると思うよ。
まずは C と同じ書き方をして速度を計ってみてよ。話はそれからだ。
◯ビット変数がほしいといわれても、それは適切にマスクすればいいだけだし。
◯ビット変数のように振る舞うものがほしいということなら、Perl は C よりも期待に応えられると思うよ。
まずは C と同じ書き方をして速度を計ってみてよ。話はそれからだ。
463デフォルトの名無しさん
2016/10/08(土) 22:30:15.59ID:KfBpvv2w はぁ?
~0 この時点で同じになりませんがな
~0 この時点で同じになりませんがな
464デフォルトの名無しさん
2016/10/09(日) 00:00:21.79ID:ja1MeL+I >>453 に言ってるんだよ?
465デフォルトの名無しさん
2016/10/10(月) 16:43:42.37ID:zhEtfxQ/ もう連休終わっちゃうんだけど結局何をしたかったのかな。
466デフォルトの名無しさん
2016/10/11(火) 00:06:06.59ID:SYi+Wrc4 その日のうちに解決したんじゃね?
木曜日の相手になに言ってんだか
木曜日の相手になに言ってんだか
467デフォルトの名無しさん
2016/10/11(火) 00:28:33.80ID:SYi+Wrc4 しかし普通の言語やったあとにPerlやると異常なほど即座に短く書き終えるからなにか書き忘れてるんじゃないかと不安になる。
正しく動くと分かると異常なほど楽で嬉しくなるし、C++とかが馬鹿らしくなる。
そして実行速度計ると結局全部納得してため息。
正しく動くと分かると異常なほど楽で嬉しくなるし、C++とかが馬鹿らしくなる。
そして実行速度計ると結局全部納得してため息。
468デフォルトの名無しさん
2016/10/11(火) 19:01:16.50ID:A+TNY00d stat($file_path);でファイルを作成したtimeは
atime,mtime,ctimeのどれなの?
atime,mtime,ctimeのどれなの?
469デフォルトの名無しさん
2016/10/11(火) 19:50:08.12ID:Mt8tOIIr >>468
http://perldoc.jp/func/stat
> 8 atime 紀元から、最後にアクセスされた時刻までの秒数
> 9 mtime 紀元から、最後に修正(modify)された時刻までの秒数
> 10 ctime 紀元から、inode 変更(change)された時刻までの秒数 (*)
> 明らかに、ctime のフィールドは移植性がありません。
> 特に、これから「作成時刻」を想定することは出来ません
http://perldoc.jp/docs/perl/perlport.pod#Files32and32Filesystems
> ファイルシステムはアクセスタイムスタンプや変更タイムスタンプに
> 対応していないかもしれません (つまり移植性のあるタイムスタンプは
> 変更タイムスタンプだけです); またタイムスタンプは 1 秒単位では
> ないかもしれません (例えば、FAT ファイルシステムは時刻の単位は
> 2 秒単位です)。
>「inode 変更タイムスタンプ」 (-C ファイルテスト) は (Unix 以外では)
> 実際には「作成タイムスタンプ」かもしれません。
http://perldoc.jp/func/stat
> 8 atime 紀元から、最後にアクセスされた時刻までの秒数
> 9 mtime 紀元から、最後に修正(modify)された時刻までの秒数
> 10 ctime 紀元から、inode 変更(change)された時刻までの秒数 (*)
> 明らかに、ctime のフィールドは移植性がありません。
> 特に、これから「作成時刻」を想定することは出来ません
http://perldoc.jp/docs/perl/perlport.pod#Files32and32Filesystems
> ファイルシステムはアクセスタイムスタンプや変更タイムスタンプに
> 対応していないかもしれません (つまり移植性のあるタイムスタンプは
> 変更タイムスタンプだけです); またタイムスタンプは 1 秒単位では
> ないかもしれません (例えば、FAT ファイルシステムは時刻の単位は
> 2 秒単位です)。
>「inode 変更タイムスタンプ」 (-C ファイルテスト) は (Unix 以外では)
> 実際には「作成タイムスタンプ」かもしれません。
470デフォルトの名無しさん
2016/10/12(水) 08:39:20.39ID:9k51B2Do Perlのオブジェクト指向読んだばっかりで理解が曖昧なんだけど、
これだと、オブジェクトがオブジェクトなのか関数なのかって呼び出し側で決める事にならない?
コンストラクタもメソッドも。
ついでに、インスタンスのカプセル化どうこうも、呼び出し側の権利?
みたいに見えたのですが。
これだと、オブジェクトがオブジェクトなのか関数なのかって呼び出し側で決める事にならない?
コンストラクタもメソッドも。
ついでに、インスタンスのカプセル化どうこうも、呼び出し側の権利?
みたいに見えたのですが。
471デフォルトの名無しさん
2016/10/12(水) 13:04:43.13ID:kXFNS19K472デフォルトの名無しさん
2016/10/12(水) 14:33:18.63ID:9k51B2Do >>471
ありがとう
以下みたいな感じの記述は使っても問題ない?
あと穴があった場合も教えて欲しい。
(複数回に分けて書くので途中で書けなくなるかも)
use utf8;
use strict;
use warnings;
#ただの実験
# 1: メソッドとインスタンスをカプセル化する。
# 2: クロージャを、あたかもオブジェクト指向と同じ記法で呼び出せるようにする。(クロージャとオブジェクト指向の同一視)
# 3: クロージャをクロージャのまま使いたければそうできるようにした。そもそもクロージャのほうが速いので。
ありがとう
以下みたいな感じの記述は使っても問題ない?
あと穴があった場合も教えて欲しい。
(複数回に分けて書くので途中で書けなくなるかも)
use utf8;
use strict;
use warnings;
#ただの実験
# 1: メソッドとインスタンスをカプセル化する。
# 2: クロージャを、あたかもオブジェクト指向と同じ記法で呼び出せるようにする。(クロージャとオブジェクト指向の同一視)
# 3: クロージャをクロージャのまま使いたければそうできるようにした。そもそもクロージャのほうが速いので。
473デフォルトの名無しさん
2016/10/12(水) 14:33:37.13ID:9k51B2Do {
package Class;
sub new{
my $class = $_[0] eq __PACKAGE__ ? shift : undef ; #オブジェクトとして呼び出されたかどうか
my $self = {
Name => shift,
};
my $method = {
NameGet => sub{ $self->{Name} },
NameSet => sub{ $self->{Name} = shift; },
};
return $method if(!$class); # 普通の関数(クロージャ)として呼ばれた場合
return bless $method, $class; # オブジェクトとして呼ばれた場合
}
sub AUTOLOAD {
our $AUTOLOAD;
my $method = shift;
ref($method) eq __PACKAGE__ or return("error");
my @load = split '::', $AUTOLOAD;
my $load = $load[-1];
$method->{$load}->(@_);
}
}
package Class;
sub new{
my $class = $_[0] eq __PACKAGE__ ? shift : undef ; #オブジェクトとして呼び出されたかどうか
my $self = {
Name => shift,
};
my $method = {
NameGet => sub{ $self->{Name} },
NameSet => sub{ $self->{Name} = shift; },
};
return $method if(!$class); # 普通の関数(クロージャ)として呼ばれた場合
return bless $method, $class; # オブジェクトとして呼ばれた場合
}
sub AUTOLOAD {
our $AUTOLOAD;
my $method = shift;
ref($method) eq __PACKAGE__ or return("error");
my @load = split '::', $AUTOLOAD;
my $load = $load[-1];
$method->{$load}->(@_);
}
}
474デフォルトの名無しさん
2016/10/12(水) 14:34:03.93ID:9k51B2Do {
package test;
my $c = Class::new("Closure"); #クロージャとして呼び出すと、一般的なクロージャと同じように使える。
print $c->{NameGet}->() . "\n";
my $o = Class->new("Object"); #オブジェクト指向として呼び出すと、オブジェクト指向と同じように使える。(中身はクロージャ)
print $o->NameGet() . "\n";
print Class::NameGet(); #関数のように呼ぶとエラー
}
__END__
以上です
package test;
my $c = Class::new("Closure"); #クロージャとして呼び出すと、一般的なクロージャと同じように使える。
print $c->{NameGet}->() . "\n";
my $o = Class->new("Object"); #オブジェクト指向として呼び出すと、オブジェクト指向と同じように使える。(中身はクロージャ)
print $o->NameGet() . "\n";
print Class::NameGet(); #関数のように呼ぶとエラー
}
__END__
以上です
475デフォルトの名無しさん
2016/10/12(水) 16:49:58.02ID:HdFKT2Ip オブジェクト指向=カプセル化ではないし、perl5でももう少しスマートなカプセル化のやり方もあるが筋が悪いからおすすめはしない
perl6はオブジェクト指向に関してはかなりマシだけど、そもそも速度気にするならperlは向かない
perl5じゃないとダメなら規約などで上手く付き合うしかない
ちなみにそのコードだとまともに継承できないね
perl6はオブジェクト指向に関してはかなりマシだけど、そもそも速度気にするならperlは向かない
perl5じゃないとダメなら規約などで上手く付き合うしかない
ちなみにそのコードだとまともに継承できないね
476デフォルトの名無しさん
2016/10/12(水) 21:51:13.12ID:9k51B2Do やりかたがあると言うのなら、提示して欲しいのだけど。(ただの俺は知ってるぞ自慢?)
事前に試しましたが、継承はできましたよー。
複数クラスを書くと長くなるので書きませんが、
まったく同じように別のクラスを書いて、ベースにしたいクラスを呼び出して更新すれば
とりあえずインスタンスもメソッドは継承されるですね。
あと穴は一つ発見しました。
これは後出しにしようかな。
事前に試しましたが、継承はできましたよー。
複数クラスを書くと長くなるので書きませんが、
まったく同じように別のクラスを書いて、ベースにしたいクラスを呼び出して更新すれば
とりあえずインスタンスもメソッドは継承されるですね。
あと穴は一つ発見しました。
これは後出しにしようかな。
477デフォルトの名無しさん
2016/10/13(木) 02:01:07.92ID:Zro6GxWw こいつは何しに来たんだ?
478デフォルトの名無しさん
2016/10/13(木) 10:53:38.82ID:O2Ch/Rp5 perlでpcアプリケーションって作れますか?
479デフォルトの名無しさん
2016/10/14(金) 12:30:24.58ID:om26oWOX >>478 作れます。
480デフォルトの名無しさん
2016/10/14(金) 22:56:09.64ID:GnnBnQfG スーパーコンピューターのアプリケーションしか作ったことがないのですが、
そんな私でも作れるでしょうか?
そんな私でも作れるでしょうか?
481デフォルトの名無しさん
2016/10/15(土) 02:02:31.11ID:UBpH7j9p スパコンのSIMDやMPIの方が楽だから
無理しなくていい
無理しなくていい
482デフォルトの名無しさん
2016/10/17(月) 02:26:31.41ID:WRe7I7Bu 2つのテキストファイルを比較し、一致した文字列を取り出したいんですが、教えていただけませんか
483デフォルトの名無しさん
2016/10/17(月) 03:43:08.25ID:sXplblvU 一致した文字列を穴なく完璧に厳格に定義して示して下さい。
そしてそれが出来ればプログラミングの8割は終了しています。
そしてそれが出来ればプログラミングの8割は終了しています。
484デフォルトの名無しさん
2016/10/17(月) 09:06:26.12ID:z3YwWHWS diff 系かなあ。CPAN で検索してみるといいよ。
485デフォルトの名無しさん
2016/10/17(月) 09:12:40.23ID:9EO0+SUA Perl使うまでもないような
cat fileA fileB | sort | uniq -d
cat fileA fileB | sort | uniq -d
486デフォルトの名無しさん
2016/10/17(月) 09:33:07.31ID:z3YwWHWS いやいや、一致した「行」とは言ってないから。何を望んでいるのかを確認しないと。
487デフォルトの名無しさん
2016/10/17(月) 20:34:47.85ID:Denl80JP 単語だと形態素解析が必要になるけどこいつにそんな課題出さないだろう
488デフォルトの名無しさん
2016/10/18(火) 22:42:04.03ID:kO2WqMh/ my $input = [];
CSVファイルを一行づつ配列にして多元配列にした後
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
で全データ出力するのですが、その後(?)関数内で同じく
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
とすると、1行目の内容が、$#$inputの数だけ繰り返し表示されます。
関数内でも全データを出力したいのですが、どうしたらよいでしょうか。
どなたか教えてください。よろしくお願いします。
CSVファイルを一行づつ配列にして多元配列にした後
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
で全データ出力するのですが、その後(?)関数内で同じく
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
とすると、1行目の内容が、$#$inputの数だけ繰り返し表示されます。
関数内でも全データを出力したいのですが、どうしたらよいでしょうか。
どなたか教えてください。よろしくお願いします。
489デフォルトの名無しさん
2016/10/18(火) 23:56:04.56ID:sMICGAt6 1回ずつループしながら、デバッグして、使っている変数を見れば?
変数のwatch 機能、あるだろ?
変数のwatch 機能、あるだろ?
490デフォルトの名無しさん
2016/10/19(水) 00:45:58.03ID:cfM1WNHO491490
2016/10/19(水) 00:48:54.12ID:cfM1WNHO watch機能はないのですが、添字の$iを具体的な数字を入れてはprintで確認して
1行目のデータになっていると気づいた次第です。
1行目のデータになっていると気づいた次第です。
492デフォルトの名無しさん
2016/10/19(水) 08:22:02.29ID:p26QOV7Y >>488
こういうこと?再現しないよ
use Data::Dumper;
my $input = ["abc", "def", "ghi"];
for(my $i=0; $i<=$#$input; $i++) {
print Dumper($input->[$i]), "\n";
}
&func;
sub func {
for(my $i=0; $i<=$#$input; $i++) {
print Dumper($input->[$i]), "\n";
}
}
こういうこと?再現しないよ
use Data::Dumper;
my $input = ["abc", "def", "ghi"];
for(my $i=0; $i<=$#$input; $i++) {
print Dumper($input->[$i]), "\n";
}
&func;
sub func {
for(my $i=0; $i<=$#$input; $i++) {
print Dumper($input->[$i]), "\n";
}
}
493デフォルトの名無しさん
2016/10/19(水) 09:10:37.02ID:cfM1WNHO >>492
要はそういうことなんだと思います。csvファイルを読み込んで
$input[[1, 2, 3],[4, 5, 6],[7, 8, 9]];
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
でDumperのフォーマットですが[1, 2, 3],[4, 5, 6],[7, 8, 9]を表示
sub funcの中で同じforをすると
Dumperのフォーマットですが[1, 2, 3],[1, 2, 3],[1, 2, 3]を表示します。
必要なところを抽出して現象がでたらソースをアップします。
要はそういうことなんだと思います。csvファイルを読み込んで
$input[[1, 2, 3],[4, 5, 6],[7, 8, 9]];
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
でDumperのフォーマットですが[1, 2, 3],[4, 5, 6],[7, 8, 9]を表示
sub funcの中で同じforをすると
Dumperのフォーマットですが[1, 2, 3],[1, 2, 3],[1, 2, 3]を表示します。
必要なところを抽出して現象がでたらソースをアップします。
494490
2016/10/19(水) 13:56:56.14ID:cfM1WNHO ループ内で行っていた条件分岐の間違いでした。お騒がせしました。
489さん、492さん、ありがとうございました。
489さん、492さん、ありがとうございました。
495デフォルトの名無しさん
2016/10/22(土) 10:51:15.40ID:NzADNRlY 良い回答はないと思うんだけど、正規表現で指定する内容をランダムで作り出す方法ってないかな。
例えば
/^[0-9][0-9a-zA-Z]{4}[A-Z]$/;
だったら
5scDuZ
とかが得られますよ的な。
例えば
/^[0-9][0-9a-zA-Z]{4}[A-Z]$/;
だったら
5scDuZ
とかが得られますよ的な。
496デフォルトの名無しさん
2016/10/22(土) 11:26:59.02ID:PD3z3WkO String::Random
497デフォルトの名無しさん
2016/10/22(土) 11:46:10.43ID:NzADNRlY おいおいなんでもあるなPerlって
498デフォルトの名無しさん
2016/10/22(土) 17:34:20.47ID:BSsXTeb9 CPANのモジュールも更新されないものが増えてきた
もうオワコン
もうオワコン
499デフォルトの名無しさん
2016/10/25(火) 21:00:26.38ID:EVpxycMx Windows環境でUnixのテキストファイルを処理します
改行LFがCR+LFに変換されてしまうのを防ぐために
perl -i.bak -p -e "BEGIN{ binmode STDIN; binmode STDOUT; } s/unko/manko/g;" hogo.txt
みたいな風に書いてるんですけど
もうちょっとスマートな書き方ありませんか?
改行LFがCR+LFに変換されてしまうのを防ぐために
perl -i.bak -p -e "BEGIN{ binmode STDIN; binmode STDOUT; } s/unko/manko/g;" hogo.txt
みたいな風に書いてるんですけど
もうちょっとスマートな書き方ありませんか?
500デフォルトの名無しさん
2016/10/25(火) 21:11:38.78ID:U4JQUv53 binmodeしないと自動変換されるの?
まぁ試してないけど、ワンライナーをやめれば良いのさ
まぁ試してないけど、ワンライナーをやめれば良いのさ
501デフォルトの名無しさん
2016/10/26(水) 00:45:00.36ID:IJ0r6zMc perl -pe
502デフォルトの名無しさん
2016/10/26(水) 03:02:37.18ID:1uI8N3VZ >>499
perl -mopen=OUT,:raw -i.bak -pe "s/unko/manko/g" hogo.txt
http://perldoc.jp/docs/perl/perlrun.pod
http://perldoc.jp/docs/perl/open.pod
perl -mopen=OUT,:raw -i.bak -pe "s/unko/manko/g" hogo.txt
http://perldoc.jp/docs/perl/perlrun.pod
http://perldoc.jp/docs/perl/open.pod
503デフォルトの名無しさん
2016/11/10(木) 22:48:13.72ID:SbD3rZb1 perlの場合は文字コードがEUCのデータファイルがあって
入力フォームからハングル文字で書き込むと自動的に&#○○○;の形に変換されて書き込まれるのですか?
入力フォームからハングル文字で書き込むと自動的に&#○○○;の形に変換されて書き込まれるのですか?
504デフォルトの名無しさん
2016/11/10(木) 22:56:55.76ID:Him+SRv0 フォームってなに?
505デフォルトの名無しさん
2016/11/10(木) 23:16:39.82ID:e4bBCogG 日本語と知能が不自由なあちらの人じゃない?
506デフォルトの名無しさん
2016/11/10(木) 23:30:34.65ID:XrxEtHdJ 最近はフォームを知らない人がいるんだ
おぢさん、世代ギャップを感じるよ
おぢさん、世代ギャップを感じるよ
507デフォルトの名無しさん
2016/11/11(金) 00:26:38.27ID:dQSao3i1 うわ、知能障害者がまた来たよ。
それともゆとり世代の代表例かな?
それともゆとり世代の代表例かな?
508デフォルトの名無しさん
2016/11/11(金) 12:07:09.49ID:PHyMHsut my $str = "aaa〹&bbb&ccc";
という文字列があって
&#以外の&を&に置換するやり方は?
という文字列があって
&#以外の&を&に置換するやり方は?
509デフォルトの名無しさん
2016/11/11(金) 12:09:09.25ID:PHyMHsut my $str = "aaa&#12345;bbb&ccc";
という文字列があって
&#以外の&を&に置換するやり方は?
#はここでは全角で入力したけど半角です
という文字列があって
&#以外の&を&に置換するやり方は?
#はここでは全角で入力したけど半角です
510デフォルトの名無しさん
2016/11/11(金) 12:09:58.95ID:PHyMHsut 訂正
my $str = "aaa&#12345;bbb&ccc";
という文字列があって
&#以外の&を&amp;に置換するやり方は?
#はここでは全角で入力したけど半角です
my $str = "aaa&#12345;bbb&ccc";
という文字列があって
&#以外の&を&amp;に置換するやり方は?
#はここでは全角で入力したけど半角です
511デフォルトの名無しさん
2016/11/11(金) 12:42:23.87ID:Bnx4QB3I 昨日の知能に問題がある人か
512デフォルトの名無しさん
2016/11/11(金) 12:49:30.58ID:mEGzssAg s/&(?!#)/&amp;/g
(?!...) 否定先読み
(?!...) 否定先読み
513デフォルトの名無しさん
2016/11/11(金) 17:35:35.83ID:KyOrnFnp こういう時日本語は全角文字を使えて便利だね
海外の人は&や#が入力できない時苦労しそう
海外の人は&や#が入力できない時苦労しそう
514デフォルトの名無しさん
2016/11/11(金) 17:40:50.55ID:OyxHpcMK 文字参照で書けばどうか?
s/&(?!#)/&/g
s/&(?!#)/&/g
515デフォルトの名無しさん
2016/11/11(金) 23:23:43.62ID:PHyMHsut できました
それとこの文字列で
my $str = "&amp;&amp;&am";
それとこの文字列で&amp;でない&(この場合一番後ろの&)を&amp;に置換するには
どうすればいいんでしょうか?
それとこの文字列で
my $str = "&amp;&amp;&am";
それとこの文字列で&amp;でない&(この場合一番後ろの&)を&amp;に置換するには
どうすればいいんでしょうか?
516デフォルトの名無しさん
2016/11/11(金) 23:38:03.46ID:mEGzssAg それも否定先読みじゃないの
同じようにやってごらん
同じようにやってごらん
517デフォルトの名無しさん
2016/12/07(水) 13:14:37.83ID:AwnLgrFF すみません教えてください。
DBD::CSVというのは
標準モジュールに含まれるのでしょうか?
DBD::CSVというのは
標準モジュールに含まれるのでしょうか?
518デフォルトの名無しさん
2016/12/07(水) 15:08:45.45ID:eBB6Jpl7 そもそもDBIが標準モジュールではない
519デフォルトの名無しさん
2016/12/07(水) 15:12:26.59ID:MGgEOjpT520デフォルトの名無しさん
2016/12/07(水) 15:13:12.93ID:AwnLgrFF521デフォルトの名無しさん
2016/12/07(水) 15:18:54.39ID:AwnLgrFF522デフォルトの名無しさん
2016/12/10(土) 20:16:28.52ID:cBnztJW7 perlの乱数生成器の内部状態を保存するにはどうしたらいいですか
seedだけ保存しても100万回 rand を呼んだところで中断したら再開するときまた100万回呼ばないとダメですよね
seedだけ保存しても100万回 rand を呼んだところで中断したら再開するときまた100万回呼ばないとダメですよね
523デフォルトの名無しさん
2016/12/10(土) 20:34:37.07ID:bw+AbQq7 そもそもrandはOS依存なので諦めてください。
524デフォルトの名無しさん
2016/12/14(水) 23:50:40.69ID:6q3W8zza と言うか動作の保証が求められる乱数みたいなのはオブジェクトごとに専用で実装する
525デフォルトの名無しさん
2016/12/15(木) 13:10:06.97ID:ZL343Whf 乱数用のモジュール使うしかないんだろうけど有名どころの Math::Random::MT は状態保存はできないみたいだな
pure perl実装の方は無理矢理シリアライズすればできそうだけど
pure perl実装の方は無理矢理シリアライズすればできそうだけど
526デフォルトの名無しさん
2016/12/15(木) 15:50:25.81ID:1Sd664ch 自分で書いても3分以内に全部かけそうだけどな
527デフォルトの名無しさん
2016/12/16(金) 20:29:42.48ID:rLtLojZ+ 再現性が必要な乱数は、一旦作成してファイルに保存して利用する
528デフォルトの名無しさん
2016/12/17(土) 00:56:05.87ID:G3Bk7Xtn 乱数が無限に必要な場合は円周率で代用する
529デフォルトの名無しさん
2016/12/19(月) 00:17:41.32ID:qsdLnaaR push pop shift unshiftが未だにどれがどうだったか覚えられません。
毎回ググるのも面倒なのですが、何か覚えるコツみたいなものはありますでしょうか。
ディスプレイに付箋を貼るのは嫌です。
毎回ググるのも面倒なのですが、何か覚えるコツみたいなものはありますでしょうか。
ディスプレイに付箋を貼るのは嫌です。
530デフォルトの名無しさん
2016/12/19(月) 00:26:18.79ID:E/K4i5of 毎回調べろ
531デフォルトの名無しさん
2016/12/19(月) 16:34:48.89ID:CDWthwTd あああ、オレも覚えるのに苦労した
だって、アセンブラの push 命令とは伸びる方向が真逆なんだよ
shift はバッチファイルにも同じ命令があるから分かるよね
前にズラす
はい、お次の方、どうぞ、って感じ
朝勤、昼勤、夜勤、って感じ
push は後ろから押す、背中から押す、ケツから押す、とにかく押すんだ
満員電車に乗るとき、押さないでください、押さないでください、って感じ
だって、アセンブラの push 命令とは伸びる方向が真逆なんだよ
shift はバッチファイルにも同じ命令があるから分かるよね
前にズラす
はい、お次の方、どうぞ、って感じ
朝勤、昼勤、夜勤、って感じ
push は後ろから押す、背中から押す、ケツから押す、とにかく押すんだ
満員電車に乗るとき、押さないでください、押さないでください、って感じ
532デフォルトの名無しさん
2016/12/19(月) 18:32:42.82ID:RxkoIqKm スマホかどうか判別するには
if(
$ENV{'HTTP_USER_AGENT'} =~ /iPhone/ ||
$ENV{'HTTP_USER_AGENT'} =~ /iPad/ ||
$ENV{'HTTP_USER_AGENT'} =~ /iPod/ ||
$ENV{'HTTP_USER_AGENT''} =~ /Android/
){
print "スマホだよ";
}
これでいいんですか?
if(
$ENV{'HTTP_USER_AGENT'} =~ /iPhone/ ||
$ENV{'HTTP_USER_AGENT'} =~ /iPad/ ||
$ENV{'HTTP_USER_AGENT'} =~ /iPod/ ||
$ENV{'HTTP_USER_AGENT''} =~ /Android/
){
print "スマホだよ";
}
これでいいんですか?
533デフォルトの名無しさん
2016/12/19(月) 21:42:52.71ID:BI+h437s push,popは一般的なCPU命令のpush.popと同じだね。スタック末尾に積んだり取り出したり。
shift,unshiftは直感的とは言いがたいけど、まあ覚えるしかない
shift,unshiftは直感的とは言いがたいけど、まあ覚えるしかない
534デフォルトの名無しさん
2016/12/19(月) 23:41:08.79ID:iJGCCAlx 対にして使うならば、push-pop、ないしpush-shift、unshiftはいったん忘れたほうがいい
535デフォルトの名無しさん
2016/12/19(月) 23:58:59.01ID:qsdLnaaR536デフォルトの名無しさん
2016/12/20(火) 01:30:38.17ID:vON4ZTDa537デフォルトの名無しさん
2016/12/20(火) 01:58:29.63ID:quKQ7lis 一行レスにこれだけの長文で応えるのは愛があるからだと思うの
538デフォルトの名無しさん
2016/12/20(火) 02:47:43.15ID:sHqfd7is 無理のある例えだが、配列がロケット鉛筆だとしたら
<0[1][2][3]
ケツに押し込むのが push
<0[1][2][3] ← [4]
ケツから飛び出ちゃうのが pop
<0[1][2] → [3]
芯を引っこ抜くのが shift
<0 ← <0[1][2]
先から無理矢理突っ込んじゃうのが unshift
→ <0[1][2][3][4]
<0[1][2][3]
ケツに押し込むのが push
<0[1][2][3] ← [4]
ケツから飛び出ちゃうのが pop
<0[1][2] → [3]
芯を引っこ抜くのが shift
<0 ← <0[1][2]
先から無理矢理突っ込んじゃうのが unshift
→ <0[1][2][3][4]
539デフォルトの名無しさん
2016/12/20(火) 03:25:48.63ID:Wy6+Up2x まあどうせすぐ忘れるだろ
結局は染み付くまで調べるのを繰り返すしかない
結局は染み付くまで調べるのを繰り返すしかない
540デフォルトの名無しさん
2016/12/20(火) 04:26:14.23ID:VxeGortQ541デフォルトの名無しさん
2016/12/20(火) 05:58:50.42ID:Wy6+Up2x うろ覚えで使うとバグの発見に苦しむんで
ほんのちょっとでも不安を覚える感じがしたら大丈夫だとは思ってても
必ず調べる方が良いよね
ほんのちょっとでも不安を覚える感じがしたら大丈夫だとは思ってても
必ず調べる方が良いよね
542デフォルトの名無しさん
2016/12/20(火) 14:29:43.74ID:GHwwkOBP 俺も毎回調べてることは色々ある
同じことを100回調べた疑いすらある
同じことを100回調べた疑いすらある
543デフォルトの名無しさん
2016/12/20(火) 18:25:40.76ID:JPbALvOm そんなこと言ってるとまた精神障害者の>>536に記憶障害とか言われるぞw
544デフォルトの名無しさん
2016/12/21(水) 00:24:41.66ID:nmy+aY6o 毎日のように使ってりゃそりゃ忘れることは無いだろうけど
数ヵ月とか間を空けると忘れてて調べなおすことはままある
記憶障害って言われるのはちょっときつい
数ヵ月とか間を空けると忘れてて調べなおすことはままある
記憶障害って言われるのはちょっときつい
545デフォルトの名無しさん
2016/12/21(水) 00:30:32.60ID:lo5qcp8D 記憶障害じゃなくてゆとり世代なのか?
546デフォルトの名無しさん
2016/12/21(水) 09:29:14.01ID:Xe+zsvfF 覚えにくいことは自分で一覧表を作ると良い
C#の宣言一覧とか目につく所にファイルしてある
C#の宣言一覧とか目につく所にファイルしてある
547デフォルトの名無しさん
2016/12/23(金) 10:11:56.10ID:jV2urUkG shiftは考えてみたけど、底の抜けた箱に物が詰まってて、箱自体を上にシフトすると一番下の物がまろび出てくるってイメージかな
548デフォルトの名無しさん
2016/12/24(土) 05:45:04.23ID:NChqVw6n 干草プッシュだけ覚えときゃなんとかなる気がするが、ロケットペンシル記憶術も捨てがたい
549デフォルトの名無しさん
2017/01/01(日) 16:43:08.52ID:YnMirTCR 配列のスライスとリストのスライスは微妙に仕様が違うんだな。最近まで気づかなかったよ。
550デフォルトの名無しさん
2017/01/04(水) 00:26:26.84ID:9INFfbdp モジュールのインストールすらできないPerlはマジでゴミ
膨大な依存関係を調べて手作業でインストールすればできないことはないのかもしれないが、
そんな暇があるのはニートくらいだろ
ゴミニート専用言語Perl
膨大な依存関係を調べて手作業でインストールすればできないことはないのかもしれないが、
そんな暇があるのはニートくらいだろ
ゴミニート専用言語Perl
551デフォルトの名無しさん
2017/01/04(水) 01:41:34.64ID:9INFfbdp >>829
今ケツの穴が痛くてそれどころじゃない
今ケツの穴が痛くてそれどころじゃない
552デフォルトの名無しさん
2017/01/04(水) 01:41:41.45ID:9INFfbdp >>829
今ケツの穴が痛くてそれどころじゃない
今ケツの穴が痛くてそれどころじゃない
553デフォルトの名無しさん
2017/01/04(水) 02:01:46.64ID:Z6+Vp8du 菊初めか
お大事に
お大事に
554デフォルトの名無しさん
2017/01/04(水) 06:53:29.45ID:Em4GHsJE 今ケツの穴が痛くてモジュールのインストールができない
・・・まで読んだ
・・・まで読んだ
555デフォルトの名無しさん
2017/01/06(金) 01:50:49.12ID:0ickO96c HTTP::Liteモジュール使うのと、ソケットでガチアクセスするのと、systemでwgetを実行するのではどれが一番速いですか?
556デフォルトの名無しさん
2017/01/07(土) 02:02:58.42ID:lcjjTGwJ HTTP::Liteは余計な処理がある分遅い、wgetはネイティブだがforkする分遅い。よってsocketかな
558デフォルトの名無しさん
2017/01/09(月) 03:46:03.29ID:Ba0Z9f3i ネトゲで寄生してくる香具師まじでウザい
レベルも装備も明らかに足りてないくせにパーティー入ってくるんじゃねーよ
前半はやる気を見せるためか最前線で敵に突っ込んでいって何度も即死
蘇生スキル持ちの職がいるとはいえMPも有限だし、死ぬと分かってるのに突っ込んで手間かけさせるな
後半は後ろからついてくるだけ
パーティーの人数によって敵の強さが変わるから、攻撃も回復もしない寄生虫一匹分、敵が強くなってるんだよ
まじでお荷物なんだが
レベルも装備も明らかに足りてないくせにパーティー入ってくるんじゃねーよ
前半はやる気を見せるためか最前線で敵に突っ込んでいって何度も即死
蘇生スキル持ちの職がいるとはいえMPも有限だし、死ぬと分かってるのに突っ込んで手間かけさせるな
後半は後ろからついてくるだけ
パーティーの人数によって敵の強さが変わるから、攻撃も回復もしない寄生虫一匹分、敵が強くなってるんだよ
まじでお荷物なんだが
559デフォルトの名無しさん
2017/01/09(月) 03:57:16.67ID:Ba0Z9f3i そういう糞雑魚がパーティーに入れない(入ったとしてもデメリットが大きい)MMORPG作りたいんだけど、
PerlでMMOサーバー作れる?
そうした寄生のできないちゃんとしたMMORPGを作りたい
PerlでMMOサーバー作れる?
そうした寄生のできないちゃんとしたMMORPGを作りたい
560デフォルトの名無しさん
2017/01/09(月) 04:02:21.88ID:09YuDyyp 君には無理
561デフォルトの名無しさん
2017/01/09(月) 06:19:53.73ID:Ba0Z9f3i 誰とは質問言わないが、明後日の方向向いたレスしてる知的障がい者がいるな
Perlで作れるかどうかという質問なんだがな
Perl使ってると日本語すら理解できなくなるのか、それとももともと日本語を理解できない朝鮮人が紛れ込んでいるのか
Perlで作れるかどうかという質問なんだがな
Perl使ってると日本語すら理解できなくなるのか、それとももともと日本語を理解できない朝鮮人が紛れ込んでいるのか
562デフォルトの名無しさん
2017/01/09(月) 06:23:50.50ID:09YuDyyp どっちにしろ君には無理
563デフォルトの名無しさん
2017/01/09(月) 08:24:01.83ID:Ba0Z9f3i 自分にできないものだから、それをこじらせて
自分以外の人間全員できないと思うようになったのか
ここまでくると哀れだな
自分以外の人間全員できないと思うようになったのか
ここまでくると哀れだな
564デフォルトの名無しさん
2017/01/10(火) 05:46:20.71ID:JXAVAbFC ID:Ba0Z9f3i
俺もこいつには無理って意見に全面的に賛成するわ。
そもそもPerlで作るって発想が馬鹿。
俺もこいつには無理って意見に全面的に賛成するわ。
そもそもPerlで作るって発想が馬鹿。
565デフォルトの名無しさん
2017/01/10(火) 08:17:16.04ID:lvul3mgx それ以前にそもそもPerlなんてゴミを使おうと思う時点で馬鹿。
使い物にならない時代遅れの言語が候補に出てくる時点でプログラマとして致命的。
使い物にならない時代遅れの言語が候補に出てくる時点でプログラマとして致命的。
566デフォルトの名無しさん
2017/01/11(水) 01:38:41.68ID:cSn92SSs サーバーサイドをPerlで作ってるところはそこそこあるだろう
567デフォルトの名無しさん
2017/01/11(水) 02:22:42.88ID:TF26KoMK mmoでか?
インタプリタを?
インタプリタを?
568デフォルトの名無しさん
2017/01/11(水) 18:54:09.92ID:FfNyKWnK だから君には無理だって
perlでmmoサーバ作れないどころか想像すらできないみたいだし
perlでmmoサーバ作れないどころか想像すらできないみたいだし
569デフォルトの名無しさん
2017/01/11(水) 18:59:46.49ID:9Pm7248G 俺は作れるかどうかを疑問視してるんでは無いと思うんだがな
>インタプリタを?
これをどういう風な意味に受け取ってるのかだろう
>インタプリタを?
これをどういう風な意味に受け取ってるのかだろう
570デフォルトの名無しさん
2017/01/11(水) 19:22:57.19ID:TF26KoMK 言語としてはPerlはチューリング完全を満たしています
最初に調べることだと思われますが
最初に調べることだと思われますが
571デフォルトの名無しさん
2017/01/12(木) 16:15:10.55ID:5aplhP3Q mmoサーバも作れないゴミ乙
言語がゴミなのか、perl厨がゴミなのか、それとも両方か
言語がゴミなのか、perl厨がゴミなのか、それとも両方か
572デフォルトの名無しさん
2017/01/12(木) 18:08:05.48ID:taUnzxu5 (´・ω・`)
/ `ヽ. お薬増やしておきますねー
__/ ┃)) __i |
/ ヽ,,⌒)___(,,ノ\
(´・ω・) チラッ
/ `ヽ.
__/ ┃ __i |
/ ヽ,,⌒)___(,,ノ\
(´・ω・`)
/ `ヽ. 今度カウンセリングも受けましょうねー
__/ ┃)) __i |
/ ヽ,,⌒)___(,,ノ\
/ `ヽ. お薬増やしておきますねー
__/ ┃)) __i |
/ ヽ,,⌒)___(,,ノ\
(´・ω・) チラッ
/ `ヽ.
__/ ┃ __i |
/ ヽ,,⌒)___(,,ノ\
(´・ω・`)
/ `ヽ. 今度カウンセリングも受けましょうねー
__/ ┃)) __i |
/ ヽ,,⌒)___(,,ノ\
573デフォルトの名無しさん
2017/01/13(金) 01:30:45.41ID:84sZuYo8 オンラインゲームを支える技術、中嶋謙互、2011、技術評論社
サーバの構築・運営、通信量など、
オンラインゲームのほぼ全工程を、説明した本です
大人数用MMOと少人数用P2Pの、両方について書いてある
確か言語は、C++ だったかな?
サーバの構築・運営、通信量など、
オンラインゲームのほぼ全工程を、説明した本です
大人数用MMOと少人数用P2Pの、両方について書いてある
確か言語は、C++ だったかな?
574デフォルトの名無しさん
2017/01/13(金) 11:59:30.05ID:lAI6bANo そらそうだろ、Perlなんて電子産廃なんだからC系とかPHPになるだろうよ。
Perlで何かを作ろうってほうがおかしい。
Perlで何かを作ろうってほうがおかしい。
575デフォルトの名無しさん
2017/01/13(金) 16:26:16.86ID:w9nZHjQ8 PHPに代えたって意味無いじゃん
同様の理由でPythonも却下
同様の理由でPythonも却下
576デフォルトの名無しさん
2017/01/13(金) 17:31:55.77ID:knj8G1ZF 下らないことにはレス率が増えるこのレベルの低さよ
577デフォルトの名無しさん
2017/01/14(土) 01:50:24.44ID:dLK6O0iv ウザいゴミ
578デフォルトの名無しさん
2017/01/16(月) 14:17:17.64ID:pfhmv7nO579デフォルトの名無しさん
2017/01/16(月) 18:16:40.64ID:dzrBWFk0 そんな重いことまずしない
580デフォルトの名無しさん
2017/01/21(土) 22:44:51.61ID:axnp1ig/ >>559
おれなら作れる
おれなら作れる
581デフォルトの名無しさん
2017/01/22(日) 21:26:40.74ID:xYSgWZ/D 寄生できないmmoとか簡単そうだけどな
(1)死ぬたびに獲得経験値1/10
(2)3回死亡でダンジョンから強制排出&所持金半減&獲得経験値ゼロ
(3)経験値はパーティーメンバーの敵に与えたダメージ比率
(3)があれば身の丈に合ってないダンジョンの時点で経験値はほぼゼロ
ほぼゼロなところへ(1)があるから限りなくゼロに近くなる
寄生でダンジョンクリアだけしようにも(2)のハイリスクがある
(1)死ぬたびに獲得経験値1/10
(2)3回死亡でダンジョンから強制排出&所持金半減&獲得経験値ゼロ
(3)経験値はパーティーメンバーの敵に与えたダメージ比率
(3)があれば身の丈に合ってないダンジョンの時点で経験値はほぼゼロ
ほぼゼロなところへ(1)があるから限りなくゼロに近くなる
寄生でダンジョンクリアだけしようにも(2)のハイリスクがある
582デフォルトの名無しさん
2017/01/24(火) 18:17:56.63ID:wudREosA >>581
回復職やサポート職の経験値もなしということでしょうか。
回復職やサポート職の経験値もなしということでしょうか。
583デフォルトの名無しさん
2017/01/24(火) 18:48:47.54ID:tYWypKKw 昔はこれでアラーにならなかったのですが、perl5.8でこれを実行すると @{$_[2]}が原因でこけてるらしいです。
どのように変えればよいでしょうか
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
どのように変えればよいでしょうか
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
584デフォルトの名無しさん
2017/01/24(火) 22:39:27.02ID:zqYaLnZ2 >>583
# http://perldoc.perl.org/5.8.9/Scalar/Util.html
use Scalar::Util qw(reftype);
my @WdayArr = reftype($_[2]) eq 'ARRAY' ? @{$_[2]} : qw(Sun Mon Tue Wed Thu Fri Sat);
# http://perldoc.perl.org/5.8.9/Scalar/Util.html
use Scalar::Util qw(reftype);
my @WdayArr = reftype($_[2]) eq 'ARRAY' ? @{$_[2]} : qw(Sun Mon Tue Wed Thu Fri Sat);
585デフォルトの名無しさん
2017/01/24(火) 23:38:20.96ID:LKVAQWtm >>583
$_[2]には何が入ってんだよ
$_[2]には何が入ってんだよ
586デフォルトの名無しさん
2017/01/25(水) 08:15:46.34ID:1MVxS70E587デフォルトの名無しさん
2017/01/25(水) 09:09:34.94ID:WOhX0mTt 違う、そうじゃない
588デフォルトの名無しさん
2017/01/25(水) 09:15:19.78ID:dJNPI+cJ >>586
Perl 5.16.3 だが、下のスクリプトで1行目を入れても
消しても、きちんと動くぞ。
$_[2]に配列のリファレンス以外のものを入れたのだろう。
(エラーメッセージにそう書いてあるはずなんだが)
-----------------------------------------
$_[2] = [qw(a b c d e f g)];
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
print @WdayArr;
Perl 5.16.3 だが、下のスクリプトで1行目を入れても
消しても、きちんと動くぞ。
$_[2]に配列のリファレンス以外のものを入れたのだろう。
(エラーメッセージにそう書いてあるはずなんだが)
-----------------------------------------
$_[2] = [qw(a b c d e f g)];
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
print @WdayArr;
589デフォルトの名無しさん
2017/01/25(水) 09:30:32.20ID:1MVxS70E590デフォルトの名無しさん
2017/01/25(水) 10:03:41.94ID:WOhX0mTt こういう時はエラーメッセージをそのまま貼るのが正解
591デフォルトの名無しさん
2017/01/25(水) 10:20:22.46ID:1MVxS70E このようなエラーが
Can't use string ("ARRAY(0x10b0458)") as an ARRAY ref while "strict refs" in use at obj.cgi
Can't use string ("ARRAY(0x10b0458)") as an ARRAY ref while "strict refs" in use at obj.cgi
592デフォルトの名無しさん
2017/01/25(水) 10:29:15.16ID:WOhX0mTt ARRAY(0x10b0458) というのは配列リファレンスを文字列として評価した時に出てくる
関数の呼び出し元で配列をそのまま渡さずにダブルクォートで囲うなどして文字列化してしまっているのだろう
関数の呼び出し元で配列をそのまま渡さずにダブルクォートで囲うなどして文字列化してしまっているのだろう
593デフォルトの名無しさん
2017/01/25(水) 10:31:24.85ID:1MVxS70E ありがとうございます。関数の実行側のほうを確認します。
594デフォルトの名無しさん
2017/01/28(土) 20:27:36.04ID:t13qO4X2 Perlはマジで糞だな
リファレンスはリファレンスで同じじゃねーの?
バックスラッシュ付けたリファレンスでも種類によって違うとか意味不明
リファレンスはリファレンスで同じじゃねーの?
バックスラッシュ付けたリファレンスでも種類によって違うとか意味不明
595デフォルトの名無しさん
2017/01/28(土) 20:37:05.87ID:7oV/H97Q ・・・?
596デフォルトの名無しさん
2017/01/30(月) 08:35:21.14ID:CkOT0sBx Cの共用体のようなことしなければ、
ある「型」のリファレンスは
その「型」のリファレンスのままでよい。
それ以外の使い方をすれば、「間違っている」として
エラーを吐いてくれるのが有難いではないか。
ただ、リストのリファレンスをハッシュの
リファレンスとして使いたい時(またはその逆)
がたまにあるが、それは可能にしてほしいと思う。
ある「型」のリファレンスは
その「型」のリファレンスのままでよい。
それ以外の使い方をすれば、「間違っている」として
エラーを吐いてくれるのが有難いではないか。
ただ、リストのリファレンスをハッシュの
リファレンスとして使いたい時(またはその逆)
がたまにあるが、それは可能にしてほしいと思う。
597デフォルトの名無しさん
2017/01/30(月) 15:21:11.69ID:MjhEgZic # こういうのじゃいかんか?
my $ref_to_hash0 = +{ @{ $ref_to_array0 } };
my $ref_to_array1 = [ %{ $ref_to_hash1 } ];
my $ref_to_hash0 = +{ @{ $ref_to_array0 } };
my $ref_to_array1 = [ %{ $ref_to_hash1 } ];
598デフォルトの名無しさん
2017/01/30(月) 21:42:50.47ID:kKFFvpaa >>597
無駄なものがあって読みづらい
my $ref_to_hash0 = { @$ref_to_array0 };
my $ref_to_array1 = [ %$ref_to_hash1 ];
何がしたいのかわからん。
キーと値が交互に出てくるものを
ハッシュかリストに変換したいのか?
無駄なものがあって読みづらい
my $ref_to_hash0 = { @$ref_to_array0 };
my $ref_to_array1 = [ %$ref_to_hash1 ];
何がしたいのかわからん。
キーと値が交互に出てくるものを
ハッシュかリストに変換したいのか?
599デフォルトの名無しさん
2017/01/30(月) 23:42:02.11ID:XappdU+s my $ref_to_hash0 = { $ref_to_array0->@* };
my $ref_to_array1 = [ $ref_to_hash1->%* ];
my $ref_to_array1 = [ $ref_to_hash1->%* ];
600デフォルトの名無しさん
2017/02/04(土) 21:52:52.06ID:rb4WR6H/ Javaのクラス周りに慣れるとPerlのクラス周りは本当に不自由だと気付く
601デフォルトの名無しさん
2017/02/04(土) 22:07:55.97ID:ydMztSgS 比較例に出すのにJavaのクラスなんぞを持ち出すのもどうかと
602デフォルトの名無しさん
2017/02/06(月) 09:40:35.12ID:ZiMti5cO xp 32bit
xp対応のアクティブパール(ActivePerl)がダウンロードできないです
旧バージョンはどこからダウンロードできますか?
xp対応のアクティブパール(ActivePerl)がダウンロードできないです
旧バージョンはどこからダウンロードできますか?
603デフォルトの名無しさん
2017/02/06(月) 12:24:16.94ID:dMFd7Yq5604デフォルトの名無しさん
2017/02/06(月) 14:58:39.49ID:q20moLVF $str = "LIST( '2016123456','2015123456','2017987654',…)
という$strがあった時に、シングルクオートに囲まれた部分だけを取り出して
@listに突っ込みたいんだけどどう書いたらいい?
splitの正規表現でいけるかと思ったけどどう書いていいかわからない。
という$strがあった時に、シングルクオートに囲まれた部分だけを取り出して
@listに突っ込みたいんだけどどう書いたらいい?
splitの正規表現でいけるかと思ったけどどう書いていいかわからない。
605デフォルトの名無しさん
2017/02/06(月) 19:57:05.35ID:YzSDBsjI606デフォルトの名無しさん
2017/02/06(月) 20:08:36.65ID:B4iHWGCu 今activesite見てきたら、まあ流し読みしかしてないけど、古いバージョンは有料で提供してやるよって買いてあった
607デフォルトの名無しさん
2017/02/06(月) 20:13:46.71ID:B4iHWGCu Need Perl on production servers or access to Perl 5.6, 5.8, 5.10, 5.12, 5.14, 5.16, 5.18 or 5.20?
Learn more about ActivePerl Business Edition
--------------------------------------------------------------------------------------------------------------------------
Get the language version you need on the platform you want. The following versions are available for purchase with Business Edition+:
ActivePerl 5.8, 5.10, 5.12, 5.14, 5.16, 5.18, 5.20, 5.22, 5.24
ActivePython 2.5, 2.6, 2.7, 3.2, 3.3, 3.4, 3.5
ActiveTcl 8.4, 8.5, 8.6
Learn more about ActivePerl Business Edition
--------------------------------------------------------------------------------------------------------------------------
Get the language version you need on the platform you want. The following versions are available for purchase with Business Edition+:
ActivePerl 5.8, 5.10, 5.12, 5.14, 5.16, 5.18, 5.20, 5.22, 5.24
ActivePython 2.5, 2.6, 2.7, 3.2, 3.3, 3.4, 3.5
ActiveTcl 8.4, 8.5, 8.6
608デフォルトの名無しさん
2017/02/06(月) 20:41:32.21ID:r2wSMn/A >>604
push @list, $1 while $str =~ /'([0-9]+)'/g;
push @list, $1 while $str =~ /'([0-9]+)'/g;
609デフォルトの名無しさん
2017/02/06(月) 20:55:17.22ID:oG8S/cPb >>604
$str = "LIST( '2016123456','2015123456','2017987654',…)
$str =~ s/LIST/@list=/;
eval($str);
でいいんじゃね?
$str = "LIST( '2016123456','2015123456','2017987654',…)
$str =~ s/LIST/@list=/;
eval($str);
でいいんじゃね?
610デフォルトの名無しさん
2017/02/06(月) 23:15:15.61ID:n09J3oc8 eval 怖ひ
611デフォルトの名無しさん
2017/02/07(火) 00:35:10.28ID:S1oxUZhq612デフォルトの名無しさん
2017/02/07(火) 08:04:04.27ID:0+g59X+8613デフォルトの名無しさん
2017/02/07(火) 08:39:30.86ID:5nFcePp/ >>602
2014年にダウンロードした
ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi
を持っている。
ただ、Active State が古いバージョンを有償でのみ提供
しているのに、勝手に古いバージョンをうpしていいものか解らん。
そのあたり、クリアにしたら、どこかにうpしてやってもいいが。
2014年にダウンロードした
ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi
を持っている。
ただ、Active State が古いバージョンを有償でのみ提供
しているのに、勝手に古いバージョンをうpしていいものか解らん。
そのあたり、クリアにしたら、どこかにうpしてやってもいいが。
614デフォルトの名無しさん
2017/02/07(火) 10:26:02.92ID:NmaWW75y m//g の形式でグローバルマッチの意味がないように思うが
615デフォルトの名無しさん
2017/02/07(火) 12:23:47.76ID:5nFcePp/616デフォルトの名無しさん
2017/02/07(火) 16:36:45.75ID:pJfTbQRq あると高速化できるようなrecommendsだけどインストールされていないモジュールを一覧出来る方法を教えて下さい
617デフォルトの名無しさん
2017/02/07(火) 17:46:12.43ID:TrN1jB3j >>602
googleでググったらすぐに見つかったけど?
https://xray-engine.org/index.php?title=ActivePerl
(このサイトは開くとき継続しますかって警告が出たんで
ルート証明の認証に問題があるかも知れない
一応Java ScriptとActiveXの実行は切ってアクセスしたほうがいいだろう)
一応俺が使ってる(XP 32bit)
ActivePerl-5.20.3.2003-MSWin32-x86-64int-299574.msi
をダウンロードして保存していたファイルと比較してみたけど一致したから問題ないと思う
あと、5.22.1も試してPerlとしては動いたので
現行ダウンロードできる5.22.3も大丈夫じゃないかな?
(インストーラがexeに変わってるけど)
あと俺が使えると言った5.22.1を何故使ってないかと言うと
WSHから何故か正常に使えなかったので、使える5.20.3を使ってる
googleでググったらすぐに見つかったけど?
https://xray-engine.org/index.php?title=ActivePerl
(このサイトは開くとき継続しますかって警告が出たんで
ルート証明の認証に問題があるかも知れない
一応Java ScriptとActiveXの実行は切ってアクセスしたほうがいいだろう)
一応俺が使ってる(XP 32bit)
ActivePerl-5.20.3.2003-MSWin32-x86-64int-299574.msi
をダウンロードして保存していたファイルと比較してみたけど一致したから問題ないと思う
あと、5.22.1も試してPerlとしては動いたので
現行ダウンロードできる5.22.3も大丈夫じゃないかな?
(インストーラがexeに変わってるけど)
あと俺が使えると言った5.22.1を何故使ってないかと言うと
WSHから何故か正常に使えなかったので、使える5.20.3を使ってる
618デフォルトの名無しさん
2017/02/07(火) 20:35:38.79ID:k/sR8nQd619デフォルトの名無しさん
2017/02/07(火) 20:58:27.25ID:NmaWW75y use IO::Socket;
620デフォルトの名無しさん
2017/02/08(水) 01:47:50.85ID:lrXbOWPO621デフォルトの名無しさん
2017/02/09(木) 00:36:47.60ID:MB7d2iTo おれ XP で Strawberry Perl つかってる
ActivePerl はモジュールの対応が遅いから乗り換えた
ActivePerl はモジュールの対応が遅いから乗り換えた
622デフォルトの名無しさん
2017/02/09(木) 00:50:56.06ID:9TbyVJRb むしろなぜXPを使ってるのか知りたい
623デフォルトの名無しさん
2017/02/09(木) 01:09:37.56ID:EjItGpsn >>617のところでActive Perlの古いのから最新まで全部ダウンロードできるじゃん
それで解決だろ
それで解決だろ
624デフォルトの名無しさん
2017/02/09(木) 12:20:55.28ID:awPX9+44 >>622
M$に金を払うのが嫌だからだろう。
M$に金を払うのが嫌だからだろう。
625デフォルトの名無しさん
2017/02/09(木) 22:13:19.02ID:CNUBJX7I >>624
それだけだったらLinuxやFreeBSDなどを使うって方法もあるだろ?
だからM$に金を払うのがいやだけど、MSのOSが好きという理由であるはずだ
もしくはMS以外のOSがクソだっていう可能性もあるけど
それだけだったらLinuxやFreeBSDなどを使うって方法もあるだろ?
だからM$に金を払うのがいやだけど、MSのOSが好きという理由であるはずだ
もしくはMS以外のOSがクソだっていう可能性もあるけど
626デフォルトの名無しさん
2017/02/09(木) 22:22:13.62ID:4ZcYgl3B627デフォルトの名無しさん
2017/02/09(木) 23:43:38.97ID:NyKrJWYT 進化が止まっている #とは
628デフォルトの名無しさん
2017/02/10(金) 07:05:20.49ID:SVdyXXtN >>618
もう見てないだろうけど
HTML::TreeBuilder
HTTP::Daemon
LWP::UserAgent
WWW::Scripter
くらいでなんとかなると思うよ。簡単かどうかは知らんけど大体なんとかなってる。
もう見てないだろうけど
HTML::TreeBuilder
HTTP::Daemon
LWP::UserAgent
WWW::Scripter
くらいでなんとかなると思うよ。簡単かどうかは知らんけど大体なんとかなってる。
629デフォルトの名無しさん
2017/02/10(金) 10:48:54.81ID:tdAYPVUl 最近はperlは余り聞かないな
中学生の時にはブームだったけど……。(何十年も前)
学校ではpython とかだと思う。C# java が主力?
とにかく、滅多に聞かないな
中学生の時にはブームだったけど……。(何十年も前)
学校ではpython とかだと思う。C# java が主力?
とにかく、滅多に聞かないな
630デフォルトの名無しさん
2017/02/10(金) 15:05:42.76ID:j8ygGIFR631デフォルトの名無しさん
2017/02/10(金) 22:06:13.34ID:+KYQgfiL Perlは全然進化しないからな
一年ちょっと前に6がでて音沙汰なし
7はいつ出るんだ?って状態
一年ちょっと前に6がでて音沙汰なし
7はいつ出るんだ?って状態
632デフォルトの名無しさん
2017/02/10(金) 22:29:17.89ID:pJ/oSP18 ナイスジョーク
633デフォルトの名無しさん
2017/02/11(土) 09:59:05.70ID:pXj4BwQB まともな学校はcだろ。
634デフォルトの名無しさん
2017/02/11(土) 11:05:50.36ID:ffoIlYEu 実用性を重視するならJava一択
635デフォルトの名無しさん
2017/02/11(土) 14:50:19.58ID:N4/UY6wx636デフォルトの名無しさん
2017/02/11(土) 15:18:36.75ID:p/3UeWk3 >>634
> 実用性を重視するならJava一択
それって言語の実用性じゃなくて
人材的な意味での実用性だよな
つまりJavaは色んな所で使われてる言語だから
Javaできますって言っておけば採用されやすい。
自分が実用性がある人間になりたいならJava一択
> 実用性を重視するならJava一択
それって言語の実用性じゃなくて
人材的な意味での実用性だよな
つまりJavaは色んな所で使われてる言語だから
Javaできますって言っておけば採用されやすい。
自分が実用性がある人間になりたいならJava一択
637デフォルトの名無しさん
2017/02/11(土) 15:23:34.94ID:H7Znugc/ いい加減スレチ
638デフォルトの名無しさん
2017/02/11(土) 15:50:08.46ID:ffoIlYEu 言語なんかいくつ修得してもいいんだから、大人しくJava勉強しとけ
639デフォルトの名無しさん
2017/02/11(土) 17:33:33.41ID:tLczzgrK 何がなんだか仕様に混乱するから3つまでしか習得出来ません
4つめ覚えるとなにかを忘れます
4つめ覚えるとなにかを忘れます
640デフォルトの名無しさん
2017/02/11(土) 21:11:41.56ID:y7nchZP8 621
> むしろなぜXPを使ってるのか知りたい
動作確認だよ
XPと10で動くならVistaでも7でも8でもでも動く可能性が高いから
いちいち全OSを揃えて動作確認すると
シロウトの趣味でアプリケーション開発するには荷が重すぎる
> むしろなぜXPを使ってるのか知りたい
動作確認だよ
XPと10で動くならVistaでも7でも8でもでも動く可能性が高いから
いちいち全OSを揃えて動作確認すると
シロウトの趣味でアプリケーション開発するには荷が重すぎる
641デフォルトの名無しさん
2017/02/11(土) 22:46:04.81ID:p/3UeWk3 いちいち全OSで動作させたいと思う理由は何?
サポートが終了しているXPで動作する必要はないし
Vistaも2017年4月までだ。シェアから考えれば切り捨てても十分だし
7と10で動作確認すればいいじゃん
サポートが終了しているXPで動作する必要はないし
Vistaも2017年4月までだ。シェアから考えれば切り捨てても十分だし
7と10で動作確認すればいいじゃん
642デフォルトの名無しさん
2017/02/11(土) 23:02:42.86ID:ffoIlYEu XPはまだ結構現役で残ってるぞ
643デフォルトの名無しさん
2017/02/11(土) 23:33:55.67ID:p/3UeWk3 俺の周りに見たことない
644デフォルトの名無しさん
2017/02/13(月) 12:16:27.67ID:vLa3XGqC 俺の周りでは、いまだにNT3.5.1を使ってる取引先があるのだが。
645デフォルトの名無しさん
2017/02/13(月) 18:59:46.87ID:VKyPIbro 用途を特定した専用マシンみたいなのは、特にOSを入れ替えずにずっと使うな
測定機器や実験機器の一部とか、何かの制御用とか
ただ、そんなマシンは新しいソフトを入れたりもしないから、
互換性とかどうでもいい世界だけど
測定機器や実験機器の一部とか、何かの制御用とか
ただ、そんなマシンは新しいソフトを入れたりもしないから、
互換性とかどうでもいい世界だけど
646デフォルトの名無しさん
2017/02/17(金) 23:51:32.63ID:QUNiBjhs 以前こちらでお世話になった顔文字のど素人です。
$ perl -p -e 's/(..)/$1 /g;'
123456
↓
12 34 56
恐縮ですが上記の逆(スペースの削除)をご指導願います。
00 06 fc 25 58 50 0a 00 54 92 31 03 49 46 88 d0 c6
↓
0006fc2558500a0054923103494688d0c6
よろしくお願いいたします _(_^_)_
$ perl -p -e 's/(..)/$1 /g;'
123456
↓
12 34 56
恐縮ですが上記の逆(スペースの削除)をご指導願います。
00 06 fc 25 58 50 0a 00 54 92 31 03 49 46 88 d0 c6
↓
0006fc2558500a0054923103494688d0c6
よろしくお願いいたします _(_^_)_
647デフォルトの名無しさん
2017/02/18(土) 00:14:42.65ID:eUOj9Lyv >>646
s/\s//g
s/\s//g
648デフォルトの名無しさん
2017/02/18(土) 00:53:08.66ID:UURjaLCm >>646
死んだ方がいいレベル
死んだ方がいいレベル
649デフォルトの名無しさん
2017/02/18(土) 00:58:30.39ID:np+iCDRO とにかく学習しようという気がまったく見えないのが凄い
650デフォルトの名無しさん
2017/02/18(土) 01:09:34.78ID:oWVhdX8p 普通1時間以内に学習を完了してそうなものを、10日以上経ってるぞ
652デフォルトの名無しさん
2017/02/18(土) 21:00:13.31ID:3ABB/Pla だから土曜日に書いたと
653デフォルトの名無しさん
2017/02/26(日) 10:31:20.73ID:cj/RoW+L active perlで、長いファイル名のあるフォルダに対して readdir すると、
エラーになって止まるんだけど、どうやって回避すればいいんだ
エラーが返るとかじゃなくて実行自体が止まるので、とりあえず読んでみて、
とかが出来ない
エラーになって止まるんだけど、どうやって回避すればいいんだ
エラーが返るとかじゃなくて実行自体が止まるので、とりあえず読んでみて、
とかが出来ない
654デフォルトの名無しさん
2017/02/26(日) 10:39:23.76ID:OmTNhTRr windowsのエラーじゃねぇの?
とりあえずevalすれば実行は止まらないと思うけど
とりあえずevalすれば実行は止まらないと思うけど
655デフォルトの名無しさん
2017/02/27(月) 08:34:03.50ID:hOw/b7i/ >>653
ひょっとして、ファイル名にユニコード文字が混じったりしてない?
ひょっとして、ファイル名にユニコード文字が混じったりしてない?
656デフォルトの名無しさん
2017/02/27(月) 08:44:24.40ID:hOw/b7i/ readdirのユニコード版なら、こうゆうモジュールもある。
http://search.cpan.org/~xaicron/Win32-Unicode-0.26/lib/Win32/Unicode/Dir.pm
http://search.cpan.org/~xaicron/Win32-Unicode-0.26/lib/Win32/Unicode/Dir.pm
657デフォルトの名無しさん
2017/02/27(月) 18:47:01.31ID:dx1g9tP+ unicodeは入ってない
単に長いだけ
単に長いだけ
658デフォルトの名無しさん
2017/02/27(月) 22:36:40.65ID:8LXDZxYt Win32::LongPathは?
659デフォルトの名無しさん
2017/02/27(月) 22:51:51.90ID:dx1g9tP+ それを使うと、既存のreaddir の挙動が変わるの?
660デフォルトの名無しさん
2017/02/28(火) 08:31:44.98ID:ECHoSeWI >>659
「長い」って何文字なん?260文字以下だと問題ないはず。
「長い」って何文字なん?260文字以下だと問題ないはず。
661デフォルトの名無しさん
2017/02/28(火) 18:54:26.71ID:Gbg+HMKR それ以上あったので問題があった
662デフォルトの名無しさん
2017/03/01(水) 08:44:35.66ID:RfMjQxG+ Windowsで260文字以上のファイル名を普通に作ろうとすると、
「ファイル名が長すぎる」とエラーが出るが、
ネットワークドライブを使うと、作れてしまうようだ。
ただ、それを実際に使おうとすると、ドツボに嵌るみたいだな。
「ファイル名が長すぎる」とエラーが出るが、
ネットワークドライブを使うと、作れてしまうようだ。
ただ、それを実際に使おうとすると、ドツボに嵌るみたいだな。
663デフォルトの名無しさん
2017/03/01(水) 21:51:27.16ID:KTTjixcr ファイル名っていうか、パスを含めた長さな
664デフォルトの名無しさん
2017/03/05(日) 00:13:47.26ID:hhHVIZUN @file = split(/\n/,`dir /s /b *.* 2>NUL`);
な。次スレのテンプレに追加するから。
な。次スレのテンプレに追加するから。
665デフォルトの名無しさん
2017/03/05(日) 15:57:50.73ID:des1Iukd forkするのOKなら何でもありじゃん
666デフォルトの名無しさん
2017/03/08(水) 23:48:39.27ID:0EPJtM8y シェルとカーネルを縦横無尽に使いこなすのがPerlプログラミングの醍醐味。
667デフォルトの名無しさん
2017/03/09(木) 15:21:10.67ID:lYcZyteE print 1+(2+3);
print (1+2)+3;
この二つの文の違いを使いこなすのが、Perlプログラミングの醍醐味。
print (1+2)+3;
この二つの文の違いを使いこなすのが、Perlプログラミングの醍醐味。
668デフォルトの名無しさん
2017/03/14(火) 00:58:03.78ID:mRCDOzFa awk 由来の 0+ ハックや "". ハックは常識として使いこなすのが、Perlプログラミングのたしなみ。
669デフォルトの名無しさん
2017/03/15(水) 23:38:07.63ID:WjEGzhMP ハックと言ってる時点で使ってはダメなものだ
670デフォルトの名無しさん
2017/03/16(木) 00:17:10.27ID:a1z6pXZc 工夫できないなら何を使ってもダメ
sub to_s { $_[0].'' }
sub to_i { $_[0]+00 }
sub to_s { $_[0].'' }
sub to_i { $_[0]+00 }
671デフォルトの名無しさん
2017/03/16(木) 06:54:07.57ID:t2soddN5 >awk 由来の 0+ ハックや "". ハックは
そもそも、常識でないといいたげな、このレスは何?
まともな参考本読めば、最初の方に書いてある。
ハックでもなんでもない
そもそも、常識でないといいたげな、このレスは何?
まともな参考本読めば、最初の方に書いてある。
ハックでもなんでもない
672デフォルトの名無しさん
2017/03/20(月) 17:47:23.90ID:5loIUxX7 Win-7、Active Perl 5.16です。Unicode文字を含むperlの処理結果を
utf16leで出力しようとしています。下のようにやってみましたが、ダメでした。
出力をバイナリエディタでみると、改行コードが変な風にいじられていました。
binmode STDOUT => ":encoding(utf16le)";
print "ユニコード文字を含むテキスト\n";
色々試した結果、下のスクリプトのようにすると、概ね動くことが解り
ましたが、動かない場合もあります。下の例では、「aaaaa」は出力され
ますが、「bbbbb」は出力されません。どうするのが正しいでしょうか?
use utf8;
binmode STDOUT;
use Encode qw/ encode decode /;
sub wprint{
foreach(@_){
s/\n/\r\n/g;
print encode('utf-16-le', $_);
}
}
wprint "a"x5, "\n";
foreach (1..5){
wprint "b";
}
wprint "\n";
utf16leで出力しようとしています。下のようにやってみましたが、ダメでした。
出力をバイナリエディタでみると、改行コードが変な風にいじられていました。
binmode STDOUT => ":encoding(utf16le)";
print "ユニコード文字を含むテキスト\n";
色々試した結果、下のスクリプトのようにすると、概ね動くことが解り
ましたが、動かない場合もあります。下の例では、「aaaaa」は出力され
ますが、「bbbbb」は出力されません。どうするのが正しいでしょうか?
use utf8;
binmode STDOUT;
use Encode qw/ encode decode /;
sub wprint{
foreach(@_){
s/\n/\r\n/g;
print encode('utf-16-le', $_);
}
}
wprint "a"x5, "\n";
foreach (1..5){
wprint "b";
}
wprint "\n";
673デフォルトの名無しさん
2017/03/20(月) 19:53:29.20ID:SJAmj6b4 >改行コードが変な風にいじられていました
perlではどのOSでも改行をLF(\n, 0x0a)として扱っている
Windowsでは通常出力する際に自動的にLFをCRLFに変換している
0x0a (perlの\n)
0x0a 0x00 (utf16にエンコード)
0x0d 0x0a 0x00 (0x0a を 0x0d 0x0a に変換、正しくは 0x0d 0x00 0x0a 0x00 にしたい)
wprint関数のやり方が上手くいくのは
0x0a (perlの\n)
0x0d 0x0a (s/\n/\r\n/g で置換)
0x0d 0x00 0x0a 0x00 (utf16にエンコードし、自動変換も無効にしているのでこのまま出力される)
>「bbbbb」は出力されません
様々な事情で特殊変数 @_ の各要素やループ時に設定される一時変数 $_ は元の値の別名として扱われる
つまり同じ値を参照しているため、それらに代入や置換などを行うと元の値も変更されてしまう
元の値が変数ならそれが変更されるだけで問題はないが、定数の場合変更できないのでそこで死んでしまう
wprint関数では @_ でもループ内でも変数として受け取っていないため置換処理で引数の値を変更しようとしている
'a' x 5 は評価されたときに変数に入れられたように扱われるので問題はないが、直後の "\n" はまさしく定数なので変更できず死に、以降の処理が止まる
関数内で最初に my @args = @_; のように一度変数で受け取るのが意図しない変更を防ぐ意味でも良いだろう
perlではどのOSでも改行をLF(\n, 0x0a)として扱っている
Windowsでは通常出力する際に自動的にLFをCRLFに変換している
0x0a (perlの\n)
0x0a 0x00 (utf16にエンコード)
0x0d 0x0a 0x00 (0x0a を 0x0d 0x0a に変換、正しくは 0x0d 0x00 0x0a 0x00 にしたい)
wprint関数のやり方が上手くいくのは
0x0a (perlの\n)
0x0d 0x0a (s/\n/\r\n/g で置換)
0x0d 0x00 0x0a 0x00 (utf16にエンコードし、自動変換も無効にしているのでこのまま出力される)
>「bbbbb」は出力されません
様々な事情で特殊変数 @_ の各要素やループ時に設定される一時変数 $_ は元の値の別名として扱われる
つまり同じ値を参照しているため、それらに代入や置換などを行うと元の値も変更されてしまう
元の値が変数ならそれが変更されるだけで問題はないが、定数の場合変更できないのでそこで死んでしまう
wprint関数では @_ でもループ内でも変数として受け取っていないため置換処理で引数の値を変更しようとしている
'a' x 5 は評価されたときに変数に入れられたように扱われるので問題はないが、直後の "\n" はまさしく定数なので変更できず死に、以降の処理が止まる
関数内で最初に my @args = @_; のように一度変数で受け取るのが意図しない変更を防ぐ意味でも良いだろう
674デフォルトの名無しさん
2017/03/21(火) 08:41:14.27ID:RAznfVax675デフォルトの名無しさん
2017/03/31(金) 19:10:56.36ID:I7SB2jha print (1+2)+(4+5)+6+7;
3
3
676デフォルトの名無しさん
2017/03/31(金) 21:37:50.01ID:lffYMjCi print print (1+2)+(4+5)+6+7;
3
23
print print print (1+2)+(4+5)+6+7;
3
23
1 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
3
23
print print print (1+2)+(4+5)+6+7;
3
23
1 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
677デフォルトの名無しさん
2017/03/31(金) 22:38:54.66ID:PsuuxH/N $hash{'aaa'}{'bbb'}{'ccc'} = 1;
みたいなことをしても、普通に通るのが凄いよな
それでいて、仕様としては別に多次元ハッシュなんか対応してない
みたいなことをしても、普通に通るのが凄いよな
それでいて、仕様としては別に多次元ハッシュなんか対応してない
678デフォルトの名無しさん
2017/04/01(土) 08:51:48.01ID:AF9KLm8F なにをするんでもいちいちチェックが入って膨大な自動操作が裏で行われてる証拠。
さらに変数と実体を結びつけるデータテーブルもかなりの容量を使用してる。
木構造の探索などをやると、動作がCの10倍程度違うと言われるけど、やってみたらメモリ容量が100倍以上違うことも確認された。(将棋の盤面探索)。
まあ一時的にスクリプトが欲しいときとか、それが良い時はそれで良いけど、
通常のソフトウェアを作る時内部でそんなことが起きれてば完全な欠陥なわけであって。
さらに変数と実体を結びつけるデータテーブルもかなりの容量を使用してる。
木構造の探索などをやると、動作がCの10倍程度違うと言われるけど、やってみたらメモリ容量が100倍以上違うことも確認された。(将棋の盤面探索)。
まあ一時的にスクリプトが欲しいときとか、それが良い時はそれで良いけど、
通常のソフトウェアを作る時内部でそんなことが起きれてば完全な欠陥なわけであって。
679デフォルトの名無しさん
2017/04/01(土) 17:07:22.61ID:y/HEzjsw そうか、100倍以上違うのか。試してみたいからソースコードを見せてくれ。
680デフォルトの名無しさん
2017/04/01(土) 17:19:36.13ID:aXA7htV2 >>678
えーと、インタプリタとコンパイラって知ってるかい?
えーと、インタプリタとコンパイラって知ってるかい?
681デフォルトの名無しさん
2017/04/02(日) 11:42:32.36ID:W390vP7B 1 ビット × 8000000 のビットマップって Perl でどうやるんだろう? こうかな?
$perl -e '$h{ $_ } = 1 foreach 0 .. 7999999; system("bash","-c","ps -p \$PPID -F");'
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
i 5240 4743 96 253250 997920 1 11:18 pts/4 00:00:05 perl -e $h{
$
みたいなことでもしたんだろうか。
$perl -e '$h{ $_ } = 1 foreach 0 .. 7999999; system("bash","-c","ps -p \$PPID -F");'
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
i 5240 4743 96 253250 997920 1 11:18 pts/4 00:00:05 perl -e $h{
$
みたいなことでもしたんだろうか。
682デフォルトの名無しさん
2017/04/02(日) 12:21:59.20ID:n1w2M1cg683デフォルトの名無しさん
2017/04/02(日) 13:25:59.95ID:zGspEIRF お前の情報源はえらくあやふやだな
684デフォルトの名無しさん
2017/04/02(日) 14:35:50.91ID:n1w2M1cg 「そう言われてる」ってやつだからな。
ただ有名なんで検索すればいろんなところで出てくる。
10倍遅くなるのは、自動処理が8でインタプリタが2、合計10
ただ有名なんで検索すればいろんなところで出てくる。
10倍遅くなるのは、自動処理が8でインタプリタが2、合計10
685デフォルトの名無しさん
2017/04/02(日) 14:37:05.43ID:n1w2M1cg 別に正確な情報どうこうじゃなくて、
おそいのがインタプリタのせいだと思ってるよりずっといいでしょって話
おそいのがインタプリタのせいだと思ってるよりずっといいでしょって話
686デフォルトの名無しさん
2017/04/02(日) 15:56:48.17ID:s5HPpPnI687デフォルトの名無しさん
2017/04/02(日) 16:44:24.11ID:W390vP7B ろくに知らなければこういうことをするかもな、という想像なんだが。わかりにくかったのならすまん。
なにしろ何をしたのかまったく解らないから適当に想像するしかないんだよ。
なにしろ何をしたのかまったく解らないから適当に想像するしかないんだよ。
688デフォルトの名無しさん
2017/04/15(土) 03:58:55.24ID:vTxJoJiF Cでも
伸び縮みを含めた動的なメモリ宣言と開放と、呼び出しの度そのチェックと、管理情報の保存.
動的な値の自動変換と、呼び出しの度そのチェックと、管理情報の保存.
たったこんだけでも超遅くなるか
つか動的な宣言って超遅いよね
伸び縮みを含めた動的なメモリ宣言と開放と、呼び出しの度そのチェックと、管理情報の保存.
動的な値の自動変換と、呼び出しの度そのチェックと、管理情報の保存.
たったこんだけでも超遅くなるか
つか動的な宣言って超遅いよね
689デフォルトの名無しさん
2017/04/15(土) 04:02:38.36ID:vTxJoJiF それはそうと俺も稀にPerlやるんだが、
use utf8;
use strict;
use warnings;
binmode STDIN, ':encoding(utf8)';
binmode STDOUT, ':encoding(utf8)';
binmode STDERR, ':encoding(utf8)';
これ毎回書くんだが、全部省略できないかの
すぐこれ書くの忘れて文字コード関係でおかしくなるし、書いたら書いたで無駄に目障りなんだが・・・
use utf8;
use strict;
use warnings;
binmode STDIN, ':encoding(utf8)';
binmode STDOUT, ':encoding(utf8)';
binmode STDERR, ':encoding(utf8)';
これ毎回書くんだが、全部省略できないかの
すぐこれ書くの忘れて文字コード関係でおかしくなるし、書いたら書いたで無駄に目障りなんだが・・・
690デフォルトの名無しさん
2017/04/15(土) 10:45:22.06ID:DbxhuG0l # Hoge.pm
package Hoge;
use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(utf8)';
binmode STDOUT, ':encoding(utf8)';
binmode STDERR, ':encoding(utf8)';
sub import{
strict->import;
warnings->import;
utf8->import;
}
1;
# script.pl
use Hoge; # ただし@INCからHoge.pmが見つかるようにする
package Hoge;
use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(utf8)';
binmode STDOUT, ':encoding(utf8)';
binmode STDERR, ':encoding(utf8)';
sub import{
strict->import;
warnings->import;
utf8->import;
}
1;
# script.pl
use Hoge; # ただし@INCからHoge.pmが見つかるようにする
691デフォルトの名無しさん
2017/04/15(土) 10:52:14.57ID:DbxhuG0l そういやutf8なら
binmode STDOUT, ':utf8';
で良かったか
binmode STDOUT, ':utf8';
で良かったか
692デフォルトの名無しさん
2017/04/15(土) 20:57:19.56ID:GBtgusH0 >>677
参照の -> を参照に対しては省略できるってだけだが。
参照の -> を参照に対しては省略できるってだけだが。
693デフォルトの名無しさん
2017/04/15(土) 21:19:29.96ID:4y1tBhnC それが凄いところ
オブジェクト指向だって、ほんの小手先でちゃんと実用になるものを実装しちゃってる
オブジェクト指向だって、ほんの小手先でちゃんと実用になるものを実装しちゃってる
694デフォルトの名無しさん
2017/04/15(土) 23:53:13.69ID:k4jkkg7x695デフォルトの名無しさん
2017/04/15(土) 23:58:43.13ID:4y1tBhnC 言語なんてそれでいいだろ
標準に拘っても何も得しない
標準に拘っても何も得しない
696デフォルトの名無しさん
2017/04/16(日) 00:42:48.16ID:cCOM2/u0697デフォルトの名無しさん
2017/04/16(日) 00:57:54.05ID:h3ZKvGOL どうせ定番の奴がデファクトスタンダードになるんだから同じことだ
698デフォルトの名無しさん
2017/04/16(日) 01:01:17.12ID:cCOM2/u0 その定番が生まれなかったんだろ
699デフォルトの名無しさん
2017/04/16(日) 06:42:15.56ID:h3ZKvGOL それは目的がニッチ過ぎたか利用者が少なすぎたからで、
どっちにしろ標準になんかならない
どっちにしろ標準になんかならない
700デフォルトの名無しさん
2017/04/20(木) 20:48:25.04ID:6ZaZCTR2 Perl6 ? そういえばそうゆうものもあったな。ググると、
1年半前に正式安定版がリリースされたのか。知らなかった。
誰も、その事を話題にすらしていないし。
http://tamae.2ch.net/test/read.cgi/php/1162721943/
「 Perl6/Parrotスレ - Part2 」
1年半前に正式安定版がリリースされたのか。知らなかった。
誰も、その事を話題にすらしていないし。
http://tamae.2ch.net/test/read.cgi/php/1162721943/
「 Perl6/Parrotスレ - Part2 」
701デフォルトの名無しさん
2017/04/20(木) 21:37:11.61ID:3zMwUShO Perl6は別の言語だからな
702デフォルトの名無しさん
2017/04/20(木) 22:48:25.36ID:QXbdV/cO pythonもバージョンが上がって別言語になった
703デフォルトの名無しさん
2017/04/20(木) 22:52:03.43ID:NBs+Bll8 >>702
なってないわ
なってないわ
704デフォルトの名無しさん
2017/04/20(木) 23:04:27.00ID:Viw0Nzyo >>689+690
PERL5OPTと組み合わせれば全て解消。
PERL5OPTと組み合わせれば全て解消。
705デフォルトの名無しさん
2017/04/23(日) 19:39:54.82ID:W+YLVZyj706デフォルトの名無しさん
2017/04/23(日) 19:56:30.69ID:W+YLVZyj >>689
use encoding は?
use encoding は?
707デフォルトの名無しさん
2017/04/30(日) 10:11:15.92ID:zwl8qhxW >>705
理論上完全に最適化できたとしても速度差は5倍以上あるよ
理論上完全に最適化できたとしても速度差は5倍以上あるよ
708デフォルトの名無しさん
2017/05/03(水) 00:40:52.14ID:M+hoQd/o $str = "みかん りんご ぶどう";
を・みかん ・りんご ・ぶどうというように文字の最初に・をつけるには
どう置換すればいいんですか?
を・みかん ・りんご ・ぶどうというように文字の最初に・をつけるには
どう置換すればいいんですか?
709デフォルトの名無しさん
2017/05/03(水) 00:56:20.79ID:weHSRqvf join '', map { '・' . $_ } split ' ', $str;
710デフォルトの名無しさん
2017/05/03(水) 01:07:15.97ID:Qv6lwwF1 $str =~ s/(\w+)/・$1/g;
711デフォルトの名無しさん
2017/05/03(水) 01:13:44.21ID:i0PT5y6P 試してないだろ
712デフォルトの名無しさん
2017/05/03(水) 02:22:37.42ID:0sDWrHda linux mint18
perl6のインストールについて
$ sudo apt install rakudo
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ rakudo が見つかりません
どうしたらインストールできます?
perl6のインストールについて
$ sudo apt install rakudo
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ rakudo が見つかりません
どうしたらインストールできます?
713デフォルトの名無しさん
2017/05/03(水) 02:40:51.60ID:0sDWrHda $ perl6 -v
This is perl6 version 2015.11 built on MoarVM version 2015.11
すいません、解決しました
This is perl6 version 2015.11 built on MoarVM version 2015.11
すいません、解決しました
714デフォルトの名無しさん
2017/05/11(木) 19:50:38.19ID:nIm7OIQv POD書いてる?
715デフォルトの名無しさん
2017/05/11(木) 23:25:04.61ID:nen5x9dT メモリリーク検出になに使ってる?
とりあえず昔からTest::LeakTrace使ってるんだけど
いまはもっと便利なものがあったりするのかな?
とりあえず昔からTest::LeakTrace使ってるんだけど
いまはもっと便利なものがあったりするのかな?
716デフォルトの名無しさん
2017/05/24(水) 13:05:14.66ID:9utV0RoM Perl/Qt は癖があるね、Perl/Qtとクラスを同時に使おうとするとなかなか大変。
717デフォルトの名無しさん
2017/05/28(日) 12:56:56.81ID:+Ey6Jlm8 テキストファイルを読み込むときに
// (例えばfile://...)
があると、そこから行末まで読み込めない現象が起きるんだけど
どうしたらちゃんと読み込める?
binmodeにしても解決しなかった
// (例えばfile://...)
があると、そこから行末まで読み込めない現象が起きるんだけど
どうしたらちゃんと読み込める?
binmodeにしても解決しなかった
718デフォルトの名無しさん
2017/05/28(日) 13:01:09.18ID:+Ey6Jlm8719デフォルトの名無しさん
2017/05/28(日) 14:02:42.07ID:0c9kwMSl そんな訳ない
720デフォルトの名無しさん
2017/05/28(日) 14:05:21.98ID:9RwfEHwH ファイルハンドルからダブルスラッシュが含まれる行を読み込もうとするとダブルスラッシュが行末と誤認されるという解釈でいいんですかね
721デフォルトの名無しさん
2017/05/28(日) 14:33:51.85ID:eFuC5yco 絶対になにかカンチガイしてるだろう。
単に出力のバッファリングで単に表示されてないだけとか。
もしくは自分で"//"以降を削除するような処理をしているとかだな。
正規表現の書き誤りがあやしい。
単に出力のバッファリングで単に表示されてないだけとか。
もしくは自分で"//"以降を削除するような処理をしているとかだな。
正規表現の書き誤りがあやしい。
722デフォルトの名無しさん
2017/05/28(日) 14:59:23.09ID:0c9kwMSl 実際に、>>717の方法で読ませればちゃんと読む筈
怪しい箇所を削っていって試せばいい
怪しい箇所を削っていって試せばいい
723デフォルトの名無しさん
2017/05/28(日) 15:01:31.81ID:/dM5Kslk >>717
再現コードを
再現コードを
724717
2017/05/28(日) 16:52:39.75ID:+Ey6Jlm8 カンチガイでした
別のところでCのコメント削除をしていて
そこで消えてました
テヘペロ
別のところでCのコメント削除をしていて
そこで消えてました
テヘペロ
725デフォルトの名無しさん
2017/05/28(日) 18:05:45.48ID:DFLy+ixu ま、そんなもんよ
いい経験したな
次に活かせよ
いい経験したな
次に活かせよ
726デフォルトの名無しさん
2017/05/28(日) 20:22:17.89ID:4xPNWoV3 C/C++のソースコードを読んで
コメント削除したソースコード
ifdefとかのプリプロセスしたソースコード
typedef, struct, unionとかを抽出した結果
を得たいんだけどどうするのがいいだろう
プリプロセスしたソースコードをcflowに渡すと
関数コールツリーを得られるから
それらを使ってCのソースコード理解に役立てたい
コメント削除したソースコード
ifdefとかのプリプロセスしたソースコード
typedef, struct, unionとかを抽出した結果
を得たいんだけどどうするのがいいだろう
プリプロセスしたソースコードをcflowに渡すと
関数コールツリーを得られるから
それらを使ってCのソースコード理解に役立てたい
727デフォルトの名無しさん
2017/05/28(日) 21:37:34.83ID:QPUrPhGM >>726
何が難しいのか、なんでそんなことをしたいのかよくわからん。
何が難しいのか、なんでそんなことをしたいのかよくわからん。
728デフォルトの名無しさん
2017/05/28(日) 22:39:53.18ID:H3cdg50W >>726
自前で作るって話からは外れるけど、Doxygenに突っ込むとかじゃダメなの?
自前で作るって話からは外れるけど、Doxygenに突っ込むとかじゃダメなの?
729デフォルトの名無しさん
2017/05/29(月) 06:06:36.99ID:iFMZQ+Zt >>727
Cのソースコード理解のため
難しいのは例えばif x>=10 && (defined(y) || z==1)とか
ifdef elif else endifとかの入れ子とか
を正しくパースしたりすること
structを抽出したあと
それらの参照関係も図示したい
Cのソースコード理解のため
難しいのは例えばif x>=10 && (defined(y) || z==1)とか
ifdef elif else endifとかの入れ子とか
を正しくパースしたりすること
structを抽出したあと
それらの参照関係も図示したい
730デフォルトの名無しさん
2017/05/29(月) 06:07:01.52ID:iFMZQ+Zt >>727
簡単なら作ってgitとかにあげてほしい
簡単なら作ってgitとかにあげてほしい
731デフォルトの名無しさん
2017/05/29(月) 06:09:33.49ID:iFMZQ+Zt732デフォルトの名無しさん
2017/05/29(月) 06:15:46.76ID:1pPkP4QE gcc -E じゃだめなのか。
cpp のソースコードを読んでみるのがいいと思うよ。
昔、LSI-C 86 のプリプロセッサのソースコード読んで勉強したなあ。
cpp のソースコードを読んでみるのがいいと思うよ。
昔、LSI-C 86 のプリプロセッサのソースコード読んで勉強したなあ。
733デフォルトの名無しさん
2017/05/29(月) 07:11:36.94ID:7MORbIbH >>726
cflowの中でプリプロセスするから事前にする必要はないと思うけど
cflowの中でプリプロセスするから事前にする必要はないと思うけど
734デフォルトの名無しさん
2017/05/29(月) 17:52:39.84ID:aFd0yPA1735デフォルトの名無しさん
2017/05/29(月) 18:14:45.54ID:aFd0yPA1 例えば
#define ERRLVL 5
#define WARLVL 3
とかなってるのをプリプロセスすると
数字に置き換わるので意味が判りにくくなる
だけど#ifdefとかはプリプロセスしないと
例えば32ビット版の関数や構造体と
64ビット版の関数や構造体が重複してしまう
#define ERRLVL 5
#define WARLVL 3
とかなってるのをプリプロセスすると
数字に置き換わるので意味が判りにくくなる
だけど#ifdefとかはプリプロセスしないと
例えば32ビット版の関数や構造体と
64ビット版の関数や構造体が重複してしまう
736デフォルトの名無しさん
2017/05/30(火) 04:54:25.56ID:Al54U2am CPAN に Text::CPP なんてのがあるよ。
そのままではご要望どおりじゃないと思うけど参考にはなるかも。
そのままではご要望どおりじゃないと思うけど参考にはなるかも。
737デフォルトの名無しさん
2017/05/30(火) 20:58:34.87ID:Al54U2am 言いたいことはよく解る。
とりあえず、プリプロセッサの通常の動作から変更したいのは
・C ソースの中のマクロ置換はしない
・#define ディレクティブは用済みになっていないのでそのまま出力する
といったところ?
もし Text::CPP の作者がそれを有意義だと思ってくれたら、
なんとかしてくれる可能性もなくはないかもしれないな。
連絡先は README に書いてあるよ。
とりあえず、プリプロセッサの通常の動作から変更したいのは
・C ソースの中のマクロ置換はしない
・#define ディレクティブは用済みになっていないのでそのまま出力する
といったところ?
もし Text::CPP の作者がそれを有意義だと思ってくれたら、
なんとかしてくれる可能性もなくはないかもしれないな。
連絡先は README に書いてあるよ。
738デフォルトの名無しさん
2017/05/30(火) 21:10:46.26ID:Al54U2am cpp をそのまま使うという方法もなくはないよ。
#define ディレクティブの前と C ソーステキストの前の行に
#line ディレクティブを入れる。
cpp の処理結果には #line ディレクティブがあるから
それを手がかりに元のファイルからコピーする。
この程度のことなら出来そうじゃない?
#define ディレクティブの前と C ソーステキストの前の行に
#line ディレクティブを入れる。
cpp の処理結果には #line ディレクティブがあるから
それを手がかりに元のファイルからコピーする。
この程度のことなら出来そうじゃない?
739726
2017/06/01(木) 00:33:15.15ID:mVcFCi6e 作ってみたけどバグがあるだろう
https://github.com/bran1219/mycpp
https://github.com/bran1219/mycpp
740デフォルトの名無しさん
2017/06/04(日) 17:04:48.43ID:JLuePf+9 あまり野暮なことはいいたくないけど、ファイルハンドルから行を読むんじゃなくて
トークンを読んだ方がシンプルに書けるんじゃないかな。そうすれば
while(( my $tokentype,my $str) = gettoken( $fh)){
if ( $tokentype == 'comment'){ case_comment;}
elsif ( $tokentype == 'string'){ case_string;}
みたいなやり方が出来る。気を悪くしないでほしい。本当にそう思ったんだ。
トークンを読んだ方がシンプルに書けるんじゃないかな。そうすれば
while(( my $tokentype,my $str) = gettoken( $fh)){
if ( $tokentype == 'comment'){ case_comment;}
elsif ( $tokentype == 'string'){ case_string;}
みたいなやり方が出来る。気を悪くしないでほしい。本当にそう思ったんだ。
741デフォルトの名無しさん
2017/06/05(月) 23:40:47.35ID:AlRALdx8 gettoken()を作ってread()で一文字ずつ読み込んでトークンを返すのは良さそうだけど
トークンタイプはその時の状態が判らないと判別できないと思う
//は普通の状態で現れたらコメント開始だけど
"の中だと文字列
/*の中だとコメント文字列
トークンタイプはその時の状態が判らないと判別できないと思う
//は普通の状態で現れたらコメント開始だけど
"の中だと文字列
/*の中だとコメント文字列
742デフォルトの名無しさん
2017/06/09(金) 13:39:22.36ID:jmjGKHXw tcpのIO::Socket使ってサーバーに対してconnectした後、closeせずに親プロセスは接続を維持したまま、
forkした子プロセスでサーバーから受信した大量の文字列をファイルに書くとかするには子プロセスが継承したソケットをどう破棄したらいいの?
現状では当然の事ながら親プロセスの受信待ちが完全に止まってしまって困ってます
forkした子プロセスでサーバーから受信した大量の文字列をファイルに書くとかするには子プロセスが継承したソケットをどう破棄したらいいの?
現状では当然の事ながら親プロセスの受信待ちが完全に止まってしまって困ってます
743デフォルトの名無しさん
2017/06/09(金) 14:33:09.33ID:1EhRpyQk なぜ子プロセスでコネクトしないの?
744デフォルトの名無しさん
2017/06/09(金) 14:41:19.37ID:jmjGKHXw >>743
客先のサーバーの仕様とやらで複数の接続(connect)に対応していない模様(爆)
客先のサーバーの仕様とやらで複数の接続(connect)に対応していない模様(爆)
745デフォルトの名無しさん
2017/06/09(金) 19:57:08.76ID:ipZEdn/U >>744
親プロセスの接続を切れば複数接続じゃなくなると思う
親プロセスの接続を切れば複数接続じゃなくなると思う
746742
2017/06/10(土) 02:10:59.82ID:6TQL4PKJ 解決しました
fork()してから普通に子プロセス側で$socket->close();すれば良かったのですね。
ありがとうございました
fork()してから普通に子プロセス側で$socket->close();すれば良かったのですね。
ありがとうございました
747デフォルトの名無しさん
2017/06/13(火) 00:27:54.86ID:5t+GNw1N >>667,675-676
なぜこうなるの?
なぜこうなるの?
748デフォルトの名無しさん
2017/06/13(火) 02:06:41.19ID:Z49xlslC ヒント:
print"Hello world!\n";
print "Hello world!\n";
print("Hello world!\n");
print ( "Hello world!\n" );
print"Hello world!\n";
print "Hello world!\n";
print("Hello world!\n");
print ( "Hello world!\n" );
749デフォルトの名無しさん
2017/06/13(火) 06:02:24.69ID:TrwiR2C4 1. print 文は実行が成功するとTrue(1)を返す
2. すべての引数を括弧で括るのでなければ、print というキーワードの 次に開き括弧を書いてはいけません
ってだけの話。
print print print (1+2)+(4+5)+6+7;
は、
print (1+2) を実行したあとに
print 1+(4+5)+6+7実行して、
その戻り値1をプリントしてるだけ。
2. すべての引数を括弧で括るのでなければ、print というキーワードの 次に開き括弧を書いてはいけません
ってだけの話。
print print print (1+2)+(4+5)+6+7;
は、
print (1+2) を実行したあとに
print 1+(4+5)+6+7実行して、
その戻り値1をプリントしてるだけ。
750デフォルトの名無しさん
2017/06/14(水) 00:26:46.99ID:J0vYxrWi751デフォルトの名無しさん
2017/06/14(水) 07:10:52.51ID:nXcqV3BV >>741
そんな面倒なことを考えなくてもいいように gettoken を書くんだよ。
普通は C の文字列定数の中でわざわざ // を認識しない。どんなやりかたを考えてるの?
興味があるなら flex とかやったみたらどうかな。
そんな面倒なことを考えなくてもいいように gettoken を書くんだよ。
普通は C の文字列定数の中でわざわざ // を認識しない。どんなやりかたを考えてるの?
興味があるなら flex とかやったみたらどうかな。
752デフォルトの名無しさん
2017/06/14(水) 08:00:33.67ID:XYhnRuER >>751
文字列定数の中か外かはどうやって判別するの?
文字列定数の中か外かはどうやって判別するの?
753デフォルトの名無しさん
2017/06/14(水) 23:53:09.01ID:nXcqV3BV ずいぶん前のことなのに反応があって嬉しいよ。
とりあえず、行継続もプリプロセッサディレクティブの処理もエラーチェックも無し、
コメントと文字列だけでいいなら flex ならこう書ける。
https://ideone.com/NbLVjc
本当は '"' みたいな文字定数も想定しなきゃまずいけどね。
もちろん、flex を使わなくてもできる。
yylex を手書きするなら、まず 1 バイト読んで
switch ( c){
case '"': read_string(); break;
case '/': read_comment(); break;
みたいにするのが伝統的な方法だったりする。
この方法では switch から出る前にトークンを完結させる。
コメントや文字列定数の中と、それ以外の部分で文法が違うから
別の処理になっていると理解してほしい。
こうしなければならないわけではなく、テーブル駆動とかステートマシンが好みならそうすればいい。
重要なのは、yylex を 1 回呼べばトークンが 1 個完結しているということ。
もちろん Perl でも同じやり方はできる。できるけど…… Perl ですよ?
助けてくれるモジュールがあるんだから使ってみない? Parse::Lex とか。
flex をかじっておけば理解しやすいと思うよ。
とりあえず、行継続もプリプロセッサディレクティブの処理もエラーチェックも無し、
コメントと文字列だけでいいなら flex ならこう書ける。
https://ideone.com/NbLVjc
本当は '"' みたいな文字定数も想定しなきゃまずいけどね。
もちろん、flex を使わなくてもできる。
yylex を手書きするなら、まず 1 バイト読んで
switch ( c){
case '"': read_string(); break;
case '/': read_comment(); break;
みたいにするのが伝統的な方法だったりする。
この方法では switch から出る前にトークンを完結させる。
コメントや文字列定数の中と、それ以外の部分で文法が違うから
別の処理になっていると理解してほしい。
こうしなければならないわけではなく、テーブル駆動とかステートマシンが好みならそうすればいい。
重要なのは、yylex を 1 回呼べばトークンが 1 個完結しているということ。
もちろん Perl でも同じやり方はできる。できるけど…… Perl ですよ?
助けてくれるモジュールがあるんだから使ってみない? Parse::Lex とか。
flex をかじっておけば理解しやすいと思うよ。
754デフォルトの名無しさん
2017/06/16(金) 07:59:43.13ID:ULLUKZU9 >>753
それはcase文の文字で状態遷移してるのと等価
"があったら文字列の中の状態
/があったらコメント開始の1文字目の状態
モジュールを使ったのがネットにあったから使ってみたけど
期待と違ったから自作した
それはcase文の文字で状態遷移してるのと等価
"があったら文字列の中の状態
/があったらコメント開始の1文字目の状態
モジュールを使ったのがネットにあったから使ってみたけど
期待と違ったから自作した
755デフォルトの名無しさん
2017/06/16(金) 08:02:46.40ID:ULLUKZU9756デフォルトの名無しさん
2017/06/23(金) 23:36:24.65ID:jQG6z3fn ネストしたブロックを正規表現でとりたくてperlreにある再帰パターンというのつかおうとしているですが(?>[^()]+)の部分うまくかきかえられません。
loop〜end loopの形にしたいのですが、 (?!)の使い方がわるいのかヒットしないorz
loop〜end loopの形にしたいのですが、 (?!)の使い方がわるいのかヒットしないorz
757デフォルトの名無しさん
2017/06/26(月) 23:50:27.94ID:zIACp4Pg (?>¥b(?!end loop|loop)で行けました。
ヒットしなかったのは再帰始まりのloopと干渉していたらしく、始まりをちゃんと書いたら動きました。
ヒットしなかったのは再帰始まりのloopと干渉していたらしく、始まりをちゃんと書いたら動きました。
758デフォルトの名無しさん
2017/06/28(水) 23:50:10.85ID:eZnf2YJC FW使わずにpsgi/slackを使おうとしてて、モジュールの名前と言うか場所に悩んでます(´・ω・`)
pathがperl -I /hoge/lib/として、
/hoge/lib/Controller.pmみたいのを置きたいけど名前被りが嫌なので避けるための手法として
/hoge/lib/myController.pmとか
/hoge/lib/MyApp/Controller.pmとかあると思うんですが
perlでこういう場合の命名規則?というかお約束みたいな名前ってあるんでしょうか。
/hoge/lib/作ってるサイトのドメイン/Controller.pm
みたいにしようと思ったけど、
use 作ってるサイトのドメイン::Controller.pm
こんなの使いまわし効かなさすぎて嫌すぎる
pathがperl -I /hoge/lib/として、
/hoge/lib/Controller.pmみたいのを置きたいけど名前被りが嫌なので避けるための手法として
/hoge/lib/myController.pmとか
/hoge/lib/MyApp/Controller.pmとかあると思うんですが
perlでこういう場合の命名規則?というかお約束みたいな名前ってあるんでしょうか。
/hoge/lib/作ってるサイトのドメイン/Controller.pm
みたいにしようと思ったけど、
use 作ってるサイトのドメイン::Controller.pm
こんなの使いまわし効かなさすぎて嫌すぎる
759デフォルトの名無しさん
2017/06/29(木) 06:52:20.07ID:jqMU9B7T お約束はない。
>こんなの使いまわし効かなさすぎて嫌すぎる
ん?
スクリプト内で動的に変更したいとか、そこらへん?
じゃなきゃ普通に use XXXX::Controller で作っちゃうけど?
あとは、物理的にパス切らない。くらいだよね?
$ cat Hoge.pm
package Hoge::Foo;
sub hoge{ "hoge" }
1 ;
$ perl -MHoge -le 'print Hoge::Foo::hoge'
myController.pm 一個作って、中で切り分けちゃえば?
>こんなの使いまわし効かなさすぎて嫌すぎる
ん?
スクリプト内で動的に変更したいとか、そこらへん?
じゃなきゃ普通に use XXXX::Controller で作っちゃうけど?
あとは、物理的にパス切らない。くらいだよね?
$ cat Hoge.pm
package Hoge::Foo;
sub hoge{ "hoge" }
1 ;
$ perl -MHoge -le 'print Hoge::Foo::hoge'
myController.pm 一個作って、中で切り分けちゃえば?
760デフォルトの名無しさん
2017/06/29(木) 15:18:22.72ID:/7f1HAmp どもです。
URLで言うexample.comみたいな不可侵領域?的なのが無いのかなぁと思った感じでした。
URLで言うexample.comみたいな不可侵領域?的なのが無いのかなぁと思った感じでした。
761デフォルトの名無しさん
2017/06/29(木) 17:00:57.00ID:sULhhpBu762デフォルトの名無しさん
2017/06/29(木) 17:25:38.71ID:/7f1HAmp >>761
> もしプライベートな内部やプロジェクト固有の用途のために開発中のモジュールが 決して公開されることがないなら、
> 将来の公開モジュールと名前が 衝突しないことを確実にしてください。
> これは、予約済みの Local::* カテゴリを使うか、 Foo_Corp::* のように 名前にした戦を含めることで行えます。
これだあああ
戦ってのが謎ですが、Localディレクトリに入れることにします。
ありがとうございます!
> もしプライベートな内部やプロジェクト固有の用途のために開発中のモジュールが 決して公開されることがないなら、
> 将来の公開モジュールと名前が 衝突しないことを確実にしてください。
> これは、予約済みの Local::* カテゴリを使うか、 Foo_Corp::* のように 名前にした戦を含めることで行えます。
これだあああ
戦ってのが謎ですが、Localディレクトリに入れることにします。
ありがとうございます!
763デフォルトの名無しさん
2017/06/29(木) 17:51:43.29ID:MlIjnXqh たぶん「した戦」→「下線」アンダーラインのことかと
> Foo_Corp::* のように 名前に下線を含めることで
> Foo_Corp::* のように 名前に下線を含めることで
764デフォルトの名無しさん
2017/06/29(木) 18:03:16.93ID:/7f1HAmp なるほど…
ちゃんと訳した上で漢字を変な読み方した状態でのタイポとはw
ちゃんと訳した上で漢字を変な読み方した状態でのタイポとはw
765デフォルトの名無しさん
2017/06/30(金) 20:59:30.86ID:O3ckt/Q4 今とあるスクリプトを見たら
1 while(s/[\012\015]$//);
こんなん書いてあったんだけど、
たぶん改行とおぼしきものは全部消すってことだと思うんだけど、
いらんもんまで消しすぎたりしてない?
1 while(s/[\012\015]$//);
こんなん書いてあったんだけど、
たぶん改行とおぼしきものは全部消すってことだと思うんだけど、
いらんもんまで消しすぎたりしてない?
766デフォルトの名無しさん
2017/06/30(金) 21:30:32.10ID:nK8Rv+fa スカラー末の改行(の連続)を外す。
スカラー内の改行は外さない。
作者の意図通りに、余分なものは消さないと思うよ。
普通に、s/[¥012¥015]$//g ; すりゃいいと思うけど、、、
スカラー内の改行は外さない。
作者の意図通りに、余分なものは消さないと思うよ。
普通に、s/[¥012¥015]$//g ; すりゃいいと思うけど、、、
767デフォルトの名無しさん
2017/06/30(金) 23:49:28.02ID:5o89YkXB スカラー?
768デフォルトの名無しさん
2017/07/01(土) 06:06:23.31ID:756r6lLe whileとgは同じじゃない
769デフォルトの名無しさん
2017/07/01(土) 06:27:43.88ID:756r6lLe 文字の末尾が012か015だったら消すんじゃない?
文字コードもわからないけど
文字コードもわからないけど
770デフォルトの名無しさん
2017/07/01(土) 06:43:42.49ID:LXXRZ/Ka 動作は >>769 の通りだと思うけど
1 while が意味不明だな
1 while が意味不明だな
771デフォルトの名無しさん
2017/07/01(土) 06:50:18.42ID:756r6lLe while 1 はマニュアルにも記載されてる基本的な手法
条件だけで実行が完了する
条件だけで実行が完了する
772デフォルトの名無しさん
2017/07/01(土) 09:11:09.64ID:vTsOeFgm もっとくやしく
773デフォルトの名無しさん
2017/07/01(土) 09:24:13.31ID:B+Q6GXxH 1は無視していいよ
774デフォルトの名無しさん
2017/07/01(土) 10:05:39.83ID:756r6lLe 勉強し始めて1日で覚えるようなことを全然分からんようなやつが回答者ぶってるのかよ
775デフォルトの名無しさん
2017/07/01(土) 10:10:49.16ID:756r6lLe とりあえず一通り調べたけど、末尾に改行を使う文字コードはなかったから、
1 while(s/[\012\015]$//);
これは本当に改行を削除したいならあらゆる方法の中で最善だと思われる
本当にかたっぱしから消したいのなら、だけど…
1 while(s/[\012\015]$//);
これは本当に改行を削除したいならあらゆる方法の中で最善だと思われる
本当にかたっぱしから消したいのなら、だけど…
776デフォルトの名無しさん
2017/07/01(土) 10:11:51.33ID:756r6lLe と言うより $ が自動でその判定してるから、関係ないものは消えないはずなんだよね
777デフォルトの名無しさん
2017/07/01(土) 11:23:51.39ID:EnayukTL 取り敢えず、ベンチマーク。
$ cat bench.pl
#!/usr/bin/perl
use Benchmark qw( cmpthese timethese ) ;
my $f = +( "42¥r¥n" x 1000 ) . +( "¥r¥n" x 10000 ) ;
sub _gm { my $f2 = $f ; $f2 =~ s/[¥012¥015]$//gm ; }
sub _while { my $f2 = $f ; 1 while $f2 =~ s/[¥012¥015]$// ; }
cmpthese(timethese (undef, {
while => '_while',
gm => '_gm',
})) ;
$ perl bench.pl
Benchmark: running gm, while for at least 3 CPU seconds...
gm: 3 wallclock secs ( 3.36 usr + 0.01 sys = 3.37 CPU) @ 356.68/s (n=1202)
while: 3 wallclock secs ( 3.06 usr + 0.00 sys = 3.06 CPU) @ 152.94/s (n=468)
Rate while gm
while 153/s -- -57%
gm 357/s 133% --
$ cat bench.pl
#!/usr/bin/perl
use Benchmark qw( cmpthese timethese ) ;
my $f = +( "42¥r¥n" x 1000 ) . +( "¥r¥n" x 10000 ) ;
sub _gm { my $f2 = $f ; $f2 =~ s/[¥012¥015]$//gm ; }
sub _while { my $f2 = $f ; 1 while $f2 =~ s/[¥012¥015]$// ; }
cmpthese(timethese (undef, {
while => '_while',
gm => '_gm',
})) ;
$ perl bench.pl
Benchmark: running gm, while for at least 3 CPU seconds...
gm: 3 wallclock secs ( 3.36 usr + 0.01 sys = 3.37 CPU) @ 356.68/s (n=1202)
while: 3 wallclock secs ( 3.06 usr + 0.00 sys = 3.06 CPU) @ 152.94/s (n=468)
Rate while gm
while 153/s -- -57%
gm 357/s 133% --
778デフォルトの名無しさん
2017/07/01(土) 11:26:08.99ID:EnayukTL あ、単純に変数最後の CRLF 削りたいだけなら、比べ物にならん程
chomp の方が早い。
local $/ = “¥r¥n” ;
chomp $_ ;
chomp の方が早い。
local $/ = “¥r¥n” ;
chomp $_ ;
779デフォルトの名無しさん
2017/07/01(土) 12:14:31.52ID:B+Q6GXxH ActivePerlとCygwinの両方で動くようにしようと思うと、chomp使えないんだよな
780デフォルトの名無しさん
2017/07/01(土) 12:31:21.77ID:EnayukTL ん?
どっちが悪いか知らんが、
local $/ = “¥012¥015” ;
も効かんの?
どっちが悪いか知らんが、
local $/ = “¥012¥015” ;
も効かんの?
781デフォルトの名無しさん
2017/07/01(土) 12:36:32.24ID:756r6lLe \rだの\nだの使ってることに神経を疑っちまうぜ
と言うかutf8にさえ文字とみなされない文字を使ってる時点で…
ところで以下の3つは全部挙動が違いので並列にベンチとっても無意味
chomp;
s/[\012\015]$//gm;
1 while(s/[\012\015]$//);
特に真ん中のは色々とひどいことになると予想した
と言うかutf8にさえ文字とみなされない文字を使ってる時点で…
ところで以下の3つは全部挙動が違いので並列にベンチとっても無意味
chomp;
s/[\012\015]$//gm;
1 while(s/[\012\015]$//);
特に真ん中のは色々とひどいことになると予想した
782デフォルトの名無しさん
2017/07/01(土) 12:40:25.72ID:756r6lLe >>780
I/Oと言うのはその名の通りIとOがあってだな
I/Oと言うのはその名の通りIとOがあってだな
783デフォルトの名無しさん
2017/07/01(土) 12:48:39.37ID:EnayukTL >>781
ご指摘の通り俺が間違ってたわ。
chomp が違うのは同意
#!/usr/bin/perl
use Benchmark qw( cmpthese timethese ) ;
my $f = +( "42¥012¥015" x 1000 ) . +( “¥012¥015" x 10000 ) ;
sub _gms { my $f2 = $f ; $f2 =~ s/[¥012¥015]$//gms ; }
sub _while { my $f2 = $f ; 1 while $f2 =~ s/[¥012¥015]$// ; }
cmpthese(timethese (undef, {
while => '_while',
gms => '_gms',
})) ;
Benchmark: running gms, while for at least 3 CPU seconds...
gms: 4 wallclock secs ( 3.24 usr + 0.03 sys = 3.27 CPU) @ 391.13/s (n=1279)
while: 3 wallclock secs ( 3.01 usr + 0.03 sys = 3.04 CPU) @ 155.26/s (n=472)
Rate while gms
while 155/s -- -60%
gms 391/s 152% --
ご指摘の通り俺が間違ってたわ。
chomp が違うのは同意
#!/usr/bin/perl
use Benchmark qw( cmpthese timethese ) ;
my $f = +( "42¥012¥015" x 1000 ) . +( “¥012¥015" x 10000 ) ;
sub _gms { my $f2 = $f ; $f2 =~ s/[¥012¥015]$//gms ; }
sub _while { my $f2 = $f ; 1 while $f2 =~ s/[¥012¥015]$// ; }
cmpthese(timethese (undef, {
while => '_while',
gms => '_gms',
})) ;
Benchmark: running gms, while for at least 3 CPU seconds...
gms: 4 wallclock secs ( 3.24 usr + 0.03 sys = 3.27 CPU) @ 391.13/s (n=1279)
while: 3 wallclock secs ( 3.01 usr + 0.03 sys = 3.04 CPU) @ 155.26/s (n=472)
Rate while gms
while 155/s -- -60%
gms 391/s 152% --
784デフォルトの名無しさん
2017/07/01(土) 12:51:34.83ID:EnayukTL >>783 は上手く動いてねーw
すまん。全面的の俺のレスは脳内から消してくれ。
すまん。全面的の俺のレスは脳内から消してくれ。
785デフォルトの名無しさん
2017/07/01(土) 13:05:38.92ID:EnayukTL786デフォルトの名無しさん
2017/07/01(土) 15:21:02.94ID:iaxNT7Vw しかしなんで8進数?
これが普通なの?
これが普通なの?
787デフォルトの名無しさん
2017/07/01(土) 20:55:02.68ID:LXXRZ/Ka うーん いくら考えても 1 while() と書いてる意味がわからん
gオプションついてないから while の意味ないし
結果知りたいなら s/// の値を直で調べりゃ済む話だし
何故なんだ 誰か教えてください
gオプションついてないから while の意味ないし
結果知りたいなら s/// の値を直で調べりゃ済む話だし
何故なんだ 誰か教えてください
788デフォルトの名無しさん
2017/07/02(日) 02:22:16.04ID:ucaUnn+J 量指定子の存在しない世界線なのか。
#!/usr/bin/perl -w
use strict;
sub hd { print '[', join(' ', map uc unpack('H2', $_), split //, $_[0]), "]\n" }
my($lf, $cr, $n) = ("\012", "\015", "\n");
my $str = "$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$cr$n";
$_ = $str; 1 while s/[\012\015]$//; hd($_);
($_ = $str) =~ s/[\012\015]$//g; hd($_);
($_ = $str) =~ s/[\012\015]+$//; hd($_);
__END__
なお改行が \015 でも \012 でもそれらの組み合わせでもない環境があるので、
$ と \Z と \z の意味するところは元のコードが使われていた環境に依存する。
http://perldoc.jp/docs/perl/perlport.pod#Newlines
#!/usr/bin/perl -w
use strict;
sub hd { print '[', join(' ', map uc unpack('H2', $_), split //, $_[0]), "]\n" }
my($lf, $cr, $n) = ("\012", "\015", "\n");
my $str = "$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$cr$n";
$_ = $str; 1 while s/[\012\015]$//; hd($_);
($_ = $str) =~ s/[\012\015]$//g; hd($_);
($_ = $str) =~ s/[\012\015]+$//; hd($_);
__END__
なお改行が \015 でも \012 でもそれらの組み合わせでもない環境があるので、
$ と \Z と \z の意味するところは元のコードが使われていた環境に依存する。
http://perldoc.jp/docs/perl/perlport.pod#Newlines
789デフォルトの名無しさん
2017/07/02(日) 08:10:30.13ID:cmIXSukt ありがとう すごくよくわかった
1 whileの挙動をなにか勘違いしていたみたい
そしてベンチマーク取ってみたら
1 while s/[\012\015]$//; よりも while(s/[\012\015]$//){} の方が微妙に速かった
(すごく微妙なんだが 毎回1を評価しないでいい分の差??)
そして s/[\012\015]+$//; は1桁近く遅かった そうだったんだ…
1 whileの挙動をなにか勘違いしていたみたい
そしてベンチマーク取ってみたら
1 while s/[\012\015]$//; よりも while(s/[\012\015]$//){} の方が微妙に速かった
(すごく微妙なんだが 毎回1を評価しないでいい分の差??)
そして s/[\012\015]+$//; は1桁近く遅かった そうだったんだ…
790デフォルトの名無しさん
2017/07/02(日) 12:35:43.14ID:9IiniyIy オレ速度はあまり気にしないから、いつも素直に s/(?:¥r?¥n)+$//; の感じだな。
¥b入れた方がいいのかもしれないけれど入れたことはない。
$とって、gつければ、改行全部きえるはずだよ。
(行単位に分離されてそうだけど。。。)
¥b入れた方がいいのかもしれないけれど入れたことはない。
$とって、gつければ、改行全部きえるはずだよ。
(行単位に分離されてそうだけど。。。)
791デフォルトの名無しさん
2017/07/02(日) 14:53:25.87ID:ucaUnn+J >>789
一体どんな計り方をしたんだ。
http://perldoc.jp/docs/perl/perlperf.pod
http://perldoc.jp/docs/perl/perlcompile.pod#The32Decompiling32Back32End
#!/usr/bin/perl -w
use strict;
use Benchmark qw(cmpthese);
my($lf, $cr, $n) = ("\012", "\015", "\n");
for my $str ("$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$cr$n", "abc$n", 'abc') {
cmpthese(-5, {
ws => sub { $_ = $str; 1 while s/[\012\015]$//; 1 },
wb => sub { $_ = $str; while (s/[\012\015]$//) {} 1 },
qu => sub { $_ = $str; s/[\012\015]+$//; 1 },
});
print "\n";
}
__END__
これぐらいシンプルな正規表現なら
エンジン内でのバックトラック >> 文自体の反復 >= ループ構造
文字列内に [\012\015] にマッチする文字があればあるほど qu の方が速くなる。
一体どんな計り方をしたんだ。
http://perldoc.jp/docs/perl/perlperf.pod
http://perldoc.jp/docs/perl/perlcompile.pod#The32Decompiling32Back32End
#!/usr/bin/perl -w
use strict;
use Benchmark qw(cmpthese);
my($lf, $cr, $n) = ("\012", "\015", "\n");
for my $str ("$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$cr$n", "abc$n", 'abc') {
cmpthese(-5, {
ws => sub { $_ = $str; 1 while s/[\012\015]$//; 1 },
wb => sub { $_ = $str; while (s/[\012\015]$//) {} 1 },
qu => sub { $_ = $str; s/[\012\015]+$//; 1 },
});
print "\n";
}
__END__
これぐらいシンプルな正規表現なら
エンジン内でのバックトラック >> 文自体の反復 >= ループ構造
文字列内に [\012\015] にマッチする文字があればあるほど qu の方が速くなる。
792デフォルトの名無しさん
2017/07/02(日) 17:06:13.22ID:cmIXSukt こんな計り方↓
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark qw/:all/;
my ($lf, $cr, $n) = ("\012", "\015", "\n");
my $str = "$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$cr$n" x 100;
cmpthese -5, {
'1while' => sub {$_ = $str; 1 while s/[\012\015]$//;},
'1while_g' => sub {$_ = $str; 1 while s/[\012\015]$//g;},
quantifier => sub {$_ = $str; s/[\012\015]+$//;},
while_g => sub {$_ = $str; while (s/[\012\015]$//g){};},
while => sub {$_ = $str; while (s/[\012\015]$//){};},
};
__END__
同じwhileでもgオプションつけると微妙に速くなる
面白い
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark qw/:all/;
my ($lf, $cr, $n) = ("\012", "\015", "\n");
my $str = "$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$cr$n" x 100;
cmpthese -5, {
'1while' => sub {$_ = $str; 1 while s/[\012\015]$//;},
'1while_g' => sub {$_ = $str; 1 while s/[\012\015]$//g;},
quantifier => sub {$_ = $str; s/[\012\015]+$//;},
while_g => sub {$_ = $str; while (s/[\012\015]$//g){};},
while => sub {$_ = $str; while (s/[\012\015]$//){};},
};
__END__
同じwhileでもgオプションつけると微妙に速くなる
面白い
793デフォルトの名無しさん
2017/07/03(月) 04:18:38.68ID:7bJtUMTI >>792
自分の感覚と真逆の結果なんで -Mre=debug して調べたら、 [\012\015]$ だと
固定長だからエンジンが動作を最適化して最初から末尾しかみないんだな。
だから文字列自体が長くなると逆転が起こると。勉強になったよ。
#!/usr/bin/perl -w
use strict;
use Benchmark qw(cmpthese);
my $n = "\015\012";
my $sa = $n x 500; # 全文字にマッチ
my $sf = ($n x 250) . ('a' x 500); # + の場合前半に長くマッチした上で失敗する
my $sl = ('a' x 500) . ($n x 250); # 後半に長くマッチ
my $sn = 'a' x 1000; # マッチしない
my $su = ('a' x 998) . $n; # 末尾のみ
cmpthese(-5, {
wa => sub { $_ = $sa; 1 while s/[\012\015]$//; 1 },
wf => sub { $_ = $sf; 1 while s/[\012\015]$//; 1 },
wl => sub { $_ = $sl; 1 while s/[\012\015]$//; 1 },
wn => sub { $_ = $sn; 1 while s/[\012\015]$//; 1 },
wu => sub { $_ = $su; 1 while s/[\012\015]$//; 1 },
qa => sub { $_ = $sa; s/[\012\015]+$//; 1 },
qf => sub { $_ = $sf; s/[\012\015]+$//; 1 },
ql => sub { $_ = $sl; s/[\012\015]+$//; 1 },
qn => sub { $_ = $sn; s/[\012\015]+$//; 1 },
qu => sub { $_ = $su; s/[\012\015]+$//; 1 },
});
__END__
自分の感覚と真逆の結果なんで -Mre=debug して調べたら、 [\012\015]$ だと
固定長だからエンジンが動作を最適化して最初から末尾しかみないんだな。
だから文字列自体が長くなると逆転が起こると。勉強になったよ。
#!/usr/bin/perl -w
use strict;
use Benchmark qw(cmpthese);
my $n = "\015\012";
my $sa = $n x 500; # 全文字にマッチ
my $sf = ($n x 250) . ('a' x 500); # + の場合前半に長くマッチした上で失敗する
my $sl = ('a' x 500) . ($n x 250); # 後半に長くマッチ
my $sn = 'a' x 1000; # マッチしない
my $su = ('a' x 998) . $n; # 末尾のみ
cmpthese(-5, {
wa => sub { $_ = $sa; 1 while s/[\012\015]$//; 1 },
wf => sub { $_ = $sf; 1 while s/[\012\015]$//; 1 },
wl => sub { $_ = $sl; 1 while s/[\012\015]$//; 1 },
wn => sub { $_ = $sn; 1 while s/[\012\015]$//; 1 },
wu => sub { $_ = $su; 1 while s/[\012\015]$//; 1 },
qa => sub { $_ = $sa; s/[\012\015]+$//; 1 },
qf => sub { $_ = $sf; s/[\012\015]+$//; 1 },
ql => sub { $_ = $sl; s/[\012\015]+$//; 1 },
qn => sub { $_ = $sn; s/[\012\015]+$//; 1 },
qu => sub { $_ = $su; s/[\012\015]+$//; 1 },
});
__END__
794デフォルトの名無しさん
2017/07/03(月) 21:35:51.52ID:88Z7s+4Q795デフォルトの名無しさん
2017/08/15(火) 19:10:26.36ID:mGHj5vlw Perlに向いてるIDE教えて
デバッグ機能とかはいらない
補完と文法チェックとオートインデントが欲しい
デバッグ機能とかはいらない
補完と文法チェックとオートインデントが欲しい
796デフォルトの名無しさん
2017/08/16(水) 00:53:07.53ID:83B6OrrB 一番要るのはCPANとの連携機能だろ
797デフォルトの名無しさん
2017/08/17(木) 08:11:08.69ID:3rgoYIbT CPANとの連携機能はどっちでもいい
みんなメモ帳レベルのテキストエディタで書いてるの?
みんなメモ帳レベルのテキストエディタで書いてるの?
798デフォルトの名無しさん
2017/08/17(木) 08:48:00.96ID:ewlyrxLm IDEといいつつエディタでいいのか?
799デフォルトの名無しさん
2017/08/17(木) 21:40:11.78ID:DvPmzIRV vscode
800デフォルトの名無しさん
2017/08/17(木) 22:05:58.41ID:3rgoYIbT どこまでがエディタでどこまでがIDEなのか分からないが、それなりの機能は欲しい
自作関数とかも補完して欲しいしなあ
サンクス
vscode調べてみる
自作関数とかも補完して欲しいしなあ
サンクス
vscode調べてみる
801デフォルトの名無しさん
2017/08/26(土) 14:13:33.64ID:zbaxfQ1B802デフォルトの名無しさん
2017/08/27(日) 20:38:24.57ID:SUXQdIaA Perl6?
803デフォルトの名無しさん
2017/08/27(日) 21:17:36.95ID:l5ljwsJk 6は別物らしいね
804デフォルトの名無しさん
2017/08/27(日) 22:40:07.20ID:eg2XZFIG pythonもVBもバージョン上がると別物になる
そして大抵古い方が使いやすい
そして大抵古い方が使いやすい
805デフォルトの名無しさん
2017/08/27(日) 22:55:26.24ID:l5ljwsJk pythonはそろそろLinuxのデフォルトが3になりそうだけど
Perlはそんな気配全く無いよねw
Perlはそんな気配全く無いよねw
806デフォルトの名無しさん
2017/08/27(日) 23:11:43.20ID:QvkIPToQ システム付属のスクリプト言語っていう立ち位置がかつてのPerlからPythonに変わったからなあ
807デフォルトの名無しさん
2017/08/27(日) 23:14:14.93ID:eg2XZFIG 過去の資産が多いほどおいそれとは変えられない
808デフォルトの名無しさん
2017/08/29(火) 00:32:32.45ID:MFSwZwGT Perl は5.005まで。5.6からは別物。
809デフォルトの名無しさん
2017/08/29(火) 18:35:08.35ID:rhRVTFDq <?=>
810デフォルトの名無しさん
2017/08/29(火) 18:35:53.37ID:rhRVTFDq >>801
なにそれどうやって書くの?
なにそれどうやって書くの?
811デフォルトの名無しさん
2017/08/30(水) 09:00:08.40ID:Lglrs9g0812デフォルトの名無しさん
2017/08/30(水) 19:42:59.46ID:bbdqdnnx 環境によってはどうやってもアトミックにならんのでは
813デフォルトの名無しさん
2017/08/31(木) 15:10:50.45ID:zaIZgwYc $_ って正式名称はなに?
814デフォルトの名無しさん
2017/08/31(木) 20:40:54.54ID:3/js14c9 >>813
特に決まっていない
use English した時の名前は ARG
http://perldoc.jp/docs/perl/5.22.1/perlvar.pod#General32Variables
http://perldoc.perl.org/perlvar.html#General-Variables
特に決まっていない
use English した時の名前は ARG
http://perldoc.jp/docs/perl/5.22.1/perlvar.pod#General32Variables
http://perldoc.perl.org/perlvar.html#General-Variables
815デフォルトの名無しさん
2017/08/31(木) 21:06:33.50ID:kksFNuyJ 日本だとparameterもargumentもどっちも引数と訳して区別しないから、
何故ARGなのかピンときにくいな
何故ARGなのかピンときにくいな
816デフォルトの名無しさん
2017/08/31(木) 22:02:37.51ID:j9yVEoD5 引数は単に引数ってだけ。その使われ方は決まっていない。
例えば言語によっては関数の引数で戻り値を返すことだってできる。
つまり引数=パラメータではない
また関数の引数の多くはパラメータになるが、
引数だけがパラメータではない。
環境変数でパラメータを渡すことも有る
つまり「この関数の引数はすべてパラメータであり、引数以外のパラメータは取らない」
のような使い方をする
例えば言語によっては関数の引数で戻り値を返すことだってできる。
つまり引数=パラメータではない
また関数の引数の多くはパラメータになるが、
引数だけがパラメータではない。
環境変数でパラメータを渡すことも有る
つまり「この関数の引数はすべてパラメータであり、引数以外のパラメータは取らない」
のような使い方をする
817デフォルトの名無しさん
2017/08/31(木) 22:05:02.71ID:j9yVEoD5 なぜ $_ が ARGなのかというと
正式名称が「デフォルトの引数」だからである。
正式名称が「デフォルトの引数」だからである。
818デフォルトの名無しさん
2017/08/31(木) 22:17:16.68ID:kksFNuyJ そういう理解なんだねとは思うけど、何も正しくない
パラメータは、数学の媒介変数から借りてきた言葉で、
それを変化させると結果がいろいろ変わる変数
argumentは訳語が無いのでアーギュメントとするけど、
これは仮引数とも訳されて、関数を定義する時に便宜的に使われる名前
y = f(a)
と使うけど、定義では
f(x) = x*x
みたいに違う名前で書く
ここで、aがパラメータで、xがアーギュメント
パラメータは、数学の媒介変数から借りてきた言葉で、
それを変化させると結果がいろいろ変わる変数
argumentは訳語が無いのでアーギュメントとするけど、
これは仮引数とも訳されて、関数を定義する時に便宜的に使われる名前
y = f(a)
と使うけど、定義では
f(x) = x*x
みたいに違う名前で書く
ここで、aがパラメータで、xがアーギュメント
819デフォルトの名無しさん
2017/08/31(木) 22:45:26.64ID:j9yVEoD5 それは数学での定義でしかない
820デフォルトの名無しさん
2017/09/01(金) 15:00:43.14ID:H3SYi0Xx 引数として使ってるものが引数
パレメータとして使ってる物がパラメータ
パレメータとして使ってる物がパラメータ
821デフォルトの名無しさん
2017/09/02(土) 10:40:48.32ID:u6TVALzz パレパレ
822デフォルトの名無しさん
2017/09/02(土) 12:32:02.45ID:xOFD7X9t パレメータでぐぐると600件くらいヒットするから、
それなりに認知された用語だ
それなりに認知された用語だ
823デフォルトの名無しさん
2017/09/03(日) 01:01:13.45ID:93btyWjA ネイティヴ風の発音だね
824デフォルトの名無しさん
2017/09/03(日) 11:11:45.08ID:DIhXI1rF たまにいるよな。
大抵のカタカナ英語は日本語風に書いているのに
特定の単語だけネイティブ風に書くやつ
より正確な英語の発音にこだわってるんだー風を
だしていながら、その他のよく知られたカタカナ英語は
そうやってないから、ものすごく恥ずかしい
大抵のカタカナ英語は日本語風に書いているのに
特定の単語だけネイティブ風に書くやつ
より正確な英語の発音にこだわってるんだー風を
だしていながら、その他のよく知られたカタカナ英語は
そうやってないから、ものすごく恥ずかしい
825デフォルトの名無しさん
2017/09/03(日) 12:13:05.99ID:9X5Pxl9y 何言ってんだかさっぱりわかんないな。
これじゃ駄目なん? 普通にパラメータに聞こえますけど。
http://ejje.weblio.jp/content/parameter
元凶は日本のマスゴミなんだから逆らって
アイフォーンをアイフォンとかは全然いいんじゃない?
これじゃ駄目なん? 普通にパラメータに聞こえますけど。
http://ejje.weblio.jp/content/parameter
元凶は日本のマスゴミなんだから逆らって
アイフォーンをアイフォンとかは全然いいんじゃない?
826デフォルトの名無しさん
2017/09/03(日) 17:26:43.87ID:B/+QCXTV そして突然迷い込む馬鹿二人(うち一人が発狂)
827デフォルトの名無しさん
2017/09/04(月) 02:55:51.13ID:wDfrhDJb パリミラァ
828デフォルトの名無しさん
2017/09/04(月) 05:58:32.53ID:jkNKu/s3 なんてネイティヴな発音!
829デフォルトの名無しさん
2017/09/06(水) 01:01:55.01ID:G3iCmUe0 アイフォーンはアイフォーンだろうがゴミ
日本企業の商標を無視するとか朝鮮人かよ
日本企業の商標を無視するとか朝鮮人かよ
830デフォルトの名無しさん
2017/09/06(水) 19:33:55.21ID:sdZlzdoG 先にアイホンがあったから、アイフォンって名乗れないだけだけどな
831デフォルトの名無しさん
2017/09/07(木) 01:22:55.82ID:Sk+IOtsg >>825
おれには「フラメトル」としか聞こえん
おれには「フラメトル」としか聞こえん
832デフォルトの名無しさん
2017/09/07(木) 07:54:03.77ID:J7Os68O5 disableをディセーブルだと判ってるのに、どうしてもディザブルと読んでしまう
833デフォルトの名無しさん
2017/09/10(日) 19:11:13.56ID:PWIqhoXm ディスエイブル
834デフォルトの名無しさん
2017/09/10(日) 19:11:55.89ID:PWIqhoXm deny はデニーではなくディナイ
835デフォルトの名無しさん
2017/09/10(日) 19:13:03.02ID:PWIqhoXm alias はアリアスではなくエイリアス
836デフォルトの名無しさん
2017/09/10(日) 21:23:32.99ID:ktr8CX3U dosは土座
837デフォルトの名無しさん
2017/09/12(火) 21:58:39.86ID:a0beitbE >>836
お前PCニュース板で荒らしって叩かれてるやつだろw
お前PCニュース板で荒らしって叩かれてるやつだろw
838デフォルトの名無しさん
2017/09/15(金) 23:16:27.00ID:xDlOGQNS 質問ですが required.plをtest.plからrequire './required.pl'としたとき、
required.plの中でuse strict;と書いてもtest.plがstrictにならないのに
required.plの中でuse CGI;と書くとtest.plでmy $q = new CGI;できてしまうのは何で?
use xxxx;にスコープの違いがあるとして、何読んだらワカル?
ちなPerl 5 (v5.16.1)
required.plの中でuse strict;と書いてもtest.plがstrictにならないのに
required.plの中でuse CGI;と書くとtest.plでmy $q = new CGI;できてしまうのは何で?
use xxxx;にスコープの違いがあるとして、何読んだらワカル?
ちなPerl 5 (v5.16.1)
839デフォルトの名無しさん
2017/09/15(金) 23:33:11.49ID:du4uxrUm840デフォルトの名無しさん
2017/09/15(金) 23:43:23.66ID:quelyH0d 訳: わかりません
841デフォルトの名無しさん
2017/09/16(土) 00:35:28.29ID:r+6Dx5B1 >>838
http://perldoc.jp/docs/perl/5.16.1/perlmod.pod
プラグマは大体ブロックスコープだけどものによるから個別に調べて
http://perldoc.jp/index/core
http://perldoc.jp/docs/perl/5.16.1/perlmod.pod
プラグマは大体ブロックスコープだけどものによるから個別に調べて
http://perldoc.jp/index/core
842デフォルトの名無しさん
2017/09/16(土) 10:28:48.29ID:ykCZuND/843デフォルトの名無しさん
2017/09/16(土) 10:40:43.15ID:eVQeLfYm >>838
そもそも概念が全く違うな
CGI->new が呼び出せるように strict->importは呼び出せるようになっているし
パッケージの定義がグローバルな名前空間に行われてるのは同じ
strictの有効化はコンパイル時のperl内部のスイッチの切り替え
同じ use でもやりたいことが違うからスコープの違いという視点で整理しようとすると混乱しそう
そもそも概念が全く違うな
CGI->new が呼び出せるように strict->importは呼び出せるようになっているし
パッケージの定義がグローバルな名前空間に行われてるのは同じ
strictの有効化はコンパイル時のperl内部のスイッチの切り替え
同じ use でもやりたいことが違うからスコープの違いという視点で整理しようとすると混乱しそう
844デフォルトの名無しさん
2017/09/21(木) 20:27:42.42ID:BpkTXd/3 文字列$str2から文字列$str1に含まれている文字以外を全て削除する
例えば$str2="あaかbさcたdなe";$str1="あかさたな";ならば
absdeが残るということです
モジュール使えない環境なのでモジュールなしのやりかたで
例えば$str2="あaかbさcたdなe";$str1="あかさたな";ならば
absdeが残るということです
モジュール使えない環境なのでモジュールなしのやりかたで
845デフォルトの名無しさん
2017/09/21(木) 20:29:23.07ID:BpkTXd/3 間違えたabcdeが残るではなくあかさたなが残る
846デフォルトの名無しさん
2017/09/21(木) 21:26:21.38ID:YjUNPIX/ $str2="あaかbさcたdなe";
$str1="あかさたな";
$str2 =~ s/[^$str1]//g;
print $str2; # あかさたな
$str1="あかさたな";
$str2 =~ s/[^$str1]//g;
print $str2; # あかさたな
847デフォルトの名無しさん
2017/09/21(木) 23:33:40.68ID:8ncmvgKd 正規表現は書けても実行しようとするとむちゃくちゃ遅くなったり
メモリ足りなくなったりして、結局ループに開いたりする
メモリ足りなくなったりして、結局ループに開いたりする
848デフォルトの名無しさん
2017/09/22(金) 05:44:52.27ID:gzrtSK/2 あああああああああまははあああああああああああああああああああああなやたはあああああああああああああああなはわたはなたかかなななななああああああああああああああああああああああああああああかかかかあああああああああああああかささやなさはななけなわまややゆか
849デフォルトの名無しさん
2017/09/22(金) 09:19:14.94ID:fe+2x70v850デフォルトの名無しさん
2017/09/22(金) 09:42:25.43ID:45DIhC0E utf8に変換して処理しなさい
851デフォルトの名無しさん
2017/09/22(金) 09:45:38.48ID:AEpp9yrH 常識ですな
852デフォルトの名無しさん
2017/09/22(金) 12:47:50.13ID:gMAmIwCv853デフォルトの名無しさん
2017/09/23(土) 15:14:55.50ID:J7EIO5I9 Perlは正則言語を最左導出に変換していないとか一体…
まあ一般に状態数が増えてメモリ食うけど
まあ一般に状態数が増えてメモリ食うけど
854デフォルトの名無しさん
2017/09/30(土) 21:35:00.65ID:cxuNJ5cw ファイルロック用のファイルを使ってロックしている最中に
他プロセスでそのロック用ファイルを削除すると
ロック解除されてしまうの?
他プロセスでそのロック用ファイルを削除すると
ロック解除されてしまうの?
855デフォルトの名無しさん
2017/10/01(日) 00:30:05.86ID:/pIW5dK5 す、す、すみません、どなたか教えてくららい。
856デフォルトの名無しさん
2017/10/01(日) 02:02:03.44ID:aVSvWtqd ロックしているファイルを、他のプロセスは削除できないだろ
試してみれば?
試してみれば?
857デフォルトの名無しさん
2017/10/01(日) 04:19:01.01ID:ZfVcefoU 見事にヴァカが釣れたw
腹痛いwwwwwwwwwww
腹痛いwwwwwwwwwww
858デフォルトの名無しさん
2017/10/01(日) 06:50:57.38ID:h9mcOQPA 10/1は裏エイプリルフール
何をしても許される
何をしても許される
859デフォルトの名無しさん
2017/10/01(日) 23:10:23.34ID:y8Okh59a 試してみたけどwindowsサーバーだとロック中のファイルは削除できないけど
unixサーバーだと削除できてしまってロックが解除される
だからロック用ファイルは削除しないでそのまんまの方がいい
unixサーバーだと削除できてしまってロックが解除される
だからロック用ファイルは削除しないでそのまんまの方がいい
860デフォルトの名無しさん
2017/10/02(月) 13:19:40.10ID:7H/ud9Uk >>859
unixでファイル削除してもロックは解放されない
unixでファイル削除してもロックは解放されない
861デフォルトの名無しさん
2017/10/02(月) 13:31:28.69ID:SGi8KvwU862デフォルトの名無しさん
2017/10/02(月) 18:11:00.25ID:zZtvHqX+ perl6についてスレすらないけどみんな無関心なの?
863デフォルトの名無しさん
2017/10/02(月) 19:15:38.66ID:7PTk8Wzs 違う言語だからなあ
そんなんに慣れるくらいなら別の言語やる
そんなんに慣れるくらいなら別の言語やる
864デフォルトの名無しさん
2017/10/02(月) 19:19:54.66ID:zZtvHqX+ とんくす
やっぱそういう認識なんやね
やっぱそういう認識なんやね
865デフォルトの名無しさん
2017/10/02(月) 19:54:37.34ID:W4ke7gLE 使えるとこではPerl使いたいけど
いよいよとなったら次はpythonかなぁ
いよいよとなったら次はpythonかなぁ
866デフォルトの名無しさん
2017/10/02(月) 20:13:00.81ID:xxT2R/Bt (lock_test1.cgi)
test.lockを排他ロック
sleep(10);
ロック解除
(lock_test2.cgi)
test.lockを削除
test.lockを排他ロック
ロック解除
lock_test1.cgiを実行した3秒後にlock_test2.cgiを実行して試したら
lock_test2.cgiの方はロック待ちにならなかった
test.lockを削除しない場合はロック待ちになった
だからロック用ファイルを削除するとロックが解除される
test.lockを排他ロック
sleep(10);
ロック解除
(lock_test2.cgi)
test.lockを削除
test.lockを排他ロック
ロック解除
lock_test1.cgiを実行した3秒後にlock_test2.cgiを実行して試したら
lock_test2.cgiの方はロック待ちにならなかった
test.lockを削除しない場合はロック待ちになった
だからロック用ファイルを削除するとロックが解除される
867デフォルトの名無しさん
2017/10/02(月) 20:14:57.29ID:7PTk8Wzs pythonも新バージョンへに移行したくない同じ現象になってて、
次の言語が待たれている
perlからpythonはいろいろ新しいアイディアが追加されて、
より面白い言語になったけど、
次の言語では何が追加されるんだろう
次の言語が待たれている
perlからpythonはいろいろ新しいアイディアが追加されて、
より面白い言語になったけど、
次の言語では何が追加されるんだろう
868デフォルトの名無しさん
2017/10/02(月) 20:19:16.81ID:W4ke7gLE869デフォルトの名無しさん
2017/10/03(火) 13:20:15.84ID:inJ+8qV1870デフォルトの名無しさん
2017/10/05(木) 23:33:51.09ID:1JBojDVn ロック状態を示すファイルを削除したら、その擬似的なロックが、解放されるのは当たり前だとおもうのだけど、結局何がしたいんだ?
871デフォルトの名無しさん
2017/10/07(土) 08:15:23.63ID:6wQnopu1 基本的なことだったと思うのですが、忘れてしまって調べても見つけられなかったので質問させてください。
print関数のFHのようなスペースを伴わずに渡す第一引数って
* なんていう名前でしたっけ
* どうやって定義するんでしたっけ
print関数のFHのようなスペースを伴わずに渡す第一引数って
* なんていう名前でしたっけ
* どうやって定義するんでしたっけ
872デフォルトの名無しさん
2017/10/07(土) 11:13:34.60ID:lC4cuCCD >print関数のFHのようなスペースを伴わずに渡す第一引数
???
何を指しているのかよくわからないし、定義するってどういうことだ?
print FH "hoge", "fuga";
print "hoge", "fuga";
???
何を指しているのかよくわからないし、定義するってどういうことだ?
print FH "hoge", "fuga";
print "hoge", "fuga";
873デフォルトの名無しさん
2017/10/07(土) 12:02:43.75ID:6wQnopu1874デフォルトの名無しさん
2017/10/07(土) 12:05:55.88ID:6wQnopu1 あ、スペースを伴わずに、じゃない
カンマを伴わずに…
カンマを伴わずに…
875デフォルトの名無しさん
2017/10/07(土) 12:33:54.72ID:lC4cuCCD 間接オブジェクト構文
ttp://perldoc.jp/docs/perl/5.8.8/perlobj.pod#Indirect32Object32Syntax
new Hoge 'foo', 'bar';
Hoge->new('foo', 'bar');
普通にメソッドを定義すればよく、呼び出す時の書き方が違うだけ
ttp://perldoc.jp/docs/perl/5.8.8/perlobj.pod#Indirect32Object32Syntax
new Hoge 'foo', 'bar';
Hoge->new('foo', 'bar');
普通にメソッドを定義すればよく、呼び出す時の書き方が違うだけ
876デフォルトの名無しさん
2017/10/07(土) 13:02:49.57ID:5L99WECK877デフォルトの名無しさん
2017/10/09(月) 21:30:40.03ID:EtpsZHXA で、何をしたのかね?
878デフォルトの名無しさん
2017/10/09(月) 21:33:56.63ID:EtpsZHXA うう。リロード忘れ。
879デフォルトの名無しさん
2017/10/12(木) 16:28:32.59ID:5XRwFLPd WWW-Curl-4.17.をインストールしたいと思っています。
perl Makefile.PLを実行して以下のエラーが出力されました。
原因と対応方法が分かる方、ご教示ください。
Locating required external dependency bin:curl-config... found at /usr/local/bin/curl-config.
The version is libcurl 7.19.6
Found curl.h in /usr/local/include/curl/curl.h
No working cpp (ファイルもディレクトリもありません。). Parsing curl.h in Perl at Makefile.PL line 105.
Building curlopt-constants.c for your libcurl version
Building Easy.pm constants for your libcurl version
Building Share.pm constants for your libcurl version
Generating a Unix-style Makefile
Writing Makefile for WWW::Curl
Writing MYMETA.yml and MYMETA.jso
perl Makefile.PLを実行して以下のエラーが出力されました。
原因と対応方法が分かる方、ご教示ください。
Locating required external dependency bin:curl-config... found at /usr/local/bin/curl-config.
The version is libcurl 7.19.6
Found curl.h in /usr/local/include/curl/curl.h
No working cpp (ファイルもディレクトリもありません。). Parsing curl.h in Perl at Makefile.PL line 105.
Building curlopt-constants.c for your libcurl version
Building Easy.pm constants for your libcurl version
Building Share.pm constants for your libcurl version
Generating a Unix-style Makefile
Writing Makefile for WWW::Curl
Writing MYMETA.yml and MYMETA.jso
880デフォルトの名無しさん
2017/10/12(木) 22:11:19.78ID:5bT9xlHu そのモジュールのことは知らないけど、とりあえず「cpp が無い」と言ってるようだね。
make と C をインストールすればいいと思うよ。
make と C をインストールすればいいと思うよ。
881デフォルトの名無しさん
2017/10/12(木) 22:58:50.94ID:4iOww/iD makeがちゃんとした文法になる日は来るんだろうか
882デフォルトの名無しさん
2017/10/13(金) 09:46:32.50ID:BQhKbAsH 880さん、ありがとうございます。
cppがインストールされていないのですね。。
pkginfoでみるとそれらしいものが入っているのですが、下記とは違うものでしょうか。
# pkginfo -i |grep cpp
system SUNWcpp Solaris cpp
GNOME2 SUNWsigcpp Libsigc++ - a library that implements typesafe callback system for standard
C++
GNOME2 SUNWsigcpp-devel Libsigc++ - a library that implements typesafe callback system for standard
C++ - development files
cppがインストールされていないのですね。。
pkginfoでみるとそれらしいものが入っているのですが、下記とは違うものでしょうか。
# pkginfo -i |grep cpp
system SUNWcpp Solaris cpp
GNOME2 SUNWsigcpp Libsigc++ - a library that implements typesafe callback system for standard
C++
GNOME2 SUNWsigcpp-devel Libsigc++ - a library that implements typesafe callback system for standard
C++ - development files
883880
2017/10/13(金) 21:28:27.18ID:4p1OUNBb 問題は解決しましたか? Solaris のことは分からないのでこれ以上お役に立てそうにありません。
まだ解決していないのなら perlsolaris というマニュアルがあるはずですから読んでみてください。
その上で、Solaris のことをよく知っている人に聞くのがよろしいかと思います。
まだ解決していないのなら perlsolaris というマニュアルがあるはずですから読んでみてください。
その上で、Solaris のことをよく知っている人に聞くのがよろしいかと思います。
884デフォルトの名無しさん
2017/10/14(土) 22:03:44.55ID:7hq5DvWK ダメですね。。
もうちょっとネットで調べてみます。
もうちょっとネットで調べてみます。
885デフォルトの名無しさん
2017/10/20(金) 15:42:18.30ID:1xv6Ebpc 流れを切ってすみません。
半角カタカナを全角カタカナにしてファイルに書き込みたいです。
Cannot decode string with wide characters at...
のエラーになります。どこをどう修正すればよいでしょうか。
use utf8; use Encode; use Encode::JP::H2Z;
open(IN, "<:encoding(cp932)", "src.txt");
open(OUT, ">:encoding(cp932)", "dst.txt");
...
#$strはファイルから読み込んだ文字列
Encode::from_to($str, "utf8", "euc-jp"); #どうもここでひっかかる
Encode::JP::H2Z::h2z(\$str);
Encode::from_to($str, "euc-jp", "utf8");
...
といったコードなのですが・・・。
Shift-JISのコードだと上手く動くのですが・・・。
utf8で標準モジュールの利用で行いたいです。どなたかよろしくお願いします。
半角カタカナを全角カタカナにしてファイルに書き込みたいです。
Cannot decode string with wide characters at...
のエラーになります。どこをどう修正すればよいでしょうか。
use utf8; use Encode; use Encode::JP::H2Z;
open(IN, "<:encoding(cp932)", "src.txt");
open(OUT, ">:encoding(cp932)", "dst.txt");
...
#$strはファイルから読み込んだ文字列
Encode::from_to($str, "utf8", "euc-jp"); #どうもここでひっかかる
Encode::JP::H2Z::h2z(\$str);
Encode::from_to($str, "euc-jp", "utf8");
...
といったコードなのですが・・・。
Shift-JISのコードだと上手く動くのですが・・・。
utf8で標準モジュールの利用で行いたいです。どなたかよろしくお願いします。
886デフォルトの名無しさん
2017/10/20(金) 17:53:57.14ID:P8duaFnv 目的がそれだけなら、こんな感じになるかな。
open( IN,'<','src.txt')
open( OUT,'>','dst.txt')
Encode::from_to( $str,'cp932','euc-jp');
Encode::JP::H2Z::h2z(\$str);
Encode::from_to( $str,'euc-jp','cp932');
どうしてかというと、from_to に渡すのは Perl の用語で言うなら文字列ではなくバイト列。
だから入力時にデコードする必要は無い。
日本語でのパターンマッチなどのためにデコードしてある場合は
from_to ではなく encode を使う。
Encode のマニュアルを読んでください。
標準モジュールしか使えないわけじゃないのなら Unicode::Japanese を使ってみてはどうでしょう。
open( IN,'<','src.txt')
open( OUT,'>','dst.txt')
Encode::from_to( $str,'cp932','euc-jp');
Encode::JP::H2Z::h2z(\$str);
Encode::from_to( $str,'euc-jp','cp932');
どうしてかというと、from_to に渡すのは Perl の用語で言うなら文字列ではなくバイト列。
だから入力時にデコードする必要は無い。
日本語でのパターンマッチなどのためにデコードしてある場合は
from_to ではなく encode を使う。
Encode のマニュアルを読んでください。
標準モジュールしか使えないわけじゃないのなら Unicode::Japanese を使ってみてはどうでしょう。
887885
2017/10/21(土) 02:31:17.21ID:JUnyPSe2 >886
返信ありがとうございます。
他に日本語の処理があるのでencoding(cp932)としています。
$str=Encode::encode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::decode('utf-8',$str);
としても
#$str=Encode::encode('utf-8',$str);#これの有無に関わらず
$str=Unicode::Japanese->new($str)->h2zKana->get;
(ためしにUnicode::Japaneseを使ってみましたが、標準モジュールで行いたいです)
"\x{xxxx}" does not map to cp932 at ....
とワーニングだらけで>:encoding(cp932)がうまくいっていないというか
それ以前の変換がうまくいっていないようです・・・。
返信ありがとうございます。
他に日本語の処理があるのでencoding(cp932)としています。
$str=Encode::encode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::decode('utf-8',$str);
としても
#$str=Encode::encode('utf-8',$str);#これの有無に関わらず
$str=Unicode::Japanese->new($str)->h2zKana->get;
(ためしにUnicode::Japaneseを使ってみましたが、標準モジュールで行いたいです)
"\x{xxxx}" does not map to cp932 at ....
とワーニングだらけで>:encoding(cp932)がうまくいっていないというか
それ以前の変換がうまくいっていないようです・・・。
888855
2017/10/21(土) 02:40:01.52ID:JUnyPSe2 連投すみません。encodeとdecode間違ってるなと思い
$str=Encode::decode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::encode('euc-jp',$str);
とすると、
Wide character in subroutine entry at...
で出力が0バイトとなってしまいます・・・。
$str=Encode::decode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::encode('euc-jp',$str);
とすると、
Wide character in subroutine entry at...
で出力が0バイトとなってしまいます・・・。
889885
2017/10/21(土) 03:03:22.99ID:JUnyPSe2 何度もすみません。できました。
$str=Encode::encode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::decode('euc-jp',$str);
でした。
> 886
encodeを使うアドバイスありがとうございました。助かりました。
$str=Encode::encode('euc-jp',$str);Encode::JP::H2Z::h2z(\$str);
$str=Encode::decode('euc-jp',$str);
でした。
> 886
encodeを使うアドバイスありがとうございました。助かりました。
890デフォルトの名無しさん
2017/10/28(土) 14:12:24.45ID:86e9E3uL #!/usr/local/bin/perl
use strict;
use CGI::Carp qw(fatalsToBrowser);
print <<"EOM";
Content-tyoe: text/html; charset=shift_jis\n\n
<html><body>
EOM
eval {require DBI;};
if($@) {
print "DBI NG<br>\n";
} else {
print "DBI OK<br>\n";
}
undef $@;
eval {require DBD::SQLite; }
if($@) {
print "DBD::SQLite NG<br>\n";
} else {
print "DBD::SQLite OK<br>\n";
}
print "</body></html>";
sqlchk.cgiの19行目の構文エラー。 "){"
と出るんですが何が原因か分かりません。もしよろしければ教えていただけないでしょうか?
use strict;
use CGI::Carp qw(fatalsToBrowser);
print <<"EOM";
Content-tyoe: text/html; charset=shift_jis\n\n
<html><body>
EOM
eval {require DBI;};
if($@) {
print "DBI NG<br>\n";
} else {
print "DBI OK<br>\n";
}
undef $@;
eval {require DBD::SQLite; }
if($@) {
print "DBD::SQLite NG<br>\n";
} else {
print "DBD::SQLite OK<br>\n";
}
print "</body></html>";
sqlchk.cgiの19行目の構文エラー。 "){"
と出るんですが何が原因か分かりません。もしよろしければ教えていただけないでしょうか?
891デフォルトの名無しさん
2017/10/28(土) 14:36:19.07ID:yzxLOqe0892デフォルトの名無しさん
2017/10/28(土) 15:04:21.68ID:86e9E3uL 助かりました。ありがとうございました^−^
893デフォルトの名無しさん
2017/11/01(水) 19:40:06.83ID:FhCkv10M ^−^
894デフォルトの名無しさん
2017/11/01(水) 21:59:57.34ID:uQFQAfJE (^_^;
895デフォルトの名無しさん
2017/11/22(水) 19:37:11.64ID:kPeZVcC+ (^────────────^)
896デフォルトの名無しさん
2017/11/22(水) 22:55:47.27ID:oTRzAO+2 (^________________^;
897デフォルトの名無しさん
2017/11/23(木) 00:10:28.02ID:kTaFEskE :-)
898デフォルトの名無しさん
2017/11/23(木) 18:54:17.85ID:8ru0xFWh :────────────)
899デフォルトの名無しさん
2017/12/05(火) 14:22:42.29ID:nNRKwkIq APIアクセスでのレスポンスをDumperしたら下みたいに返ってきたんだけど
'https://hogehoge.hoge/'を取得するにはどうアクセスしたらいいです?
$VAR1 = bless( {
'url' => bless( do{\(my $o = 'https://hogehoge.hoge/')}, 'URI::https' )
}, 'Entity::Tag' );
'https://hogehoge.hoge/'を取得するにはどうアクセスしたらいいです?
$VAR1 = bless( {
'url' => bless( do{\(my $o = 'https://hogehoge.hoge/')}, 'URI::https' )
}, 'Entity::Tag' );
900デフォルトの名無しさん
2017/12/07(木) 10:28:22.13ID:OnTOXu6z ファイルに書くときに、closeをせず明示的にフラッシュしたいんだけど
どうしたらいいの?
selectやautoflushは明示的ではないのでできれば使いたくない
どうしたらいいの?
selectやautoflushは明示的ではないのでできれば使いたくない
901デフォルトの名無しさん
2017/12/07(木) 10:57:31.26ID:ULPWPGO9 >>900
http://perldoc.jp/docs/perl/perlfaq5.pod#How32do32I32flush47unbuffer32an32output32filehandle63-32Why32must32I32do32this63
> IO::Handle オブジェクトには flush メソッドもあります。
#!/usr/bin/perl -w
use strict;
for (1..10) {
print '.';
sleep 2;
STDOUT->flush;
}
print "!\n";
http://perldoc.jp/docs/perl/perlfaq5.pod#How32do32I32flush47unbuffer32an32output32filehandle63-32Why32must32I32do32this63
> IO::Handle オブジェクトには flush メソッドもあります。
#!/usr/bin/perl -w
use strict;
for (1..10) {
print '.';
sleep 2;
STDOUT->flush;
}
print "!\n";
902デフォルトの名無しさん
2017/12/26(火) 21:57:47.00ID:PAyaH1Yv =~ 正規表現で中身を置換ができる事は理解できたんですが、
中身を入れ替えたいんじゃなく別の変数に入れたいときはどう書けばいいんでしょうか?
現在の自分の知識だと、例えば引数にとった文字列を置換してある変数に入れるとき
$_ = $ARGV[0];
$_ =~ s/mukimuki/mukemuke/;
$hoge = $_;
こんな風に無駄に $_ を経由した書き方になってしまいます。
ほかの言語風に言うと
$hoge = $ARGV[0].replaceWith(s/mukimuki/mukemuke/);
こんな感じで書きたいのですが。
中身を入れ替えたいんじゃなく別の変数に入れたいときはどう書けばいいんでしょうか?
現在の自分の知識だと、例えば引数にとった文字列を置換してある変数に入れるとき
$_ = $ARGV[0];
$_ =~ s/mukimuki/mukemuke/;
$hoge = $_;
こんな風に無駄に $_ を経由した書き方になってしまいます。
ほかの言語風に言うと
$hoge = $ARGV[0].replaceWith(s/mukimuki/mukemuke/);
こんな感じで書きたいのですが。
903デフォルトの名無しさん
2017/12/26(火) 22:06:02.40ID:Vj82fll/ ($hoge = $ARGV[0]) =~ s/mukimuki/mukemuke/;
こう書くのがセオリーかな
こう書くのがセオリーかな
904デフォルトの名無しさん
2017/12/26(火) 22:37:33.36ID:3f/g1GW0 >>902
Perl 5.14.0 以降なら /r も使える
http://perldoc.jp/docs/perl/5.14.0/perl5140delta.pod#Non-destructive32substitution
Perl 5.14.0 以降なら /r も使える
http://perldoc.jp/docs/perl/5.14.0/perl5140delta.pod#Non-destructive32substitution
905902
2017/12/27(水) 03:38:54.44ID:885vGvc2906デフォルトの名無しさん
2017/12/27(水) 15:34:07.71ID:yY2jVcTO perlスクリプトの稼働率は今どれくらいなんだろうか?
PHP流行から、徐々にフェードアウトしてるし
PHPオワコン説が流れだした頃から、perl6が登場したけど
存在感がないんだよなー
PHP流行から、徐々にフェードアウトしてるし
PHPオワコン説が流れだした頃から、perl6が登場したけど
存在感がないんだよなー
907デフォルトの名無しさん
2017/12/27(水) 19:01:25.94ID:Rj9CQ2gH DeNAとかmixiとかがPerIだけど、置き換えが進むだろうし
新規でメインスクリプトでってのはもうなかなか無いだろうね
新規でメインスクリプトでってのはもうなかなか無いだろうね
908デフォルトの名無しさん
2017/12/27(水) 19:28:49.86ID:tmtXLaBC ちょっと何かするときはperl使うよ。慣れてるので何も見ずに書けるから。
phpがなぜ出てくるのかわからん。使ったことないけどあれwebアプリ用でしょ
phpがなぜ出てくるのかわからん。使ったことないけどあれwebアプリ用でしょ
909デフォルトの名無しさん
2017/12/27(水) 19:55:51.39ID:bfruSbpL ま、しかし、PerlはWebでしか使われてないわけではないからな。
910デフォルトの名無しさん
2017/12/27(水) 19:56:46.60ID:bfruSbpL >>908
多分Webプログラムでの事しか思い浮かばなかったのだろう。
多分Webプログラムでの事しか思い浮かばなかったのだろう。
911デフォルトの名無しさん
2017/12/27(水) 23:26:51.61ID:+qI9wAl8 素人に毛が生えたレベルの低スキル層でも実用的なwebアプリ作れる点でPHPは凄いよ。
フレームワークの種類も情報量も多いし。
CLIも作りやすくなってる。一からCLIアプリ作るときにPHP使う優位性は無いけど
webアプリに付随するものとかなら十分。
フレームワークの種類も情報量も多いし。
CLIも作りやすくなってる。一からCLIアプリ作るときにPHP使う優位性は無いけど
webアプリに付随するものとかなら十分。
912デフォルトの名無しさん
2017/12/28(木) 00:19:43.19ID:O5Tikz8c フォーマット変換とかテキスト一括処理系は、perlでなれるとどれもしっくりこないんだよなぁ。
shを補完する感じで使ってる最近は。
cとセットで使いたくなったらpython?を勉強するかもしれない。
shを補完する感じで使ってる最近は。
cとセットで使いたくなったらpython?を勉強するかもしれない。
913ゆっきー ◆ExGQrDul2E
2017/12/28(木) 03:17:44.94ID:NczIEmFQ 10年ぐらい前の入門書で、カンマとドットを間違えて
人工衛星が明後日の方向に飛んで言ったとか何とか、小中学生ぐらいの時に読んだ記憶が有る。
人工衛星が明後日の方向に飛んで言ったとか何とか、小中学生ぐらいの時に読んだ記憶が有る。
914デフォルトの名無しさん
2017/12/28(木) 09:29:38.01ID:wX0EFIYP そういやそんなことあったなあ。
915デフォルトの名無しさん
2017/12/28(木) 18:55:35.20ID:Er3In3fn こんなのあったのな。知らなかったよ。
https://qiita.com/AnnPin/items/5f868f0c7cb5d1af306b
https://qiita.com/AnnPin/items/5f868f0c7cb5d1af306b
916デフォルトの名無しさん
2017/12/28(木) 19:24:59.40ID:Ur1ocpFu 粗太陽センサーと精太陽センサーの取得先を取り違える
917デフォルトの名無しさん
2017/12/28(木) 20:38:10.17ID:9xNc6XZe 【IS自爆テロ】「死んだら天国へ行ける」 <九条は必要> 「死んだら靖国に祀られる」【神風特攻隊】
https://rosie.5ch.net/test/read.cgi/liveplus/1514253929/l50
【東海アマ】安倍晋三はどんな殺され方 <祖父の代りに絞首刑> 公約反故は自殺に繋がる【世界教師】
http://rosie.5ch.net/test/read.cgi/liveplus/1514425832/l50
https://rosie.5ch.net/test/read.cgi/liveplus/1514253929/l50
【東海アマ】安倍晋三はどんな殺され方 <祖父の代りに絞首刑> 公約反故は自殺に繋がる【世界教師】
http://rosie.5ch.net/test/read.cgi/liveplus/1514425832/l50
918デフォルトの名無しさん
2017/12/31(日) 12:51:33.73ID:6G2PkezB >>913
それ、打ち上げ延期
それ、打ち上げ延期
919デフォルトの名無しさん
2018/01/01(月) 05:59:15.42ID:4wMbPbHX >>918
あ、それで済んだの?そうか、じゃあ都市伝説か。
あ、それで済んだの?そうか、じゃあ都市伝説か。
920デフォルトの名無しさん
2018/01/01(月) 12:14:32.50ID:rcsYJFXY >>908
PHPが重宝されてるのはDB連携のPDOが便利すぎてハゲるから
PDO一つあれば、オラクル、ポスグレ、mysql、sqlサーバー、DB2、SQLITEなんでも
同じ記述で接続できるからな
ただ、関数定義に一貫性がない、変数スコープのグローバル化が面倒、
型変換で楽しいバグが発生するなど
素人向けと思って甘く見ると大火傷する諸刃の剣
PHPが重宝されてるのはDB連携のPDOが便利すぎてハゲるから
PDO一つあれば、オラクル、ポスグレ、mysql、sqlサーバー、DB2、SQLITEなんでも
同じ記述で接続できるからな
ただ、関数定義に一貫性がない、変数スコープのグローバル化が面倒、
型変換で楽しいバグが発生するなど
素人向けと思って甘く見ると大火傷する諸刃の剣
921デフォルトの名無しさん
2018/01/01(月) 12:30:16.97ID:zAUlE2YO 手に馴染んだ道具として今後もperlを使うだろうな
rubyに持ち替えた方が使い勝手はいいんだけど、
そもそもrubyが無い環境が多いので使えなくては意味がない
rubyに持ち替えた方が使い勝手はいいんだけど、
そもそもrubyが無い環境が多いので使えなくては意味がない
922デフォルトの名無しさん
2018/01/01(月) 18:55:01.09ID:FPPCegVg perlの持ち替えならpythonがいいと思う。
特に最近のlinux系はpythonものが増加傾向だし。
でもまあ、perlあればokじゃね?というのが正直なところ
特に最近のlinux系はpythonものが増加傾向だし。
でもまあ、perlあればokじゃね?というのが正直なところ
923デフォルトの名無しさん
2018/01/02(火) 12:32:50.81ID:Q+9WD3Xu 今年の目標は、新たに言語を勉強することなんだが
Perl、Python、Rubyの違いとそれぞれのメリットを
教えてくだされ
Perl、Python、Rubyの違いとそれぞれのメリットを
教えてくだされ
924デフォルトの名無しさん
2018/01/02(火) 12:41:01.44ID:UbsIsL+c perl どこにでもある
python 人工知能に強い
ruby Railsが使える
python 人工知能に強い
ruby Railsが使える
925デフォルトの名無しさん
2018/01/02(火) 16:34:43.56ID:pQ/3ped7 >>920
DBはPerlでもDBIと各DB用のDBIモジュールがあれば同じようにアクセスできるよ。
てか、その辺は他の言語でもだいたい同じようにできないか?みんなJavaのJDBCの影響受けて接続部分で違いを吸収してなんとかしてるように思うんだが。
DBはPerlでもDBIと各DB用のDBIモジュールがあれば同じようにアクセスできるよ。
てか、その辺は他の言語でもだいたい同じようにできないか?みんなJavaのJDBCの影響受けて接続部分で違いを吸収してなんとかしてるように思うんだが。
926デフォルトの名無しさん
2018/01/02(火) 16:36:32.56ID:pQ/3ped7927デフォルトの名無しさん
2018/01/03(水) 00:47:07.06ID:0mS9Giqv >>925
なるほど、どこも似たような機能を実装してきてるわけか
なるほど、どこも似たような機能を実装してきてるわけか
928デフォルトの名無しさん
2018/01/03(水) 01:45:39.60ID:mxmMGWxl ORM使えば各DBのSQLの差異も気にせず使えるぜよ
929デフォルトの名無しさん
2018/01/03(水) 20:21:48.88ID:vVUVg3Hi Perl習得も今年の目標の一つなんだけど
Linuxの環境構築しておいた方がいい?
それともwin64でもサクサク動かせる?
Linuxの環境構築しておいた方がいい?
それともwin64でもサクサク動かせる?
930デフォルトの名無しさん
2018/01/04(木) 11:48:53.39ID:vxw86c0g windows環境でperlなんてまず使わないだろうし、linux環境構築したほうがいいんじゃない?shも覚えるし。。。
webページ作りたいならperlはやめとけ
webページ作りたいならperlはやめとけ
931デフォルトの名無しさん
2018/01/04(木) 18:26:44.77ID:Eqt08FX4 >>929
どうしてもっていうならWindowsでもいいとは思うがいまいち面倒かも知れない。
知っての通りファイルシステムやその他細かい点が色々違うから。
かといってわざわざ Linux 動く環境を作るのは面倒だという場合は
Windows Subsystem for Linux 使えばいい。これだと Kernel は
Linux のふりをして動く Windows になって、その他は Linux とほぼ同じだ。
Windows 内のファイルは /mnt/c/ にマウントされていて Windows 用の
コマンドも(全てではないと思うが)使える。
どうしてもっていうならWindowsでもいいとは思うがいまいち面倒かも知れない。
知っての通りファイルシステムやその他細かい点が色々違うから。
かといってわざわざ Linux 動く環境を作るのは面倒だという場合は
Windows Subsystem for Linux 使えばいい。これだと Kernel は
Linux のふりをして動く Windows になって、その他は Linux とほぼ同じだ。
Windows 内のファイルは /mnt/c/ にマウントされていて Windows 用の
コマンドも(全てではないと思うが)使える。
932デフォルトの名無しさん
2018/01/04(木) 18:30:15.45ID:Eqt08FX4933デフォルトの名無しさん
2018/01/04(木) 18:51:32.73ID:M2GmV8ZJ 要はダクトテープだから
それを必要とする環境で使うのが一番
日常的にいろんな作業をlinux上でしてるなら、きっといろいろ役立つ
そうでないなら用途が見つからない
それを必要とする環境で使うのが一番
日常的にいろんな作業をlinux上でしてるなら、きっといろいろ役立つ
そうでないなら用途が見つからない
934デフォルトの名無しさん
2018/01/04(木) 21:49:12.83ID:bZ/07R3T ありがとう、こっちの住民は親切で助かったよ
WSLはもっと調べて導入検討するわ
>>933
仕事でかなりLinuxは使ってるよ。特にVMは仕事で必須なんで
一からセッティングしてる
どうしても起動系とかハード周りになると
Perlの知識ないときつい部分が出てきたんで
WSLはもっと調べて導入検討するわ
>>933
仕事でかなりLinuxは使ってるよ。特にVMは仕事で必須なんで
一からセッティングしてる
どうしても起動系とかハード周りになると
Perlの知識ないときつい部分が出てきたんで
935デフォルトの名無しさん
2018/01/05(金) 19:25:38.46ID:T2NhU/kF WSLは結構便利だと思うよ。何せWindows側のコマンド動くし、起動時にWindows側のPATHを /mnt/c 以下のディレクトリとして引き継いでくれるし。
前にKotlinをインストールした時はWindows側で C:\kotlinc 以下にインストールしてその下の bin に PATH 通しておいたら WSL の方でもそのままそれが使えた(JavaVMは別途インストールしたけどね)。
こんな感じで共有が当たり前のようにできる。
まあしかし今のところサーバー用のプログラムは完全には動かないだろうからサーバーとしての動きを期待するならやはり VirtuslBox とかで Linux 動かした方が良いだろうね。
または古いPC等に本当にインストールする。
前にKotlinをインストールした時はWindows側で C:\kotlinc 以下にインストールしてその下の bin に PATH 通しておいたら WSL の方でもそのままそれが使えた(JavaVMは別途インストールしたけどね)。
こんな感じで共有が当たり前のようにできる。
まあしかし今のところサーバー用のプログラムは完全には動かないだろうからサーバーとしての動きを期待するならやはり VirtuslBox とかで Linux 動かした方が良いだろうね。
または古いPC等に本当にインストールする。
936デフォルトの名無しさん
2018/01/05(金) 22:44:53.33ID:2xeG2hRa ファイルにロックをかけないでロックされているか調べる方法あったらやり方教えて
flockだとロックかけちゃうのでだめです
flockだとロックかけちゃうのでだめです
937デフォルトの名無しさん
2018/01/05(金) 23:02:38.22ID:/B3nNmE2 アトミックが保証されてるコマンドが必要とかそんなことになるような
938デフォルトの名無しさん
2018/01/06(土) 06:45:30.55ID:MH4bKWED fcntl のマニュアルには、できるようなことが書かれてるけどどうか。
申し訳ないが実際に試してみるほど暇じゃないから、役に立つかどうかは自分で判断してほしい。
申し訳ないが実際に試してみるほど暇じゃないから、役に立つかどうかは自分で判断してほしい。
939デフォルトの名無しさん
2018/01/06(土) 11:11:20.45ID:3YD8ke1c ロックしていないのに、ロックしていることを調べるとはこれ如何に。
まぁ、一般には、pidを別ファイルに保存しておいて占有するプロセスをはっきりさせるんじゃないかな〜
ハードリンクとkill -0あたりで調べてみるとよろし??
まぁ、一般には、pidを別ファイルに保存しておいて占有するプロセスをはっきりさせるんじゃないかな〜
ハードリンクとkill -0あたりで調べてみるとよろし??
940デフォルトの名無しさん
2018/01/06(土) 11:27:28.32ID:uhIItiyd セマフォの処理はてきとーに作ってもだいたい動くんだけど、
極まれにおかしくなる
完璧に作ろうと思うとなかなか大変
っていうか、OSが提供してなかったら無理
極まれにおかしくなる
完璧に作ろうと思うとなかなか大変
っていうか、OSが提供してなかったら無理
941デフォルトの名無しさん
2018/01/06(土) 23:54:48.69ID:aO8vJyO+ >>936
ちょっとぐらいロック掛かってもいいじゃん。
F_SETLKなら他がロックしてたら待たずに即エラーになるんだし。
エラーにならずにロックできたら他にロックしてるやつは居なかったってことだよ。
ちょっとぐらいロック掛かってもいいじゃん。
F_SETLKなら他がロックしてたら待たずに即エラーになるんだし。
エラーにならずにロックできたら他にロックしてるやつは居なかったってことだよ。
942デフォルトの名無しさん
2018/01/06(土) 23:56:53.89ID:aO8vJyO+ あ、ごめん。fcntl()でのロックのはなしじゃなかったか。じゃあfcntl()使って。
使えないOSの場合は何かテクニックがあると思うがその場合はOSを書いてくれないと誰も答えられないと思う。
使えないOSの場合は何かテクニックがあると思うがその場合はOSを書いてくれないと誰も答えられないと思う。
943デフォルトの名無しさん
2018/01/07(日) 02:29:51.54ID:6djc4wO2944デフォルトの名無しさん
2018/01/07(日) 06:11:20.40ID:VUVSKv67 まあ落ち着け。まずは何のためにしたいのかということが重要だと思うよ。
ロックを試みることで他のプロセスの邪魔をしたくないというのも目的によっては理解できる。
目的によってはデータベースを使うのが最善かも。
ロックを試みることで他のプロセスの邪魔をしたくないというのも目的によっては理解できる。
目的によってはデータベースを使うのが最善かも。
945デフォルトの名無しさん
2018/01/07(日) 12:06:33.05ID:esrWpXaw >>936
> ファイルにロックをかけないでロックされているか調べる方法あったらやり方教えて
不可能だよ
なぜなら、仮にそういう関数が有ったとしても
ロックされていると判断した1ナノ秒後には
ロックが解除されてるかもしれないから
もちろんその逆もありうる
つまり関数を実行している時点では正しかったかもしれないが
関数から結果の戻り値を取得した段階では
間違った結果になってるかもしれない
> ファイルにロックをかけないでロックされているか調べる方法あったらやり方教えて
不可能だよ
なぜなら、仮にそういう関数が有ったとしても
ロックされていると判断した1ナノ秒後には
ロックが解除されてるかもしれないから
もちろんその逆もありうる
つまり関数を実行している時点では正しかったかもしれないが
関数から結果の戻り値を取得した段階では
間違った結果になってるかもしれない
946デフォルトの名無しさん
2018/01/07(日) 13:16:21.35ID:9kbWRuZM だから不可能では無いんだよな
その時点でそうだったことは判る
でも、その情報を元に何かをすることが出来ないので、
情報の使いみちが無い
その時点でそうだったことは判る
でも、その情報を元に何かをすることが出来ないので、
情報の使いみちが無い
947デフォルトの名無しさん
2018/01/07(日) 17:39:55.82ID:xuWfGrV5948デフォルトの名無しさん
2018/01/07(日) 17:43:16.42ID:xuWfGrV5 >>946
使い道は単に確認するだけならあると言えるんじゃないか?
lsofコマンドみたいな確認するだけのコマンドもあるしな。
まあでもほとんどない事は確かだな。やはり自分でロックして成功するかどうかで見た方が良い。
使い道は単に確認するだけならあると言えるんじゃないか?
lsofコマンドみたいな確認するだけのコマンドもあるしな。
まあでもほとんどない事は確かだな。やはり自分でロックして成功するかどうかで見た方が良い。
949938
2018/01/07(日) 17:58:29.25ID:VUVSKv67 そのファイルに対して何かしたいとはどこにも書かれていないんだけどな。
彼が充分に説明しないのが悪いというなら確かにその通りだが。
彼が充分に説明しないのが悪いというなら確かにその通りだが。
950デフォルトの名無しさん
2018/01/08(月) 02:39:29.72ID:3kxjIyqg コマンドプロンプトを自動で開いてperl aaa.txtを自動起動させることはできませんか?
OSはwin7です
目的は複数のperlファイルを数秒で起動することです
日に何度かやるので、手間を省くために1個のperlプログラムを実行すれば10個のコマンドプロンプトが開かれてaaa1からaaa10まで全部実行、みたいにしたいです
OSはwin7です
目的は複数のperlファイルを数秒で起動することです
日に何度かやるので、手間を省くために1個のperlプログラムを実行すれば10個のコマンドプロンプトが開かれてaaa1からaaa10まで全部実行、みたいにしたいです
951デフォルトの名無しさん
2018/01/08(月) 03:02:25.00 >>950
できるっちゃできるけど、その起動をPerlでやる必然性あるの?
バッチファイルでやればよくね?
perl_start.batに
start perl aaa1.txt
start perl aaa2.txt
みたいに書き連ねりゃいいだけじゃん
できるっちゃできるけど、その起動をPerlでやる必然性あるの?
バッチファイルでやればよくね?
perl_start.batに
start perl aaa1.txt
start perl aaa2.txt
みたいに書き連ねりゃいいだけじゃん
952デフォルトの名無しさん
2018/01/08(月) 16:46:09.77ID:QsqxlxVF そのbatファイルをタスク登録(ログオン時実行)とかにしとけば自動実行されるしね
953デフォルトの名無しさん
2018/01/08(月) 18:09:00.53ID:uJ83jHj4 perl関係ねえ
954デフォルトの名無しさん
2018/01/23(火) 09:36:50.60ID:vYqw+N7N open(ロック用ファイルハンドル,ロック用ファイル);
flock(ロック用ファイルハンドル,2);
unlink(ロック用ファイル);
close(ロック用ファイルハンドル); #ロック解除
このようにロックを解除する前にロック用ファイルを削除するのは何か問題ありますか?
ロック解除したあとにロック用ファイルを削除するとロックに隙間ができるので
flock(ロック用ファイルハンドル,2);
unlink(ロック用ファイル);
close(ロック用ファイルハンドル); #ロック解除
このようにロックを解除する前にロック用ファイルを削除するのは何か問題ありますか?
ロック解除したあとにロック用ファイルを削除するとロックに隙間ができるので
955デフォルトの名無しさん
2018/01/23(火) 10:33:50.77ID:ytLWcXDj >>954
flock使うならファイル削除しなきゃいいんだよ。そうすれば隙間はできない。
ファイル削除したいならopenの時のモードで O_EXCL | O_CREAT も指定しておいてエラーが出るかどうかで判別する。
エラーなくオープンできたら成功で、必要な処理が終わったらファイルをクローズする。
ただしこの方法はUNIX系OS以外では通用するかどうかわからないのと、NFS越しのファイルでは使えないかも知れない。
NFS越しでも使えるファイルロックは多分fcntl()のF_SETLKとかだろうと思う(しかしこれもまたOSしだいだ)。
flock使うならファイル削除しなきゃいいんだよ。そうすれば隙間はできない。
ファイル削除したいならopenの時のモードで O_EXCL | O_CREAT も指定しておいてエラーが出るかどうかで判別する。
エラーなくオープンできたら成功で、必要な処理が終わったらファイルをクローズする。
ただしこの方法はUNIX系OS以外では通用するかどうかわからないのと、NFS越しのファイルでは使えないかも知れない。
NFS越しでも使えるファイルロックは多分fcntl()のF_SETLKとかだろうと思う(しかしこれもまたOSしだいだ)。
956デフォルトの名無しさん
2018/01/23(火) 10:34:51.22ID:ytLWcXDj ごめん。訂正。
ファイルクローズするではなくて削除だ。
ファイルクローズするではなくて削除だ。
957デフォルトの名無しさん
2018/01/23(火) 12:02:42.65ID:N8Mjx+M1958デフォルトの名無しさん
2018/01/23(火) 12:28:01.19ID:f+jO8q2F >>957
感じるではなくロックとして機能しないよね?
感じるではなくロックとして機能しないよね?
959デフォルトの名無しさん
2018/01/23(火) 19:08:17.77ID:N8Mjx+M1 >>958
ファイルシステムから見ると削除して作成すると、同じファイル名でも別ファイルになる
排他処理は同じファイルを使ってるもの同士なら出来る
例えばopenしたものをずっと使い続けるプロセス同士なら、削除された後でも相互排他が出来る
ファイルシステムから見ると削除して作成すると、同じファイル名でも別ファイルになる
排他処理は同じファイルを使ってるもの同士なら出来る
例えばopenしたものをずっと使い続けるプロセス同士なら、削除された後でも相互排他が出来る
960デフォルトの名無しさん
2018/01/23(火) 20:56:31.43ID:wO1dM6nx961デフォルトの名無しさん
2018/01/23(火) 22:04:43.15ID:ZqrAOfGF あ、ずっとオープンしっぱなしならその後削除されても大丈夫ってことか。
それはそうだな。なんか危うさを感じるが。
それはそうだな。なんか危うさを感じるが。
962デフォルトの名無しさん
2018/01/30(火) 21:14:29.11ID:SNmuV+Ws ヒアドキュメントをファイルに出力する時に、
print $out <<"EOC";
ならokで、
print $out << "EOC";
だと駄目なのは何故?
print $out <<"EOC";
ならokで、
print $out << "EOC";
だと駄目なのは何故?
963デフォルトの名無しさん
2018/01/31(水) 01:11:29.08ID:ajZ2gLGd >>962
<< はビットシフト演算子でもあるので、優先順位的に
$out << "EOC" として解釈されちゃうから…?
print $out (<< "EOC"); や print << "EOC"; で通るならそうだと思う。
<< はビットシフト演算子でもあるので、優先順位的に
$out << "EOC" として解釈されちゃうから…?
print $out (<< "EOC"); や print << "EOC"; で通るならそうだと思う。
964デフォルトの名無しさん
2018/01/31(水) 01:46:30.10ID:PKL4UNme <<の直後が空白文字だと空白文字自体が識別子とみなされる
と、とある本に書いてあった
と、とある本に書いてあった
965デフォルトの名無しさん
2018/01/31(水) 03:10:45.37ID:ajZ2gLGd <<964
http://perldoc.jp/docs/perl/perlop.pod#Regexp32Quote-Like32Operators
> <<EOF
<略>
> 識別子がクォートされていない場合は、<< と識封ハ子の間に 空白を入れてはいけません。
> (もし空白を入れると、空識別子として扱われます; これは有効で、 最初の空行にマッチ
> するようになります。)
昔は
print <<;
document here.
print "foo";
みたいにできたけど、今これやると警告が出る。<<""; なら OK。
#!/usr/bin/perl -w
use strict;
sub E { print "\n6\n" }
open my $out, '>&STDOUT' or die $!;
print $out <<"";
1
print $out (<< 'E', "3\n", <<'');
2
E
4
print $out << 'E'; # Argument "E" isn't numeric in left bitshift (<<)
"5"; # Useless use of a constant ("5") in void context
E
http://perldoc.jp/docs/perl/perlop.pod#Regexp32Quote-Like32Operators
> <<EOF
<略>
> 識別子がクォートされていない場合は、<< と識封ハ子の間に 空白を入れてはいけません。
> (もし空白を入れると、空識別子として扱われます; これは有効で、 最初の空行にマッチ
> するようになります。)
昔は
print <<;
document here.
print "foo";
みたいにできたけど、今これやると警告が出る。<<""; なら OK。
#!/usr/bin/perl -w
use strict;
sub E { print "\n6\n" }
open my $out, '>&STDOUT' or die $!;
print $out <<"";
1
print $out (<< 'E', "3\n", <<'');
2
E
4
print $out << 'E'; # Argument "E" isn't numeric in left bitshift (<<)
"5"; # Useless use of a constant ("5") in void context
E
966デフォルトの名無しさん
2018/01/31(水) 09:25:45.73ID:H6iQ2Lk/967デフォルトの名無しさん
2018/01/31(水) 09:27:00.94ID:H6iQ2Lk/ あ、すまん。リロードせずに書いてしまった。既に回答書かれてたな。
968デフォルトの名無しさん
2018/01/31(水) 19:05:43.73ID:vCtk0IVE スペース空けるの禁止ならそれでいいんだけど、
ファイルハンドラが無いならスペースがあってもokなのが納得行かない
ファイルハンドラが無いならスペースがあってもokなのが納得行かない
969デフォルトの名無しさん
2018/02/01(木) 07:25:10.05ID:Msx4nr7P 気持ちは分からなくもないが、変数の場合はしょうがない。>>963 に書かれてるとおりだ。
970デフォルトの名無しさん
2018/02/01(木) 12:35:16.66ID:Msx4nr7P 誰もつっこまないが、
$out->print( << "EOC");
と書けばいいと思う。
bless されてない場合は昔は
use IO::Handle;
が必要だったが今では
perl -e 'STDOUT->print("abc")'
なんてこともできる。
個人的には、ファイルハンドルの後に , があるというアホな間違いをせずに済むというところで助かっている。
$out->print( << "EOC");
と書けばいいと思う。
bless されてない場合は昔は
use IO::Handle;
が必要だったが今では
perl -e 'STDOUT->print("abc")'
なんてこともできる。
個人的には、ファイルハンドルの後に , があるというアホな間違いをせずに済むというところで助かっている。
971デフォルトの名無しさん
2018/02/02(金) 07:43:01.24 ヒアドキュメントなんてプログラムを読みにくくする諸悪の根源
972愛知人
2018/02/02(金) 12:10:04.50 Wikipediaの12桁トリップの生成スクリプトで12桁以上のトリップキーの変換が5chの結果と合いません。どうすれば合いますか。
973デフォルトの名無しさん
2018/02/03(土) 08:12:51.87ID:hZgGNvq2 Archive::Rar を使って、中身のファイルサイズを取得するにはどうすれば
無理なら、代わりに何を使えばいい?
無理なら、代わりに何を使えばいい?
974デフォルトの名無しさん
2018/02/03(土) 09:38:14.14ID:nCUOym6+ rar コマンドをインストールしてないから CPAN でソースコードを見ただけだが、List を呼べば rar の出力をパースして list に入れてくれるみたいだよ。
試してないから勘違いしてるかもしれないけど、使ってるならソースコードの List, _AddToList 辺りを読めばいいかも。
試してないから勘違いしてるかもしれないけど、使ってるならソースコードの List, _AddToList 辺りを読めばいいかも。
975デフォルトの名無しさん
2018/02/03(土) 10:13:43.25ID:hZgGNvq2 Listはファイル名一覧しか渡してくれないんだよな
976デフォルトの名無しさん
2018/02/03(土) 10:20:52.21ID:hZgGNvq2 -alldata を指定すれば、->{size} で見えるのか
どうせやってるのは、rar.exe の出力を読んでテキスト解析してるだけなので、
似たようなことを自前でやった
どうせやってるのは、rar.exe の出力を読んでテキスト解析してるだけなので、
似たようなことを自前でやった
977デフォルトの名無しさん
2018/02/03(土) 14:48:15.33ID:nCUOym6+ マニュアルには書かれてなかったのか……まあ、信頼性の低い方法だしね。
978デフォルトの名無しさん
2018/02/04(日) 11:13:30.15ID:22FJuDW8 出力される表の形式に似せたファイル名とかにすると、多分騙されるんだろうな
979デフォルトの名無しさん
2018/02/09(金) 18:18:02.60ID:U+AwHosU >>971
KENT WEBの見にくさを見てから言ってくれ
KENT WEBの見にくさを見てから言ってくれ
980デフォルトの名無しさん
2018/02/09(金) 20:07:25.83ID:VqU2EMqO ヒヤー
981デフォルトの名無しさん
2018/02/09(金) 20:21:39.58ID:67QUQBJT 他言語弄るとき、まずヒアドキュメント探すつっても過言じゃ無いんだが…
982デフォルトの名無しさん
2018/02/09(金) 20:58:36.22983デフォルトの名無しさん
2018/02/09(金) 21:23:05.06ID:ukY4fsl4 here => <<~EOM
インデント
出来る
EOM
これ出来るようになって昔書いたソースが結構綺麗になった
インデント
出来る
EOM
これ出来るようになって昔書いたソースが結構綺麗になった
984デフォルトの名無しさん
2018/02/13(火) 11:06:08.61ID:b5aNFBbA ソースにhereドキュメントが多量に含まれてる時点で
キレイじゃねーよw
キレイじゃねーよw
985デフォルトの名無しさん
2018/02/13(火) 21:01:03.94 それな
986デフォルトの名無しさん
2018/02/13(火) 21:31:52.97ID:RM6vxbUw ヒアドキュメントはうまくやると配布するファイルをプログラムのファイル一つにまとめられる。
そういうのは何かのプログラムのインストーラやアップデータには良いかも知れない。
そういうのは何かのプログラムのインストーラやアップデータには良いかも知れない。
987デフォルトの名無しさん
2018/02/14(水) 01:07:32.41ID:eq6pqk6J 全てのスクリプト言語には、ファイルを一つに結合する機能と
コードを圧縮暗号化する機能が必要な気がする
JSにあるアレね
コードを圧縮暗号化する機能が必要な気がする
JSにあるアレね
988デフォルトの名無しさん
2018/02/14(水) 02:24:43.93ID:kFW7p5Uz SQL使うときだなヒアドキュメントは
ORM嫌い
ORM嫌い
989デフォルトの名無しさん
2018/02/14(水) 09:08:25.15ID:1w/9kxzB ああ。そういやSQL文に使ったなあ。
長くなるのが普通だもんなあれって。
長くなるのが普通だもんなあれって。
990デフォルトの名無しさん
2018/02/14(水) 13:42:37.08ID:eEfPvNoj $str = <<'EOF';
エスケープの必要性から解放されたい場合もあるんだよなあ。
これに相当することを C でやるには別ファイルに分けて Makefile で
str_escaped : str_raw
sed 's/\([\"\\]\)/\\\1/g ; s/^/\"/ ; s/$/\"/ ;' < str_raw > str_escaped
みたいにして C の方で
str[] =
#include "str_escaped"
とする必要がある。Perl は本当に便利だ。
EOF
エスケープの必要性から解放されたい場合もあるんだよなあ。
これに相当することを C でやるには別ファイルに分けて Makefile で
str_escaped : str_raw
sed 's/\([\"\\]\)/\\\1/g ; s/^/\"/ ; s/$/\"/ ;' < str_raw > str_escaped
みたいにして C の方で
str[] =
#include "str_escaped"
とする必要がある。Perl は本当に便利だ。
EOF
991デフォルトの名無しさん
2018/02/14(水) 13:50:00.92ID:L6K2VJP2 Pealで正規表現なら、デミリタ変えるだけでいいじゃん
可読性下がるけど
$hoge =~ m!/!;!g;
みたいな
可読性下がるけど
$hoge =~ m!/!;!g;
みたいな
992デフォルトの名無しさん
2018/02/14(水) 19:56:29.61ID:JCOq4GRt 終わりを示す文字列にQEDを使う
993デフォルトの名無しさん
2018/02/14(水) 20:05:36.90ID:eq6pqk6J それが厨二病
994990
2018/02/14(水) 22:39:20.53ID:eEfPvNoj >>991
何を言いたいのかさっぱり解らないが、ひょっとして >>990 に興味持ってくれた?
そうだとしてもやっぱり何を言いたいのかさっぱり解らないのだが。
ちなみに Perl と C を比較してるのであって、sed は関係無いよ。
「これに相当すること」の「これ」とは >>990 全体を Perl コードとして実行した結果のことで、正規表現は何の関係も無い。
大筋としては
・元のテキストはエスケープなどの加工をしないでおきたい。
・エスケープが必要な場合でも目視と手作業なんて論外。自動化したい。
・実行時に別ファイルから読むのではなくプログラムに埋め込みたい。
という前提があって Perl と C でそれぞれどのように実現するかという話だ。
Perl にいくつもあるクォーティングの正確な仕様、Makefile の仕様、C の言語仕様を知ってる人向けだから無理しなくてもいいよ。
>>990 に対してじゃなかったのならごめんね。自意識過剰だったね。
何を言いたいのかさっぱり解らないが、ひょっとして >>990 に興味持ってくれた?
そうだとしてもやっぱり何を言いたいのかさっぱり解らないのだが。
ちなみに Perl と C を比較してるのであって、sed は関係無いよ。
「これに相当すること」の「これ」とは >>990 全体を Perl コードとして実行した結果のことで、正規表現は何の関係も無い。
大筋としては
・元のテキストはエスケープなどの加工をしないでおきたい。
・エスケープが必要な場合でも目視と手作業なんて論外。自動化したい。
・実行時に別ファイルから読むのではなくプログラムに埋め込みたい。
という前提があって Perl と C でそれぞれどのように実現するかという話だ。
Perl にいくつもあるクォーティングの正確な仕様、Makefile の仕様、C の言語仕様を知ってる人向けだから無理しなくてもいいよ。
>>990 に対してじゃなかったのならごめんね。自意識過剰だったね。
995デフォルトの名無しさん
2018/02/15(木) 09:02:00.83ID:8SUVFt/S > 自意識過剰だったね。
そのとおりだろうなw
そのとおりだろうなw
996デフォルトの名無しさん
2018/02/15(木) 23:40:07.21 Perlコードでもレスでも変わらない真実
ぎっしり長文書くやつは無能
ぎっしり長文書くやつは無能
997デフォルトの名無しさん
2018/02/15(木) 23:41:00.25ID:8SUVFt/S 短文なら有能!俺とか!
998デフォルトの名無しさん
2018/02/16(金) 10:21:33.25ID:OW1usLwi 俺も俺も
999デフォルトの名無しさん
2018/02/16(金) 18:54:42.22ID:ZDCA61/e die;
1000デフォルトの名無しさん
2018/02/16(金) 20:51:22.93ID:YSXjevvC ひでぶ
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1457日 21時間 15分 0秒
新しいスレッドを立ててください。
life time: 1457日 21時間 15分 0秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【映画】永野芽郁主演『かくかくしかじか』 公開初日から空席祭り [ネギうどん★]
- 政府備蓄米の価格上乗せが拡大、卸売業者から小売り・外食へは60kgで7593円 [おっさん友の会★]
- 松村沙友理、男性に怒りの問題提起「スナックに行くことに罪悪感がなさ過ぎ」「キャバクラもスナックも一緒」共演者ら反論「全く違う!」 [muffin★]
- 日産 追浜と湘南の2工場閉鎖へ…7工場削減計画 海外はメキシコや南アフリカなど ★2 [蚤の市★]
- 【速報】1人約2万円の現金給付案を立憲・野田代表が発表 食料品の消費税ゼロの財源も示す [パンナ・コッタ★]
- イオンがカリフォルニア産米を販売、これが日本の食料安全保障に… (青沼 陽一郎氏) ★2 [少考さん★]
- 日本人、ついに気ずく… 「ぶっちゃけ日本ってかなり不快な最悪な気候の国だよな」 [271912485]
- 円高時代ってどう経済回すつもりだったんだ?2009~2012輸出57~63兆円、税収38~43兆、2024年輸出額107兆、税収73兆 [921271808]
- 【実況】博衣こよりのえちえち鬼武者🧪★2
- 【悲報】ジークアクス、「鶴巻が2014年を改変しようとしてる」説が有力視されてしまうwwwww [339035499]
- トランプ「もう雑魚とは交渉しない。勝手に関税率決めるから従え」 [624898991]
- 名古屋にできた国内最大「IGアリーナ」に東京や大阪人もビビってしまう… ここで大相撲とBリーグ開催 いいだろ! [452836546]