CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://hibari.2ch.net/php/ )
回答する際はモダンな方法でお願いします
(例 jcode.plではなくEncodeモジュールを使った方法)
理由はもう2012年です。いい加減2000年以前の方法はやめましょう。
最新のPerlを使うほうがかっこいいです。
いつまで勉強しないつもりですか?
過去にとらわれるのはもうやめです。進歩しませんよ。
このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。
http://www.perl.org/get.html
● 2011/10/30 現在の最新版: 5.14.2
▼ 前スレ
Perlについての質問箱 49箱目
http://toro.2ch.net/test/read.cgi/tech/1319953460/
リンク集は >>2-3辺り
Perl 日本語処理の基礎の基礎 >>4辺り
探検
【モダン推奨】Perlについての質問箱 50箱目
レス数が1000を超えています。これ以上書き込みはできません。
2012/01/21(土) 10:56:39.03
2012/01/21(土) 11:38:32.23
[プログラミング自体の経験が無い奴はまずココを読め]
Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/
モダンPerlの世界へようこそ http://gihyo.jp/dev/serial/01/modern-perl/0001
[本]
リャマ: ttp://www.oreilly.co.jp/books/9784873114279/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://ascii.asciimw.jp/books/books/detail/4-7561-3057-7.shtml
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/
[オンラインマニュアル]
最新のドキュメント: ttp://search.cpan.org/dist/perl/
perldoc.jp: ttp://perldoc.jp/
perldoc.perl.org: ttp://perldoc.perl.org/
Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/
モダンPerlの世界へようこそ http://gihyo.jp/dev/serial/01/modern-perl/0001
[本]
リャマ: ttp://www.oreilly.co.jp/books/9784873114279/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://ascii.asciimw.jp/books/books/detail/4-7561-3057-7.shtml
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/
[オンラインマニュアル]
最新のドキュメント: ttp://search.cpan.org/dist/perl/
perldoc.jp: ttp://perldoc.jp/
perldoc.perl.org: ttp://perldoc.perl.org/
2012/01/21(土) 11:39:11.92
[モジュール]
CPAN.com: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/
[テクニック]
Perl メモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perl のページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perl の小技: ttp://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl 5.8 Unicodeメモ]
ttp://www.rwds.net/kuroita/program/Perl_unicode.html (修正)
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
CPAN.com: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/
[テクニック]
Perl メモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perl のページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perl の小技: ttp://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl 5.8 Unicodeメモ]
ttp://www.rwds.net/kuroita/program/Perl_unicode.html (修正)
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
2012/01/21(土) 11:39:41.13
Encodeモジュール (現在のPerl文字コードの標準)
http://search.cpan.org/dist/Encode/
UNICODEでわからなくなったらここを読め
http://perldoc.jp/docs/perl/5.8.1/utf8.pod
http://perldoc.jp/docs/perl/5.10.0/perlunifaq.pod
http://search.cpan.org/dist/Encode/
UNICODEでわからなくなったらここを読め
http://perldoc.jp/docs/perl/5.8.1/utf8.pod
http://perldoc.jp/docs/perl/5.10.0/perlunifaq.pod
2012/01/21(土) 11:40:18.24
1レスで理解できるutf8フラグ
utf8フラグとい名前がまずかったね。
文字列フラグなどという名前だったらよかった。
文字列フラグはPerl固有のものだから
Perlコード外部から渡されるのは文字列ではない。
文字列でなかったらなにか?それはバイナリ。
バイナリを文字として扱いたければ、文字に変換しないといけない。
それがdecode。
ではソースコードに書いてあるのは、文字かバイナリか。
それはuse utf8を使えば文字で、そうでない場合はバイナリ。
話はこれだけ。
utf8フラグとい名前がまずかったね。
文字列フラグなどという名前だったらよかった。
文字列フラグはPerl固有のものだから
Perlコード外部から渡されるのは文字列ではない。
文字列でなかったらなにか?それはバイナリ。
バイナリを文字として扱いたければ、文字に変換しないといけない。
それがdecode。
ではソースコードに書いてあるのは、文字かバイナリか。
それはuse utf8を使えば文字で、そうでない場合はバイナリ。
話はこれだけ。
2012/01/21(土) 13:51:55.46
【プログラミング部】 PHPが100倍速で動くようになったぞー
http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
2012/01/21(土) 21:49:44.50
あのー、重複スレってことないですか?
2012/01/29(日) 11:19:25.66
はてなキーワード > モダン
ttp://d.hatena.ne.jp/keyword/%A5%E2%A5%C0%A5%F3
書いているひとは 1. の意味で書いていそうだけど、読む人は(書いた時期
を考慮して) 2. や 3. の意味で解釈している。
よく印刷した資料に「最新版」とか書くひとがいるけどそれと似てるのかも
しれない。たくさんの最新版のうちどれが最新版なのか分からなくなる。
この場合の正解は版数を書くこと。
モダンの場合は、個別の技術の名称を書くことに相当する。
そうしないと「えっ?いまどきモダンPerl使ってるのかよ、お前w」なんて
ことになる。
ttp://d.hatena.ne.jp/keyword/%A5%E2%A5%C0%A5%F3
書いているひとは 1. の意味で書いていそうだけど、読む人は(書いた時期
を考慮して) 2. や 3. の意味で解釈している。
よく印刷した資料に「最新版」とか書くひとがいるけどそれと似てるのかも
しれない。たくさんの最新版のうちどれが最新版なのか分からなくなる。
この場合の正解は版数を書くこと。
モダンの場合は、個別の技術の名称を書くことに相当する。
そうしないと「えっ?いまどきモダンPerl使ってるのかよ、お前w」なんて
ことになる。
2012/01/29(日) 11:38:31.81
個別の技術は是々非々で議論しましょう。
現状は、モダンという名のせいで盥水とともに赤子を流してしまっています。
現状は、モダンという名のせいで盥水とともに赤子を流してしまっています。
2012/02/03(金) 01:55:40.19
モダンPerlと呼ばれているものは、過去の一時期のスタイルと結びついていて
今はもう使われていない。一方、レガシーPerlと呼ばれているものは現在でも
利用されていて、その名とうらはらに全くレガシーな気がしない。
思うにこれらの名称は、実態を正確に示していない点で失敗だと思う。
そういえば、モダンRubyやレガシーRubyという言葉は聞いたことがない。
名前重要っていうのは本当なんだな。
今はもう使われていない。一方、レガシーPerlと呼ばれているものは現在でも
利用されていて、その名とうらはらに全くレガシーな気がしない。
思うにこれらの名称は、実態を正確に示していない点で失敗だと思う。
そういえば、モダンRubyやレガシーRubyという言葉は聞いたことがない。
名前重要っていうのは本当なんだな。
2012/02/03(金) 07:54:57.41
ルビーはバージョン毎に違うからなあ
新旧をバージョン番号以外で呼ぶ事は今後もないんだろう
新旧をバージョン番号以外で呼ぶ事は今後もないんだろう
2012/02/04(土) 00:24:55.23
83JISは新JISですね。わかります。
2012/02/04(土) 10:44:31.66
2012年なんだから、そろそろ新JISキーボード使おうよってスレですね。
わかります。
わかります。
2012/02/05(日) 16:28:37.59
問題を解決する方法がモダンかどうか、誰もこだわっていない件
2012/02/08(水) 01:37:01.27
今はポストモダンの時代
2012/02/08(水) 01:42:45.73
何がどうなるの?教えて、教えて
2012/02/08(水) 22:53:51.78
結局、モダンって何だったの?
本を売りたかったとか、会社作ってみたとか、そういうことなの?
失敗だったの?
もうモダンには会えないの?
本を売りたかったとか、会社作ってみたとか、そういうことなの?
失敗だったの?
もうモダンには会えないの?
2012/02/09(木) 18:46:51.29
_ , 、
r‐v'´ ̄ `~ く
_. 7,‐、 r‐、 ヽ だったら Perlのはじめて を
(._ ^ヽ|{ 0 _l 0ノ i
ヽ (´ ̄ `_, ヶ ノ 見に行こうよ
`、`ー-ヾ._.// )
/ (_.ノV^) 「クルクルバビンチョパペッピポ、イア!イア!ハスターの
i _ 「
L_ _/ \_ _.ノ
r‐v'´ ̄ `~ く
_. 7,‐、 r‐、 ヽ だったら Perlのはじめて を
(._ ^ヽ|{ 0 _l 0ノ i
ヽ (´ ̄ `_, ヶ ノ 見に行こうよ
`、`ー-ヾ._.// )
/ (_.ノV^) 「クルクルバビンチョパペッピポ、イア!イア!ハスターの
i _ 「
L_ _/ \_ _.ノ
19デフォルトの名無しさん
2012/02/09(木) 22:43:43.29 Perl on Heroku | Hacker News
http://news.ycombinator.com/item?id=3570894
judofyr/perloku - GitHub
https://github.com/judofyr/perloku
http://news.ycombinator.com/item?id=3570894
judofyr/perloku - GitHub
https://github.com/judofyr/perloku
2012/02/10(金) 00:41:07.42
「モダン、ここはどこ?」
2012/02/10(金) 04:35:12.65
ネタが古い
2012/02/11(土) 00:04:56.56
ここはね、パークハイアット東京。
The Perl Confernce Japan の会場だょ。
まもなく、まつもとゆきひろさんのRubyのセッションが始まるょ。
(コーヒーがおいしいょ。)
The Perl Confernce Japan の会場だょ。
まもなく、まつもとゆきひろさんのRubyのセッションが始まるょ。
(コーヒーがおいしいょ。)
2012/02/11(土) 04:05:03.81
ワンライナー [ 一行野郎 OneLiner ]
2012/02/21(火) 06:43:24.21
書き込みテスト
2012/02/21(火) 23:13:43.25
結局、モダンPerlって何だったんですかね?
2012/02/22(水) 14:11:38.18
Perlの長所であり短所であるTMTOWTDIによるコードの難読化を共通ルールっぽいテンプレで改善しようという風潮
2012/02/22(水) 21:13:46.02
変なこと考えるより、ポータブルCみたいにポータブルPerlで書けばいいと
思うんでそうしてる。書きやすいし読みやすい、おまけに長期的に保守
できる。これもTMTOWTDIのひとつの形態。
思うんでそうしてる。書きやすいし読みやすい、おまけに長期的に保守
できる。これもTMTOWTDIのひとつの形態。
2012/02/23(木) 21:47:31.36
長期的に保守できる=いつまでもモダン。
2012/02/24(金) 15:24:49.40
2012/02/25(土) 00:48:11.36
気が合いそうですね
2012/02/25(土) 00:58:50.25
モダンが嫌いな人って、新しいものが嫌い。
だからデザインパターンもリファクタリングも
アジャイルも嫌い
だからデザインパターンもリファクタリングも
アジャイルも嫌い
2012/02/25(土) 01:20:21.71
そう捉えてるとするならば、ちゃんとコトを理解できていない
2012/02/25(土) 04:47:56.86
Perlの評価の8割はCPANだよね
Rubyの評価の8割はRailsだよね
Rubyの評価の8割はRailsだよね
2012/02/25(土) 13:39:26.50
残りの2割はPerl4ですか
2012/02/25(土) 13:55:49.15
Perl4はマイナス評価だよ。
2012/02/25(土) 14:20:32.95
加えてPerl6もマイナス評価だからPerlはPerl5が支えているといっても寝言ではない
2012/02/26(日) 21:09:36.58
38デフォルトの名無しさん
2012/03/02(金) 09:42:04.91 >>35
うそつけ。このスレを潰そうとする連中はみんなPerl4時代のコードしか書かないじゃんか。
うそつけ。このスレを潰そうとする連中はみんなPerl4時代のコードしか書かないじゃんか。
2012/03/03(土) 00:51:07.30
Perl4も現役で使われているのでモダンですよ。
モダンではないのは(らくだ本が出版されていなかった)Perl3以前ですよ。
もちろん異論はありませんね?
モダンではないのは(らくだ本が出版されていなかった)Perl3以前ですよ。
もちろん異論はありませんね?
2012/03/03(土) 00:52:39.18
現役でサポートされてるディストリで
Perl4が入っているものを教えて下さいよw
Perl4が入っているものを教えて下さいよw
2012/03/03(土) 04:06:39.76
5.8が出てから今年で10年。
それより前は昔の実装でおk。
それより前は昔の実装でおk。
2012/03/03(土) 10:52:44.75
こうして世界は騙された!!
2012/03/03(土) 11:06:06.57
ディストリインストールできる人はPerlもインストールできるんじゃね?
2012/03/03(土) 15:18:20.72
まさかオマイラ、ディストリ付属のperlをそのまま使ってる、なんてことないよな?
2012/03/03(土) 16:17:57.11
ディストリのパッケージ以外からperlとかモジュールとか入れたらシステムの安定性が壊れる
パッケージが提供されてないモジュールを野良ビルドで入れたりしない
cpanm、perlbrew、local::libを使うなどもってのほか
↓のスレ読んで出直せ
http://toro.2ch.net/test/read.cgi/tech/1217851121/544-
パッケージが提供されてないモジュールを野良ビルドで入れたりしない
cpanm、perlbrew、local::libを使うなどもってのほか
↓のスレ読んで出直せ
http://toro.2ch.net/test/read.cgi/tech/1217851121/544-
2012/03/03(土) 16:36:36.95
2012/03/03(土) 19:02:12.13
>>45
root管理のパッケージと混ぜないために、cpanmやlocal::libを使うのよ。
ユーザ権限でユーザ領域に突っ込めるから、バックアップも楽だし、
いらなくなったらユーザごと消せばいいし。
Perl自体は、特に必要ない限り、システム付属使ってるけど。
root管理のパッケージと混ぜないために、cpanmやlocal::libを使うのよ。
ユーザ権限でユーザ領域に突っ込めるから、バックアップも楽だし、
いらなくなったらユーザごと消せばいいし。
Perl自体は、特に必要ない限り、システム付属使ってるけど。
2012/03/06(火) 23:18:42.91
ユーザが移行するのは、今までよりも分かりやすいもの、使いやすいもの。
今までよりも新しいもの、多機能なもの、ではない。
今までよりも新しいもの、多機能なもの、ではない。
2012/03/06(火) 23:35:43.27
モダンなものってたいがいわかりやすくて
使いやすくなってるよね。
Time::Pieceとか。
使いやすくなってるよね。
Time::Pieceとか。
2012/03/06(火) 23:43:48.61
でもそうじゃないから、"モダン"っていうラベルを付けて強引に勧めて
いるんだね。分かりやすかったら、使いやすかったら、ほっておいても
自然に使われるだろうから、わざわざ無理強いする必要はないもんね。
いるんだね。分かりやすかったら、使いやすかったら、ほっておいても
自然に使われるだろうから、わざわざ無理強いする必要はないもんね。
2012/03/06(火) 23:54:43.29
> 分かりやすかったら、使いやすかったら、ほっておいても
> 自然に使われるだろうから
それじゃ時間がかかりすぎる。
ようはオールドタイプはさっさと消えろってこと。
ネットの古い情報もさっさと消えて欲しいし、
今頃古いやり方を教えるやつもさっさと消えて欲しい。
だから俺は古いやり方を教えている奴を見つけたら
今はこうやる。こっちのほうがもっと簡単だと
情報を広めている。
> 自然に使われるだろうから
それじゃ時間がかかりすぎる。
ようはオールドタイプはさっさと消えろってこと。
ネットの古い情報もさっさと消えて欲しいし、
今頃古いやり方を教えるやつもさっさと消えて欲しい。
だから俺は古いやり方を教えている奴を見つけたら
今はこうやる。こっちのほうがもっと簡単だと
情報を広めている。
2012/03/07(水) 02:54:40.01
新しいけど使いづらいって、自分で言っているようなもんだな
2012/03/07(水) 03:03:09.93
面倒なやつは無視が一番。
2012/03/07(水) 03:57:57.80
CPANをすべてRubyが補完してくれたらどんなにいいだろう。
2012/03/07(水) 23:12:02.32
end
end
end
end
あぁ、終わりだもうだめだぁ
end
end
end
あぁ、終わりだもうだめだぁ
2012/03/08(木) 00:42:07.15
まあモダンなPerlを知らなければ、
Perl使いとみなせない時代にはなってるよね。
Perl使いとみなせない時代にはなってるよね。
2012/03/08(木) 00:51:37.53
もちろん情報は日々取得してるから知られてはいるんだろうけど、
使いやすくなかったらいつまでたっても使われることはないよね。
使いやすくなかったらいつまでたっても使われることはないよね。
2012/03/08(木) 01:03:50.28
使われてるけどね。
Perlで作られてる他のプロジェクト見たこと有る?
(昔に作られて放置されてるのは除く)
Jcodeとか海外じゃ全く使われてないから。
Perlで作られてる他のプロジェクト見たこと有る?
(昔に作られて放置されてるのは除く)
Jcodeとか海外じゃ全く使われてないから。
2012/03/08(木) 23:37:48.23
2012/03/09(金) 01:54:01.68
確かに Time::Piece 以外は見たことがないね
2012/03/09(金) 02:06:51.28
>>58
海外で使われていないと、自分が日本語を処理するときに使っちゃいけないの?
日本では使ってもいいんでしょ?
そもそもモダンっていうのは禁止して不便にすることなの?
それにJcodeはオブジェクト指向なんだし十分モダンだと思うけどな
海外で使われていないと、自分が日本語を処理するときに使っちゃいけないの?
日本では使ってもいいんでしょ?
そもそもモダンっていうのは禁止して不便にすることなの?
それにJcodeはオブジェクト指向なんだし十分モダンだと思うけどな
2012/03/10(土) 00:38:59.17
モダンPerlでいうところの"モダン"は、
1.リリース時期のことをいっているのか
2.実装手法のことをいっているのか
3.はたまたインタフェースのことをいっているのか
ところで、インタフェースっていうのは
a.新しければ新しいほど好ましいのか
b.古ければ古いほど好ましいのか
このあたりの見解が一致しないと、具体的なモノがモダンなのか
そうでないのかが変ってしまうし「これはモダンだ」と言ったか
らって、そのものに価値があるのか無いのかは別問題になる
1.リリース時期のことをいっているのか
2.実装手法のことをいっているのか
3.はたまたインタフェースのことをいっているのか
ところで、インタフェースっていうのは
a.新しければ新しいほど好ましいのか
b.古ければ古いほど好ましいのか
このあたりの見解が一致しないと、具体的なモノがモダンなのか
そうでないのかが変ってしまうし「これはモダンだ」と言ったか
らって、そのものに価値があるのか無いのかは別問題になる
2012/03/10(土) 01:24:18.18
1.がモダンでも2.がモダンでも利用者にとって関係なく、単に供給側
の自己満足になってしまう。3.のことだとすると新しいもの好きはa.で、
人柱をかってでることになるわけで、そうでないならb.で問題ない。
の自己満足になってしまう。3.のことだとすると新しいもの好きはa.で、
人柱をかってでることになるわけで、そうでないならb.で問題ない。
2012/03/10(土) 02:28:05.91
2012/03/10(土) 02:38:52.80
モダンの定義は分かったけど、それ価値あんの?
2012/03/10(土) 02:45:52.84
あるよ。
開発速度が上がった。
少ないコードで、今まで以上のことができる。
なにより、プログラミング一般とPerlに関して
深い知識を手に入れられたのがいいね。
オブジェクト指向言語、関数型言語、
継承。ポリモーフィズム。mixin、
アスペクト指向、O/Rマッパー
フレームワーク、MVC・・・etc
Perlだけじゃ、世界が狭いからほかの言語をやるといい。
そうして戻ってくると、自然とモダンPerlな体になってるよ。
開発速度が上がった。
少ないコードで、今まで以上のことができる。
なにより、プログラミング一般とPerlに関して
深い知識を手に入れられたのがいいね。
オブジェクト指向言語、関数型言語、
継承。ポリモーフィズム。mixin、
アスペクト指向、O/Rマッパー
フレームワーク、MVC・・・etc
Perlだけじゃ、世界が狭いからほかの言語をやるといい。
そうして戻ってくると、自然とモダンPerlな体になってるよ。
2012/03/10(土) 02:50:23.82
考え方が間違っていたかもしれない。
モダンPerlとは、Perlがモダンなのではなく
プログラマ的にモダンな開発手法、
それをPerlに取り入れたものではないのか?
よくよく考えたら、最近はやりのほかの言語の機能を
PerlでやれるようにしたがモダンPerlなモジュールではないだろうか。
モダンPerlとは、Perlがモダンなのではなく
プログラマ的にモダンな開発手法、
それをPerlに取り入れたものではないのか?
よくよく考えたら、最近はやりのほかの言語の機能を
PerlでやれるようにしたがモダンPerlなモジュールではないだろうか。
2012/03/10(土) 11:58:33.08
モダンPerlはアンチPerlなのか...
それでPerl原理主義者の抵抗にあっているという構図か
それでPerl原理主義者の抵抗にあっているという構図か
2012/03/10(土) 12:24:09.53
ニーズにマッチしないモダンならいらないよ。
2012/03/10(土) 12:38:37.16
便利ならそれでよくて、モダンという線引きは要らないってことでおk?
2012/03/10(土) 12:41:50.76
お好み焼きとの違いがいまだに覚えられない
2012/03/10(土) 15:44:56.75
どうにも架空臭がするモダンPerlだが最近ますますそう感じている。
(モダンPerlを構成するといわれる)個別の要素の議論で十分だと思う。
ひと括りにしてしまうせいで大事なものまで一緒に捨てられてしまう。
(モダンPerlを構成するといわれる)個別の要素の議論で十分だと思う。
ひと括りにしてしまうせいで大事なものまで一緒に捨てられてしまう。
2012/03/10(土) 23:59:10.17
モダンPerlではなく、
Perlでモダンプログラミングといえば、
面白いように情報弱者が落ちていく。
Perlでモダンプログラミングといえば、
面白いように情報弱者が落ちていく。
2012/03/11(日) 00:48:24.53
モダンっていう言い方が古臭い
2012/03/11(日) 01:03:16.37
トレンディPerl
2012/03/11(日) 02:15:55.91
単に"モダンPerl"と言いたいだけにしか思えない
Perlのリリースが予定通りじゃなかったり、らくだ本の改版に10年もかかっ
たりするからって、無理して話題を作る必要はない
5.14.3がリリースされない今はらくだフォーでつなぐのが吉
Perlのリリースが予定通りじゃなかったり、らくだ本の改版に10年もかかっ
たりするからって、無理して話題を作る必要はない
5.14.3がリリースされない今はらくだフォーでつなぐのが吉
2012/03/11(日) 02:21:20.79
普通にPerl5を使えばいいだけ。
2012/03/11(日) 04:00:30.75
Perlのオブジェクト指向はどう考えてもいびつでおかしいのに
それを主張しても理解できない人の戯言にされてしまう。
それを主張しても理解できない人の戯言にされてしまう。
2012/03/11(日) 04:48:04.26
お好み焼きは食えるけど、モダンPerlは食えないね。
2012/03/11(日) 05:14:03.94
2012/03/11(日) 08:47:05.63
>>76
らくだフォー?
らくだフォー?
2012/03/11(日) 12:35:38.71
らくだフォア
モダンはとおくに
なりにけり
モダンはとおくに
なりにけり
2012/03/11(日) 12:59:34.63
2012/03/11(日) 17:32:12.27
またそんな青くさいこといちゃって、このフォーティーンめ
2012/03/11(日) 19:50:09.03
モダン推奨者は自分が社会に適合しようとするんじゃなくて、社会を
自分に適合させようとしている。
結果、当然うまくいかなくて挫折する。
その繰り返し。
自分に適合させようとしている。
結果、当然うまくいかなくて挫折する。
その繰り返し。
2012/03/11(日) 20:47:59.28
2012/03/11(日) 21:48:16.89
モダン、モダンとか言って周りに合わせられないのは単に能力がないだけでしょ
2012/03/11(日) 22:00:36.17
2012/03/12(月) 00:38:19.94
ググって何も出なかったら「ありません。」で終わりだもの、今のひとは。
2012/03/12(月) 01:08:30.57
2012/03/12(月) 12:37:32.86
2012/03/12(月) 23:57:29.35
別の手ってYahoo!か?
2012/03/13(火) 02:54:48.40
質問箱よりOKWaveがお勧め。
2012/03/15(木) 23:34:57.79
どうやってCPAN使いこなせるようになるんだよ…。
2012/03/16(金) 00:44:44.19
今までのインタフェースで実装できなくてだめだめなのをモダンPerlとか
言って取繕ってるだけでしょ
言って取繕ってるだけでしょ
2012/03/16(金) 01:02:24.92
perl6のコンセプトを先取りしてるものではないの?
2012/03/16(金) 02:27:51.26
ttp://www.amazon.co.jp/dp/486267108X/
2012/03/16(金) 08:17:31.69
>>95
なんでそういう悪意のある言い方するの?
なんでそういう悪意のある言い方するの?
2012/03/16(金) 15:52:29.33
新しい手法・置き換えるモジュールがあれば、それを採用しましょうってのがモダンPerl。
Fatalプラグマよりautodieプラグマ。
switch,caseよりgiven,when。
evalとif($@)よりTry::Tiny。
という感じ。
置き換えられないモジュールを置き換えようとするのは多分違う。
Fatalプラグマよりautodieプラグマ。
switch,caseよりgiven,when。
evalとif($@)よりTry::Tiny。
という感じ。
置き換えられないモジュールを置き換えようとするのは多分違う。
100デフォルトの名無しさん
2012/03/16(金) 15:57:44.21101デフォルトの名無しさん
2012/03/16(金) 15:59:56.20 www.amazon.co.jp/Modern-Perl-Chromatic/dp/0977920178/
どんな本なんだろう
どんな本なんだろう
102デフォルトの名無しさん
2012/03/16(金) 16:35:08.87103デフォルトの名無しさん
2012/03/16(金) 17:04:15.50 >>102
無料でも読めるのか。トントン
無料でも読めるのか。トントン
104デフォルトの名無しさん
2012/03/16(金) 21:48:33.88 モダンPerlは無駄なもの
なぜなら業界歴20年の俺が理解できなかったからだ
そこから役に立たないものだと結論づけた
なぜなら業界歴20年の俺が理解できなかったからだ
そこから役に立たないものだと結論づけた
105デフォルトの名無しさん
2012/03/16(金) 23:16:39.05 新しいことについていけない老害の人って。。。
106デフォルトの名無しさん
2012/03/17(土) 00:38:01.50 プログラムはプログラマだけのものじゃなくて、依頼者や使用者のものでも
あって、依頼者視点での保守、使用者視点での保守をしていかないとならない。
その場限りのソフトウェアならモダンPerlでも構わないかもしれないが、
保守するのであれば、流行で作ったものは時間が経つと「変な髪形」になっ
てしまう。それが分かってないのは、おまいのしりが青い証拠だ。
あって、依頼者視点での保守、使用者視点での保守をしていかないとならない。
その場限りのソフトウェアならモダンPerlでも構わないかもしれないが、
保守するのであれば、流行で作ったものは時間が経つと「変な髪形」になっ
てしまう。それが分かってないのは、おまいのしりが青い証拠だ。
107デフォルトの名無しさん
2012/03/17(土) 00:43:57.57 じゃあPerl使うなってことになるな。
108デフォルトの名無しさん
2012/03/17(土) 00:45:13.60 一番人を集められるのはJavaかPHPだよね。
109デフォルトの名無しさん
2012/03/17(土) 00:54:53.13 >>106
受託ってやつ?
ウェブサービス作ってるんじゃないの?
俺にとってプログラムは自社のもので、自分たちが
開発しやすいように最善の方法を目指してるんだけどさ、
客に足を引っ張られるのって、ちょっと可哀想に思う。
受託ってやつ?
ウェブサービス作ってるんじゃないの?
俺にとってプログラムは自社のもので、自分たちが
開発しやすいように最善の方法を目指してるんだけどさ、
客に足を引っ張られるのって、ちょっと可哀想に思う。
110デフォルトの名無しさん
2012/03/17(土) 02:45:39.65 >>106
そういう時はバージョンと使用するライブラリを指定すればいいんだよ。
そういう時はバージョンと使用するライブラリを指定すればいいんだよ。
111デフォルトの名無しさん
2012/03/17(土) 02:46:55.30 依頼者は何も指定しなかった場合、
古いPerllで作ろう。
それが依頼者のためになるんだ。
古いPerllで作ろう。
それが依頼者のためになるんだ。
112デフォルトの名無しさん
2012/03/17(土) 03:00:54.49 当然4.036よりもさらに前だよな?
113デフォルトの名無しさん
2012/03/17(土) 03:04:12.17114デフォルトの名無しさん
2012/03/17(土) 16:11:00.12 >>112
はい
はい
115デフォルトの名無しさん
2012/03/18(日) 01:23:00.96 逆になんでモダンにこだわるの?変なとこにこだわって成果がでないんじゃ
本末転倒じゃないの?成果とモダンとどっちが優先なの?
本末転倒じゃないの?成果とモダンとどっちが優先なの?
116デフォルトの名無しさん
2012/03/18(日) 01:53:27.60117デフォルトの名無しさん
2012/03/18(日) 03:15:04.19118デフォルトの名無しさん
2012/03/18(日) 07:42:28.32 一旦モダンって名前を頭から消して普通にPerlコードを書かせてみるとする
そいつのコードがKENTみたいなやつだとして、それが他の人が誰でも保守できるようなシロモノになるとは到底思えない
そいつのコードがKENTみたいなやつだとして、それが他の人が誰でも保守できるようなシロモノになるとは到底思えない
119デフォルトの名無しさん
2012/03/18(日) 16:06:49.73 >>117
そんなこと言ってないだろ、どこを読んでんだ?青尻くん
そんなこと言ってないだろ、どこを読んでんだ?青尻くん
120デフォルトの名無しさん
2012/03/18(日) 16:17:39.87 とうとうホモスレになったのか
121デフォルトの名無しさん
2012/03/18(日) 22:44:09.24 青尻くんとこは結構自由みたいだけど、個人事業主なの?
122デフォルトの名無しさん
2012/03/20(火) 19:21:50.84 これまでの積み重ねがないと例えば会社が終わりになったときに技術的にも
全てを失うことになるよ。
全てを失うことになるよ。
123デフォルトの名無しさん
2012/03/20(火) 19:29:12.55 モダンなんかやってて技術の積み重ねになるわけがない。
124デフォルトの名無しさん
2012/03/20(火) 20:23:18.91 わざわざ不便なものを選んで苦しむのが積み重ねか
古いんだよそんなスポ根的発想は!
古いんだよそんなスポ根的発想は!
125デフォルトの名無しさん
2012/03/20(火) 22:46:00.37 青尻くんは、プログラムは実現したいこととその解決方法の両方を記述する
ためのものだってこと、ちゃんと理解してるの?そうか、してないのかまだ
青いのか。
ためのものだってこと、ちゃんと理解してるの?そうか、してないのかまだ
青いのか。
126デフォルトの名無しさん
2012/03/20(火) 23:19:46.15 普通にわかれよ。
モダンperlがいいものだとしたら普通に普及する。
駄目なもので無理やり普及させたいのには訳がある。
本や講演などで稼ぎたい人もいるってこった。
モダンperlがいいものだとしたら普通に普及する。
駄目なもので無理やり普及させたいのには訳がある。
本や講演などで稼ぎたい人もいるってこった。
127デフォルトの名無しさん
2012/03/21(水) 01:55:19.27 それには付き合えないけどね。
128デフォルトの名無しさん
2012/03/21(水) 08:37:14.83 > モダンperlがいいものだとしたら普通に普及する。
実際に普及してるよな。
実際に普及してるよな。
129デフォルトの名無しさん
2012/03/21(水) 09:55:42.06 半径5m以内の、CPANモジュールも使えない環境を見て言ってるんだろうな。
130デフォルトの名無しさん
2012/03/21(水) 22:40:10.92 そうだな。青尻くんが青筋立ててキーキーいう必要はないはずだよな?
131デフォルトの名無しさん
2012/03/23(金) 11:52:12.45 ステマってやつだな
132デフォルトの名無しさん
2012/03/24(土) 12:30:46.46 かわいいの♪ステマつげるぅ〜♪
いーないーな♪それいいなぁー♪
つげるタイプの魔法だょ〜♪
いーないーな♪それいいなぁー♪
つげるタイプの魔法だょ〜♪
133デフォルトの名無しさん
2012/03/25(日) 07:17:46.89 ステルスマーケティング用語か。個々の技術とまったく関係ない話だな。
要は互換性のなさをごまかそうとしているんだな。ばればれだぞw
要は互換性のなさをごまかそうとしているんだな。ばればれだぞw
134デフォルトの名無しさん
2012/03/25(日) 16:36:42.85 >>118
で、きみの書いた誰でも保守できるようなコードはどこにあるの?
で、きみの書いた誰でも保守できるようなコードはどこにあるの?
135デフォルトの名無しさん
2012/03/27(火) 21:08:40.38 長期に渡る保守が予想されるソフトウェアは一時期の流行に合わせて
書くのではなく、将来を見据えた記述をするのが正解。
書くのではなく、将来を見据えた記述をするのが正解。
136デフォルトの名無しさん
2012/03/27(火) 21:29:13.75 意固地に10年前の書き方を押し付ける必要はない
今使える書き方と今使えるモジュールで書けばいい
今使える書き方と今使えるモジュールで書けばいい
137デフォルトの名無しさん
2012/03/28(水) 05:29:06.98 今使えない書き方で書けと読めてるお前がおかしい
ワンライナーや売り切り逃げ切りのソフトならお好きにどうぞ
ワンライナーや売り切り逃げ切りのソフトならお好きにどうぞ
138デフォルトの名無しさん
2012/03/28(水) 06:14:36.83 モダンは互換性がないのと将来のメンテナンスが不安なのが弱点か。
モダンゆえに時間軸の過去も未来もだめってことか。それは困る。
モダンゆえに時間軸の過去も未来もだめってことか。それは困る。
139デフォルトの名無しさん
2012/03/28(水) 06:17:08.97 お花を大切に
140デフォルトの名無しさん
2012/03/28(水) 06:46:19.55141デフォルトの名無しさん
2012/03/28(水) 21:48:50.07 素のPerlや標準モジュールが思いつかないあたり、いい、すごくいいよ、
青尻くん。だんだん気に入ってきた。
青尻くん。だんだん気に入ってきた。
142デフォルトの名無しさん
2012/03/28(水) 22:59:03.49 たとえば標準モジュールの例としては、
http://perldoc.perl.org/index-modules-A.html
・文字コード関係
Encodeモジュール
(Jcodeは×)
・日付関係
Time::Piece、Time::Seconds
(もろもろある日付モジュールは×)
・オブジェクト指向関係
Object::Accessor、Class::Struct
データベース関係(ファイル以外)は、何もありません。
>>141が言っていることはこういう意味です。
http://perldoc.perl.org/index-modules-A.html
・文字コード関係
Encodeモジュール
(Jcodeは×)
・日付関係
Time::Piece、Time::Seconds
(もろもろある日付モジュールは×)
・オブジェクト指向関係
Object::Accessor、Class::Struct
データベース関係(ファイル以外)は、何もありません。
>>141が言っていることはこういう意味です。
143デフォルトの名無しさん
2012/03/28(水) 23:57:43.96 がんばって標準モジュールを列記してみたものの、やっぱり素のPerlは
思いつかないところ、青尻くん、すばらしい。すごくいい。
「モダンPerl使いなのでlocaltimeは使えません。」キリッ
職場で一度言ってみたい。。。試用期間で終わるだろうけどw
思いつかないところ、青尻くん、すばらしい。すごくいい。
「モダンPerl使いなのでlocaltimeは使えません。」キリッ
職場で一度言ってみたい。。。試用期間で終わるだろうけどw
2012/03/29(木) 00:40:36.87
>>143
localtimeは、Time::Pieceで使うよw
標準モジュールのTime::Pieceが素のPerlを拡張してくれるのに、
今更配列のインデックスで年取得して+1900とかする
冗長なコード書くバカいるのかい?
localtimeは、Time::Pieceで使うよw
標準モジュールのTime::Pieceが素のPerlを拡張してくれるのに、
今更配列のインデックスで年取得して+1900とかする
冗長なコード書くバカいるのかい?
2012/03/29(木) 01:26:41.94
2012/03/29(木) 02:28:11.13
> 素のPerlや標準モジュールが思いつかないあたり
って言っておきながら、標準モジュールをあげたら今度は
> がんばって標準モジュールを列記してみたものの、やっぱり素のPerlは
> 思いつかないところ
もしかして、自分の知らない標準モジュールばっかりで
方向転換したのかいな?
って言っておきながら、標準モジュールをあげたら今度は
> がんばって標準モジュールを列記してみたものの、やっぱり素のPerlは
> 思いつかないところ
もしかして、自分の知らない標準モジュールばっかりで
方向転換したのかいな?
147デフォルトの名無しさん
2012/03/30(金) 00:32:49.44 ぷぷぷ。
148デフォルトの名無しさん
2012/03/30(金) 01:00:11.52 モダンPerlとそうでないPerlとの違い、メリットについてもっと教えておくれ
2012/03/30(金) 02:00:07.89
標準モジュールを使いこなすのがモダン。
そうでないものは単に勉強不足なだけ。
そうでないものは単に勉強不足なだけ。
150デフォルトの名無しさん
2012/03/30(金) 21:55:40.66 なんだ、そうだったのか。てっきりlocaltimeも満足に使えないのかと
思ってたよ。失敬、失敬、こりゃ失敬。
思ってたよ。失敬、失敬、こりゃ失敬。
2012/03/31(土) 00:55:04.25
念のため言っとくがlocaltimeから
リストコンテキストで取得するのは古いやり方だからな。
最近のやり方はlocaltimeからTime::Pieceオブジェクトを返す方法。
もちろん標準モジュール。
リストコンテキストで取得するのは古いやり方だからな。
最近のやり方はlocaltimeからTime::Pieceオブジェクトを返す方法。
もちろん標準モジュール。
152デフォルトの名無しさん
2012/03/31(土) 01:09:11.56 で、Time::Pieceのインタフェースってlocaltimeと互換性あるの?
例えばリストコンテキストで使うと同じように値が戻ってくるの?
例えばリストコンテキストで使うと同じように値が戻ってくるの?
2012/03/31(土) 01:15:37.67
>>152
% perl -MTime::Piece -E'say (localtime);say scalar localtime;say localtime->datetime'
% perl -MTime::Piece -E'say (localtime);say scalar localtime;say localtime->datetime'
154デフォルトの名無しさん
2012/03/31(土) 01:19:35.68 しばらくメリットを考えてみる。
155デフォルトの名無しさん
2012/03/31(土) 02:46:36.36 職場にようやく5.8が入ったんでよーし、これからはモダンPerlだぞ!と
意気込んできたらTime::Pieceは5.10以上と知ってがっかり。
らくだ本に載ってるTime::localtimeを使って愛想笑いでごまかすしかない。
意気込んできたらTime::Pieceは5.10以上と知ってがっかり。
らくだ本に載ってるTime::localtimeを使って愛想笑いでごまかすしかない。
2012/03/31(土) 07:54:16.78
その職場に5.10が入るのは10年後であった。
そしてcpanmやperlbrewを入れることは全面禁止されていた。
そしてcpanmやperlbrewを入れることは全面禁止されていた。
2012/03/31(土) 10:15:27.26
そんなんで仕事できるの?w
少なくとも効率が悪いね。
少なくとも効率が悪いね。
2012/03/31(土) 11:16:41.36
古い所が新しい所に
あっさり追い抜かれる原因の一つである。
あっさり追い抜かれる原因の一つである。
159デフォルトの名無しさん
2012/03/31(土) 12:09:29.38 やっぱりモダンっていうのは供給者側の視点であって、利用者側の視点が
抜け落ちているな。残念。
抜け落ちているな。残念。
2012/03/31(土) 13:05:29.17
利用者?
俺は利用者なんだが。
勉強しない奴に合わせる理由なんてないよ。
俺は利用者なんだが。
勉強しない奴に合わせる理由なんてないよ。
161デフォルトの名無しさん
2012/03/31(土) 15:55:14.37 おれに合わせる必要はない。逆におれはおれでperl4が使われているところも
あるから、がんばってlocaltimeで書くと。需要ベースで考えるしかない。
残念。
あるから、がんばってlocaltimeで書くと。需要ベースで考えるしかない。
残念。
162デフォルトの名無しさん
2012/03/31(土) 17:19:27.03 まあゆっくりやっていこう。モダンPerlにタイムリミットがあるわけでなし。
2012/03/31(土) 19:21:56.77
古いPerlにはタイムリミットあるけどな。
Perl4のサポート期間は10年ぐらい前に終わっていそうだけどw
Perl4のサポート期間は10年ぐらい前に終わっていそうだけどw
2012/03/31(土) 19:22:54.88
perl4の需要はすでに99.9%無い
かろうじて残っているような需要に対応する必要はない。
かろうじて残っているような需要に対応する必要はない。
165デフォルトの名無しさん
2012/03/31(土) 20:22:18.67 お前に期待してないから大丈夫だ。
2012/03/31(土) 21:07:02.42
167デフォルトの名無しさん
2012/03/31(土) 22:03:37.68 そうだね。
2012/04/01(日) 12:23:36.71
windowsXp:ActivePerl環境で、perlをタスクスケジューラからバックグラウンドで実行させたい。
wperl.exeで実行すればよいとgoogle先生が教えてくれたんだけど、
↓でやっても実行時にウィンドウが一瞬だけ開いてしまう。
C:\Perl\bin\wperl.exe sample.pl
↓だと↑より長くウィンドウが表示されるので、wperl.exeが効いていないわけではないっぽい。
C:\Perl\bin\perl.exe sample.pl
うーん、なぜだ
誰か教えてください
wperl.exeで実行すればよいとgoogle先生が教えてくれたんだけど、
↓でやっても実行時にウィンドウが一瞬だけ開いてしまう。
C:\Perl\bin\wperl.exe sample.pl
↓だと↑より長くウィンドウが表示されるので、wperl.exeが効いていないわけではないっぽい。
C:\Perl\bin\perl.exe sample.pl
うーん、なぜだ
誰か教えてください
169デフォルトの名無しさん
2012/04/01(日) 19:58:44.51 タスクスケジューラに設定したのはwperl.exeではなくバッチファイルと予想。
170デフォルトの名無しさん
2012/04/02(月) 01:47:27.43 % pp --gui --verbose --output=sample.exe sample.pl
でスクリプトをexeファイルにする。
ttp://search.cpan.org/~rschupp/PAR-1.005/lib/PAR/Tutorial.pod
でスクリプトをexeファイルにする。
ttp://search.cpan.org/~rschupp/PAR-1.005/lib/PAR/Tutorial.pod
171168
2012/04/03(火) 00:54:00.46 デバッガあててみたら↓が原因だった
our $mech = new WWW::Mechanize(autocheck => 1);
手前は中で何やってるんだよ・・・
これ以上解析するのはめんどいが、
ウィンドウが表示されるのは耐え難いので
暇なときに中をのぞいてやる
>>170
なんかすごそう
暇なときにやってみる
our $mech = new WWW::Mechanize(autocheck => 1);
手前は中で何やってるんだよ・・・
これ以上解析するのはめんどいが、
ウィンドウが表示されるのは耐え難いので
暇なときに中をのぞいてやる
>>170
なんかすごそう
暇なときにやってみる
172営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 01:50:55.99 ハッシュにblessしたオブジェクトのプロパティに対してlvalue属性つきのサブルーチンを用意しようとしています。
単純なアクセサなので呼び出されたときにAUTOLOADで補足してインストールするようにしています。
package Config;
sub new { my ($class) = @_; bless { name => 'foo', }, $class; }
sub AUTOLOAD {
no strict 'refs';
my ($self) = @_;
our $AUTOLOAD;
if ($AUTOLOAD =~ /.*::(.*)\z/) {
*$AUTOLOAD = sub : lvalue { my ($self) = @_; $self->{$1}; };
}
goto &$AUTOLOAD;
}
sub DESTROY {} # 一応・・
package main;
my $obj = Config->new;
print $obj->name,"\n"; #=>'foo'
$obj->name = 'bar';
print $obj->name,"\n"; #=>'bar'
これは正常に動作しますが、mainパッケージの最初のprint文をコメントアウトした場合や
新たなプロパティをセットしようとした場合↓にはAUTOLOADが呼ばれず(AUTOLOADに行く前に?)エラーとなります。
$obj->update = '2012/4/8'; => Can't modify non-lvalue subroutine call at...
回避方法あるでしょうか?
単純なアクセサなので呼び出されたときにAUTOLOADで補足してインストールするようにしています。
package Config;
sub new { my ($class) = @_; bless { name => 'foo', }, $class; }
sub AUTOLOAD {
no strict 'refs';
my ($self) = @_;
our $AUTOLOAD;
if ($AUTOLOAD =~ /.*::(.*)\z/) {
*$AUTOLOAD = sub : lvalue { my ($self) = @_; $self->{$1}; };
}
goto &$AUTOLOAD;
}
sub DESTROY {} # 一応・・
package main;
my $obj = Config->new;
print $obj->name,"\n"; #=>'foo'
$obj->name = 'bar';
print $obj->name,"\n"; #=>'bar'
これは正常に動作しますが、mainパッケージの最初のprint文をコメントアウトした場合や
新たなプロパティをセットしようとした場合↓にはAUTOLOADが呼ばれず(AUTOLOADに行く前に?)エラーとなります。
$obj->update = '2012/4/8'; => Can't modify non-lvalue subroutine call at...
回避方法あるでしょうか?
173172
2012/04/07(土) 02:55:30.64 投稿の際に行数を節約しようと修正した部分で動かないところがありました
×*$AUTOLOAD = sub : lvalue { my ($self) = @_; $self->{$1}; };
my $name = $1;
*$AUTOLOAD = sub : lvalue { my ($self) = @_; $self->{$name}; };
×*$AUTOLOAD = sub : lvalue { my ($self) = @_; $self->{$1}; };
my $name = $1;
*$AUTOLOAD = sub : lvalue { my ($self) = @_; $self->{$name}; };
2012/04/07(土) 17:14:55.67
package _Config;
our $AUTOLOAD;
sub new { bless { name => 'foo' }, shift }
sub AUTOLOAD : lvalue {
my ($self) = @_;
(my $name = $AUTOLOAD) =~ s/.*://;
my $sub = sub : lvalue { shift->{$name} };
{
no strict 'refs';
*{$AUTOLOAD} = $sub;
}
$self->$name();
}
sub DESTROY {}
ここまで来ると普通のハッシュでよくね?
あと、ネタすれなんで、本スレで質問しる。
our $AUTOLOAD;
sub new { bless { name => 'foo' }, shift }
sub AUTOLOAD : lvalue {
my ($self) = @_;
(my $name = $AUTOLOAD) =~ s/.*://;
my $sub = sub : lvalue { shift->{$name} };
{
no strict 'refs';
*{$AUTOLOAD} = $sub;
}
$self->$name();
}
sub DESTROY {}
ここまで来ると普通のハッシュでよくね?
あと、ネタすれなんで、本スレで質問しる。
175営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 19:05:08.57 在日韓国・朝鮮人や,
働かないで金をせびるクズ人間を取り締まってくれや。
追うも国士館,追われるも国士館頼むぞ。
http://www2.ocn.ne.jp/~hirohito/photo/s6116.jpg
http://www.masuko.co.jp/school/img/otona/4men_2.jpg
http://keiten.net/image/070804kokushi/kekki.htm
規律ある大学生活
http://daiminsya.exblog.jp/2750544/
国士舘OBの回想
http://www.youtube.com/watch?v=LBtSNMhree4&feature=related
国士舘アルバム
http://www.youtube.com/watch?v=5vZmce3qPGg&feature=related
働かないで金をせびるクズ人間を取り締まってくれや。
追うも国士館,追われるも国士館頼むぞ。
http://www2.ocn.ne.jp/~hirohito/photo/s6116.jpg
http://www.masuko.co.jp/school/img/otona/4men_2.jpg
http://keiten.net/image/070804kokushi/kekki.htm
規律ある大学生活
http://daiminsya.exblog.jp/2750544/
国士舘OBの回想
http://www.youtube.com/watch?v=LBtSNMhree4&feature=related
国士舘アルバム
http://www.youtube.com/watch?v=5vZmce3qPGg&feature=related
176172
2012/04/07(土) 23:31:22.35 >>174
おおーありがとうございます。AUTOLOAD自体をlvalueにするというのは気づきませんでした。
実際のプログラムはもう少し複雑ですが、正しく動作しています。
>>普通のハッシュでよくね?
たしかにw
一応オブジェクトであってはほしいのですが、ハッシュ記法であれば何の不都合もなく
$obj->{name} = 'bar';
と書けるわけですしね。
オマケでメソッド呼び出しも、と考えてたらハマってしまった格好です
おおーありがとうございます。AUTOLOAD自体をlvalueにするというのは気づきませんでした。
実際のプログラムはもう少し複雑ですが、正しく動作しています。
>>普通のハッシュでよくね?
たしかにw
一応オブジェクトであってはほしいのですが、ハッシュ記法であれば何の不都合もなく
$obj->{name} = 'bar';
と書けるわけですしね。
オマケでメソッド呼び出しも、と考えてたらハマってしまった格好です
2012/04/08(日) 21:43:29.63
Apple 社の Mac OS X は、 ベースの一部 が FreeBSD です。Apple 社独自の
ユーザインタフェースとともに、豊富なUNIX(R)基盤が取り入れられています。
ユーザインタフェースとともに、豊富なUNIX(R)基盤が取り入れられています。
2012/04/08(日) 23:11:38.92
OpenStepじゃなかったっけ?
179デフォルトの名無しさん
2012/04/14(土) 14:38:18.13180デフォルトの名無しさん
2012/04/17(火) 22:06:08.88181デフォルトの名無しさん
2012/04/18(水) 03:18:24.23 一方、日本は...
瞳をとじた
瞳をとじた
182デフォルトの名無しさん
2012/04/29(日) 00:38:07.87そしてこのスレッドもクローズした
183デフォルトの名無しさん
2012/04/29(日) 06:35:31.99 再開
184デフォルトの名無しさん
2012/04/29(日) 06:52:54.09∧∧
( ゚Д゚ )∩
⊂ ノ
/ 0
し´
えっ…と、
ここかな…、と
∧∧ ∧∧
∩゚Д゚≡゚Д゚ )
`ヽ |)
| __ |〜
∪ ∪
ドスッ
∧∧.ミ. _
( )┌┴┴┐
/ つ.再開│
〜 ./ └┬┬┘
∪∪ ││_ε3
゛゛゛゛
185デフォルトの名無しさん
2012/04/29(日) 14:21:23.37 最近のPerlでOOP用ライブラリってどんなのが主流ですか?
186デフォルトの名無しさん
2012/04/29(日) 14:23:06.27 Mooseだろ?
最近のライブラリでそれ以外使ってるの有るのか?
最近のライブラリでそれ以外使ってるの有るのか?
187デフォルトの名無しさん
2012/04/29(日) 14:25:50.06 ありがとうございますMoose調べてきます
188デフォルトの名無しさん
2012/04/29(日) 18:38:18.38 Mooseが重いと思ったらMouseとAny::Mooseの組合せで代用もよし
189デフォルトの名無しさん
2012/04/29(日) 20:25:09.14 最初から Mouse 使ったほうが
190デフォルトの名無しさん
2012/05/15(火) 18:28:38.45 cpan でモジュールインストールしんたいんだけど
install やら make やら make install やら全部 OK
でたのに
perldoc -l インストールしたモジュール名
やるとそんなのないて怒られる。
なんで?
install やら make やら make install やら全部 OK
でたのに
perldoc -l インストールしたモジュール名
やるとそんなのないて怒られる。
なんで?
191デフォルトの名無しさん
2012/05/15(火) 22:29:19.68192デフォルトの名無しさん
2012/05/16(水) 07:35:09.36 >>191
cpan>install Math::Vector::Real
でいれて
全部 make やら make install やら全部 OK と出たが
ないようだった。
cpanplus でインストールしてみたらいけたのだが原因がわからない。
cpan>install Math::Vector::Real
でいれて
全部 make やら make install やら全部 OK と出たが
ないようだった。
cpanplus でインストールしてみたらいけたのだが原因がわからない。
193デフォルトの名無しさん
2012/05/16(水) 19:04:48.32 Regexp::Assembleでマッチした時って
後方参照使えるの?
後方参照使えるの?
194デフォルトの名無しさん
2012/06/20(水) 00:40:13.88 perl 5.10.1 を使っています。
$str = "ABCD"; の時
@a = $str =~ /AB|CD/g;
を実行すると、@a = ( "AB", "CD" ) と2つの要素が返されますが、
@a = $str =~ /AB|BC/g;
だと、@a = ( "AB" ) しか帰ってきません。
(ABがマッチしたら、その次のCからサーチが始まるため)
@a に ("AB", "BC") と、マッチするものすべてを得たい場合、
どうすればよいでしょうか。
$str = "ABCD"; の時
@a = $str =~ /AB|CD/g;
を実行すると、@a = ( "AB", "CD" ) と2つの要素が返されますが、
@a = $str =~ /AB|BC/g;
だと、@a = ( "AB" ) しか帰ってきません。
(ABがマッチしたら、その次のCからサーチが始まるため)
@a に ("AB", "BC") と、マッチするものすべてを得たい場合、
どうすればよいでしょうか。
195デフォルトの名無しさん
2012/06/20(水) 01:29:26.87 なんか面白そうなお題なのでとりあえず最悪くさいものを作ってみた
素晴らしい人がボロクソにけなしてくれると期待しつつ投げてみる
$str='ABCD';
{
my $tmp=$str;
while($tmp=~/AB|BC/){
push @a,$&;
$tmp = $&.$';
$tmp=~s/^.//;
}
}
print join' ',@a;
素晴らしい人がボロクソにけなしてくれると期待しつつ投げてみる
$str='ABCD';
{
my $tmp=$str;
while($tmp=~/AB|BC/){
push @a,$&;
$tmp = $&.$';
$tmp=~s/^.//;
}
}
print join' ',@a;
196194
2012/06/20(水) 02:51:53.45 >>194
場当たり的に色々試していたら
@a = $str =~ /(?=(AB|BC))/g;
で、(AB,BC) が取得できました。
(?= で、次の走査開始点を移動させないようにしたから、でしょうか?
場当たり的に色々試していたら
@a = $str =~ /(?=(AB|BC))/g;
で、(AB,BC) が取得できました。
(?= で、次の走査開始点を移動させないようにしたから、でしょうか?
197デフォルトの名無しさん
2012/07/15(日) 14:22:38.65 一過性のモダンPerlはもう終わり。
らくだ本の発行によって本来のPerlへの回帰が始まっている。
らくだ本の発行によって本来のPerlへの回帰が始まっている。
198デフォルトの名無しさん
2012/07/15(日) 14:36:07.64 本来のPerl=5.0でも動く範囲でしかコード書かない
199デフォルトの名無しさん
2012/07/15(日) 16:03:33.45 そういえばPerl5のスレってないね?やっぱりまだPerlの方が使われてるのかな?
200デフォルトの名無しさん
2012/07/20(金) 00:44:57.65 モダンPerl書いたひとはどうしてるの?最近見ないけど、やっぱりだめなの?
201デフォルトの名無しさん
2012/07/20(金) 06:04:14.97 まあソースをみて改良したりとか前向きな動機はほぼゼロで99.99%はこのメーカー
困らせてやれって開示請求なんだろうな。
困らせてやれって開示請求なんだろうな。
202デフォルトの名無しさん
2012/07/20(金) 23:17:21.71 モダンな奴はそもそもPerl使わないからな
203デフォルトの名無しさん
2012/07/25(水) 02:06:14.30 USP(Universal Shell Programming)研究所は、UNIX/Linuxの基本思想である、
「小さな道具」(コマンド)を組み合わせて「問題を解決する」(シェルス
クリプト)手法の研究・普及を行っています。この開発手法(ユニケージ
開発手法)は、従来のウォーターフォール型開発や、オブジェクト指向言
語・データベースソフトを用いた開発手法と一線を画し、圧倒的な開発生産
性 圧倒的な柔軟性を特徴としています。
ttp://www.usp-lab.com/
「小さな道具」(コマンド)を組み合わせて「問題を解決する」(シェルス
クリプト)手法の研究・普及を行っています。この開発手法(ユニケージ
開発手法)は、従来のウォーターフォール型開発や、オブジェクト指向言
語・データベースソフトを用いた開発手法と一線を画し、圧倒的な開発生産
性 圧倒的な柔軟性を特徴としています。
ttp://www.usp-lab.com/
204デフォルトの名無しさん
2012/07/30(月) 19:45:03.06 本スレも、荒しに常駐されてぐだぐだだし、
WebProgの方も同じみたいに、スレ違いの会話が
ぐだぐだ続いて終了したし、終りかなあ。
ここのスレの方がまだ真面にperlの話をしてた気がするよ。
WebProgの方も同じみたいに、スレ違いの会話が
ぐだぐだ続いて終了したし、終りかなあ。
ここのスレの方がまだ真面にperlの話をしてた気がするよ。
205デフォルトの名無しさん
2012/07/30(月) 20:56:12.50 まあモダンには2つあって、ひとつはすぐに古くなるモダン。
もうひとつはいつまでも古くならないモダン。
おれは断然古くならないモダンのほうがいいな。
もうひとつはいつまでも古くならないモダン。
おれは断然古くならないモダンのほうがいいな。
206デフォルトの名無しさん
2012/07/30(月) 23:46:15.85 XSを使うと1年後に古くなるほうのモダンですか?
207デフォルトの名無しさん
2012/07/30(月) 23:47:25.65 軟便スキー独りか知らんが、
韓国ネタのコピペしたり
hoge煽りしたり
ググれ煽りしたり
馬鹿じゃねーの?
韓国ネタのコピペしたり
hoge煽りしたり
ググれ煽りしたり
馬鹿じゃねーの?
208デフォルトの名無しさん
2012/07/31(火) 00:19:41.40 そしてゆっくりモダンになっていく...
それが理想です
それが理想です
209デフォルトの名無しさん
2012/07/31(火) 00:27:00.96 進歩というものは過去を捨てることではない。
過去に加えて積み上げるものなのだ。
過去に加えて積み上げるものなのだ。
210デフォルトの名無しさん
2012/07/31(火) 01:28:15.89 荒しが950踏んで嬉々としてhoge禁止をテンプレに入れる姿が目に見える様だ
211デフォルトの名無しさん
2012/08/04(土) 17:51:38.53 過去のソフトウェアと作法やインタフェースが異なる言い訳としてモダンと
いう用語を使うのはまずい。今までより苦労が増えるなら移行は進むはず
がない。
いう用語を使うのはまずい。今までより苦労が増えるなら移行は進むはず
がない。
212デフォルトの名無しさん
2012/08/05(日) 20:55:07.11 ところでこのスレが53箱目の続きってことでいいの?
213デフォルトの名無しさん
2012/08/05(日) 20:56:46.40 すまん、53箱目の続きあった。“54目”になってたんで検索に引っかからなかったわ。
214デフォルトの名無しさん
2012/08/06(月) 18:23:11.89 以下のように時刻と曜日が書かれたlogファイルがあります。
Jun 6 00:07:41 xxxxx
Aug 8 00:14:34 yyyyy
Aug 8 00:16:26 zzzzz
〜
(以下略
現時刻から一時間前のログのみ抽出して、抽出したログの行数だけ出したいのですがこの処理って一行(ワンライナー)で書けますか?※重複とかは無視して単純に一時間分のログが引っこ抜ければ良いです。
詳しい人教えてください。
Jun 6 00:07:41 xxxxx
Aug 8 00:14:34 yyyyy
Aug 8 00:16:26 zzzzz
〜
(以下略
現時刻から一時間前のログのみ抽出して、抽出したログの行数だけ出したいのですがこの処理って一行(ワンライナー)で書けますか?※重複とかは無視して単純に一時間分のログが引っこ抜ければ良いです。
詳しい人教えてください。
215デフォルトの名無しさん
2012/08/06(月) 18:26:08.19216デフォルトの名無しさん
2012/08/06(月) 18:57:53.32217デフォルトの名無しさん
2012/08/07(火) 18:06:48.10218デフォルトの名無しさん
2012/08/07(火) 18:12:29.44 横レス(別人)
$ perl -F'/[\s:]+/' -MTime::Local -lane 'BEGIN{ %m = map{uc $_, $i ++} qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);} next if ( time - timelocal @F[4,3,2,1], $m{uc $F[0]}, 2012 - 1900 ) > 3600 ; print ;' *txt
年は 2012 年を期待、 2013 年になったら知らん。
年跨ぎを念頭に入れるとなると log file の形式から作成しなおし。
win の人なら、シングルクォーテーションをダブルに
変えなきゃ動かんかも。
勉強したいのであれば、エポック秒、時間比較 perl あたりでググる。
$ perl -F'/[\s:]+/' -MTime::Local -lane 'BEGIN{ %m = map{uc $_, $i ++} qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);} next if ( time - timelocal @F[4,3,2,1], $m{uc $F[0]}, 2012 - 1900 ) > 3600 ; print ;' *txt
年は 2012 年を期待、 2013 年になったら知らん。
年跨ぎを念頭に入れるとなると log file の形式から作成しなおし。
win の人なら、シングルクォーテーションをダブルに
変えなきゃ動かんかも。
勉強したいのであれば、エポック秒、時間比較 perl あたりでググる。
219デフォルトの名無しさん
2012/08/07(火) 18:20:05.07 >>218
あんた2012年の住人じゃないだろw
あんた2012年の住人じゃないだろw
220デフォルトの名無しさん
2012/08/07(火) 18:30:46.11221デフォルトの名無しさん
2012/08/07(火) 18:34:05.93 年跨ぎのケースを考え無くて良いなら、コードの2012を2013にすりゃいいだけ。
222デフォルトの名無しさん
2012/08/08(水) 18:20:12.98 というより、「年」は全部今年として扱えばいい。
年が明けてから1時間はまともにログを拾えなくなるけど。
そもそもログデータに「年」の情報が入っていないんだから、
厳密に処理するのは無理だべ。
年が明けてから1時間はまともにログを拾えなくなるけど。
そもそもログデータに「年」の情報が入っていないんだから、
厳密に処理するのは無理だべ。
223デフォルトの名無しさん
2012/08/08(水) 18:36:12.52 >>218に対して言ってるのなら、
最初からそれを念頭に書いてないか?
コードは既にそうなってるし、
説明文の方は質問者に向けたもんだし、
改造しやすいように除算は態々、2012 -1900 にして残してあるし。
それともtime関数に、年を除外するオプションでもあんの?
最初からそれを念頭に書いてないか?
コードは既にそうなってるし、
説明文の方は質問者に向けたもんだし、
改造しやすいように除算は態々、2012 -1900 にして残してあるし。
それともtime関数に、年を除外するオプションでもあんの?
224デフォルトの名無しさん
2012/08/08(水) 19:02:57.22 >>223
年が変わるごとに 2012 を 2013 だの 2014 だのに書き換えるの面倒だろうから
「年」のところはログの日付も現在の時間も全部localtimeの「今年」という前提で
扱えば毎年コード書き直さなくてもよくなるだろっていってるんだよボケ。
年が変わるごとに 2012 を 2013 だの 2014 だのに書き換えるの面倒だろうから
「年」のところはログの日付も現在の時間も全部localtimeの「今年」という前提で
扱えば毎年コード書き直さなくてもよくなるだろっていってるんだよボケ。
225デフォルトの名無しさん
2012/08/08(水) 19:09:28.99 perl -F'/[\s:]+/' -MTime::Local -lane 'BEGIN{ %m = map{uc $_, $i ++} qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);} next if ( time - timelocal @F[4,3,2,1], $m{uc $F[0]}, ( localtime(time))[5] ) > 3600 ; print ;' *txt
こういう意味ねw、了解した。
こういう意味ねw、了解した。
226デフォルトの名無しさん
2012/08/08(水) 19:17:05.60 で、試しに自分でも書いてみた。
LC_ALL=C perl -MTime::Piece -e '$lt=localtime;$ty=$lt->year;while(<>){next unless m/(\w+) +(\d+) +(\d+:\d+:\d+)/;$t=Time::Piece->strptime("$ty $1 $2 $3","%Y %b %d %H:%M:%S");$c++ if $lt-$t<3600}print "$c\n"' logfile
218の方がすっきりしてるか。なぜかうちの環境だとエラー吐いて動かなかったけど…。
(Day 'Jun' out of range 1..31 at -e line 1 て言われた)
LC_ALL=Cは環境によってはつけとかないとTime::Piece->strptime()がエラー吐くんで。
行数が知りたい、だったので行数出力にしたけど、該当行を全部出したいんだったら
$c++以降を print if $lt-$t<3600}' に置き換えれば218と同じ出力になる。
行数はwc使えばあとからでもわかるしね。
LC_ALL=C perl -MTime::Piece -e '$lt=localtime;$ty=$lt->year;while(<>){next unless m/(\w+) +(\d+) +(\d+:\d+:\d+)/;$t=Time::Piece->strptime("$ty $1 $2 $3","%Y %b %d %H:%M:%S");$c++ if $lt-$t<3600}print "$c\n"' logfile
218の方がすっきりしてるか。なぜかうちの環境だとエラー吐いて動かなかったけど…。
(Day 'Jun' out of range 1..31 at -e line 1 て言われた)
LC_ALL=Cは環境によってはつけとかないとTime::Piece->strptime()がエラー吐くんで。
行数が知りたい、だったので行数出力にしたけど、該当行を全部出したいんだったら
$c++以降を print if $lt-$t<3600}' に置き換えれば218と同じ出力になる。
行数はwc使えばあとからでもわかるしね。
227デフォルトの名無しさん
2012/08/08(水) 19:19:19.26228デフォルトの名無しさん
2012/08/08(水) 19:28:58.56 >>226
> 218の方がすっきりしてるか。なぜかうちの環境だとエラー吐いて動かなかったけど…。
> (Day 'Jun' out of range 1..31 at -e line 1 て言われた)
なぜエラーが出たかわかった。自分でテスト用に切り出して作ったログファイルの
各行頭にスペースが入っていたからだった。(ありがち)
> 218の方がすっきりしてるか。なぜかうちの環境だとエラー吐いて動かなかったけど…。
> (Day 'Jun' out of range 1..31 at -e line 1 て言われた)
なぜエラーが出たかわかった。自分でテスト用に切り出して作ったログファイルの
各行頭にスペースが入っていたからだった。(ありがち)
229デフォルトの名無しさん
2012/08/08(水) 21:24:39.24230デフォルトの名無しさん
2012/08/09(木) 03:59:05.87 perl -MTime::Piece -lE 'my $lt=localtime; my $ty=$lt->year ; while(<>){next unless m/(\w+) +(\d+) +(\d+:\d+:\d+)/;\
my $t=Time::Piece->strptime("$ty $1 $2 $3","%Y %b %d %H:%M:%S"); print q{#####} ; print ; print $lt ; print $t ; print $lt-$t }' log file
#####
Jun 6 00:07:41 xxxxx
Thu Aug 9 03:45:48 2012
Wed Jun 6 00:07:41 2012
5510287
#####
Aug 8 00:14:34 yyyyy
Thu Aug 9 03:45:48 2012
Wed Aug 8 00:14:34 2012
66674
#####
Aug 8 00:16:26 zzzzz
Thu Aug 9 03:45:48 2012
Wed Aug 8 00:16:26 2012
66562
#####
Aug 8 22:15:14 zzzzz
Thu Aug 9 03:45:48 2012
Wed Aug 8 22:15:14 2012
-12566
うちの環境だとTime::Pieceオブジェクトの除算が変だ。なんで?
my $t=Time::Piece->strptime("$ty $1 $2 $3","%Y %b %d %H:%M:%S"); print q{#####} ; print ; print $lt ; print $t ; print $lt-$t }' log file
#####
Jun 6 00:07:41 xxxxx
Thu Aug 9 03:45:48 2012
Wed Jun 6 00:07:41 2012
5510287
#####
Aug 8 00:14:34 yyyyy
Thu Aug 9 03:45:48 2012
Wed Aug 8 00:14:34 2012
66674
#####
Aug 8 00:16:26 zzzzz
Thu Aug 9 03:45:48 2012
Wed Aug 8 00:16:26 2012
66562
#####
Aug 8 22:15:14 zzzzz
Thu Aug 9 03:45:48 2012
Wed Aug 8 22:15:14 2012
-12566
うちの環境だとTime::Pieceオブジェクトの除算が変だ。なんで?
231デフォルトの名無しさん
2012/08/09(木) 05:09:37.92 >>230
あう〜。ホントだ。ウチでも同じだ。
Time::Piece->strptime()でTime::Pieceオブジェクトを作るとgmtimeベースになるっぽい。
ttp://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A1%E3%83%A2%2FTime%3A%3APiece%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB
だから引き算の結果がTZのoffset分ずれるのか…。strptime()でlocaltimeベースにするには…
$ LC_ALL=C perl -MTime::Piece -lE '$lt=localtime;$ty=$lt->year;while(<>){next unless m/(\w+) +(\d+) +(\d+:\d+:\d+)/;\
$t=localtime Time::Piece->strptime("$ty $1 $2 $3","%Y %b %d %H:%M:%S")->epoch;$t-=$lt->tzoffset;\
say q{#####};say $lt," = ",$lt->[Time::Piece::c_islocal];say $t," = ",$t->[Time::Piece::c_islocal];say $lt-$t}' logfile
#####
Thu Aug 9 04:57:20 2012 = 1
Wed Jun 6 00:07:41 2012 = 1
5546979
#####
Thu Aug 9 04:57:20 2012 = 1
Wed Aug 8 00:14:34 2012 = 1
103366
#####
Thu Aug 9 04:57:20 2012 = 1
Wed Aug 8 00:16:26 2012 = 1
103254
#####
Thu Aug 9 04:57:20 2012 = 1
Wed Aug 8 19:20:14 2012 = 1
34626
(こんな時間に何をやっているんだか)
もしくはstrptime()の方をいじらずに、
$lt=localtime; → $lt=gmtime;$lt+=localtime->tzoffset;
か…。gmtimeベースになっちゃうけど引き算の結果は正しくなる。
という訳で、けっこういろいろとメンドくさいもんですね。
あう〜。ホントだ。ウチでも同じだ。
Time::Piece->strptime()でTime::Pieceオブジェクトを作るとgmtimeベースになるっぽい。
ttp://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A1%E3%83%A2%2FTime%3A%3APiece%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB
だから引き算の結果がTZのoffset分ずれるのか…。strptime()でlocaltimeベースにするには…
$ LC_ALL=C perl -MTime::Piece -lE '$lt=localtime;$ty=$lt->year;while(<>){next unless m/(\w+) +(\d+) +(\d+:\d+:\d+)/;\
$t=localtime Time::Piece->strptime("$ty $1 $2 $3","%Y %b %d %H:%M:%S")->epoch;$t-=$lt->tzoffset;\
say q{#####};say $lt," = ",$lt->[Time::Piece::c_islocal];say $t," = ",$t->[Time::Piece::c_islocal];say $lt-$t}' logfile
#####
Thu Aug 9 04:57:20 2012 = 1
Wed Jun 6 00:07:41 2012 = 1
5546979
#####
Thu Aug 9 04:57:20 2012 = 1
Wed Aug 8 00:14:34 2012 = 1
103366
#####
Thu Aug 9 04:57:20 2012 = 1
Wed Aug 8 00:16:26 2012 = 1
103254
#####
Thu Aug 9 04:57:20 2012 = 1
Wed Aug 8 19:20:14 2012 = 1
34626
(こんな時間に何をやっているんだか)
もしくはstrptime()の方をいじらずに、
$lt=localtime; → $lt=gmtime;$lt+=localtime->tzoffset;
か…。gmtimeベースになっちゃうけど引き算の結果は正しくなる。
という訳で、けっこういろいろとメンドくさいもんですね。
232デフォルトの名無しさん
2012/08/09(木) 08:02:26.85233デフォルトの名無しさん
2012/08/09(木) 08:03:44.22 レスくれた人ありがとうございます>>214です。
まだperlは入門書読み終わった程度なので右も左も分かりませんが、教えて頂いたコードを参考に色々書き方を研究したいと思います。
まだperlは入門書読み終わった程度なので右も左も分かりませんが、教えて頂いたコードを参考に色々書き方を研究したいと思います。
234デフォルトの名無しさん
2012/08/12(日) 12:31:10.61 入門書読み終えたばかりの初心者には組込みのlocaltime関数を教えてあげないよ
235デフォルトの名無しさん
2012/08/13(月) 16:57:18.75 >>234
なにが言いたいのかわからん
なにが言いたいのかわからん
236デフォルトの名無しさん
2012/08/14(火) 00:43:26.35 ほら、俺ってサ
意外にすいすいしいヤツ
だからサ
意外にすいすいしいヤツ
だからサ
237デフォルトの名無しさん
2012/08/14(火) 23:54:42.42 初心者には localtime の方が便利な件
238デフォルトの名無しさん
2012/08/15(水) 05:40:02.45 >>234,>>237
既に>>225が提示してるだろ?
学習するかは質問者さんの勝手。
>>232
目医者行け。
266氏を晒す訳じゃないが、ワンライナにwhile(<>){}直接埋め込んでる時点で
スタイリッシュじゃない。
225に相当するコードをTime::Pieceで書いた場合、
perl -F'\s+' -MTime::Piece -lanE 'state $lt = localtime; next if $lt - localtime( Time::Piece->strptime((join " ", $lt->year,@F[0..2]),"%Y %b %d %H:%M:%S")) > 3600; say'
226に略
perl -F'\s+' -MTime::Piece -lanE 'state $lt = localtime; $c++ if $lt - localtime( Time::Piece->strptime((join " ", $lt->year,@F[0..2]),"%Y %b %d %H:%M:%S")) < 3600;}{ say $c'
既に>>225が提示してるだろ?
学習するかは質問者さんの勝手。
>>232
目医者行け。
266氏を晒す訳じゃないが、ワンライナにwhile(<>){}直接埋め込んでる時点で
スタイリッシュじゃない。
225に相当するコードをTime::Pieceで書いた場合、
perl -F'\s+' -MTime::Piece -lanE 'state $lt = localtime; next if $lt - localtime( Time::Piece->strptime((join " ", $lt->year,@F[0..2]),"%Y %b %d %H:%M:%S")) > 3600; say'
226に略
perl -F'\s+' -MTime::Piece -lanE 'state $lt = localtime; $c++ if $lt - localtime( Time::Piece->strptime((join " ", $lt->year,@F[0..2]),"%Y %b %d %H:%M:%S")) < 3600;}{ say $c'
239266 (未来より参上)
2012/08/15(水) 16:15:51.26 >>238
おおうスタイリッシュ。
state とか使ったことなかったけど便利そうだな。参考にさせていただきます。
ワンライナーはあんまし書かないのもあってオプションも -i -n -p -e くらいしか
普段使ってなかったりしますんで。-E すら滅多に使わないな…。nもpもなしに
while(<>)埋め込むのもループの前後で処理が必要な時とかは普通にやってるし。
その程度のスキルでもとりあえず動くものは書けるってのがPerlのメリットでもあり
欠点でもあると…まあこの場合メリットということで。TMTOWTDI。(覚えづらいよなこれ)
おおうスタイリッシュ。
state とか使ったことなかったけど便利そうだな。参考にさせていただきます。
ワンライナーはあんまし書かないのもあってオプションも -i -n -p -e くらいしか
普段使ってなかったりしますんで。-E すら滅多に使わないな…。nもpもなしに
while(<>)埋め込むのもループの前後で処理が必要な時とかは普通にやってるし。
その程度のスキルでもとりあえず動くものは書けるってのがPerlのメリットでもあり
欠点でもあると…まあこの場合メリットということで。TMTOWTDI。(覚えづらいよなこれ)
240デフォルトの名無しさん
2012/08/16(木) 22:01:16.60 なんで隔離スレで真面目に質問箱してんのよw
>>233
コード研究するんだったら、B::Deparseは必須。
% perl -MO=Deparse -lane '}{ print $.'
BEGIN { $/ = "\n"; $\ = "\n"; }
LINE: while (defined($_ = <ARGV>)) {
chomp $_;
our(@F) = split(' ', $_, 0);
}
{
print $.;
}
-e syntax OK
調べたいコードのオプションの先頭に、-MO=Deparseくっつけるだけ。
それにしても、バルサン炊いたみたいに、人がいなくなったな本スレと初心者スレ。
実際の所は、ハイエナが肉に夢中になってるだけだろうけど。
>>233
コード研究するんだったら、B::Deparseは必須。
% perl -MO=Deparse -lane '}{ print $.'
BEGIN { $/ = "\n"; $\ = "\n"; }
LINE: while (defined($_ = <ARGV>)) {
chomp $_;
our(@F) = split(' ', $_, 0);
}
{
print $.;
}
-e syntax OK
調べたいコードのオプションの先頭に、-MO=Deparseくっつけるだけ。
それにしても、バルサン炊いたみたいに、人がいなくなったな本スレと初心者スレ。
実際の所は、ハイエナが肉に夢中になってるだけだろうけど。
241デフォルトの名無しさん
2012/08/19(日) 22:14:32.47 初めてのPerl第6版とPerl5.16.1のことだね。
Unicodeサポートの問題に今頃気づいたって読める。
第5版のときはまだ気づいていなかったのかな?
まあ、そんときは使ってなかったんだろうけどな。
Unicodeサポートの問題に今頃気づいたって読める。
第5版のときはまだ気づいていなかったのかな?
まあ、そんときは使ってなかったんだろうけどな。
242デフォルトの名無しさん
2012/08/20(月) 05:51:33.20 今上天皇侮辱発言の祭りが落ち着いたから、戻って来たぞゴキブリ。
でも、まあ、5割くらい減ったんじゃねーかな?
でも、まあ、5割くらい減ったんじゃねーかな?
243デフォルトの名無しさん
2012/08/20(月) 22:17:22.42 バルサン耐性を備えて5割以上パワーあっぷぷぷw
244デフォルトの名無しさん
2012/08/26(日) 15:07:51.22 ゆっくりモダンになっていく・・・
・・・モダンRuby。
・・・モダンRuby。
245デフォルトの名無しさん
2012/08/29(水) 00:35:50.14 モダンPERL追いかけてたら時代に取り残されましたとほほ
246デフォルトの名無しさん
2012/08/30(木) 21:05:34.35 >>245
その最後の「とほほ」だけで、もう10年以上は時代に取り残されてるよな
その最後の「とほほ」だけで、もう10年以上は時代に取り残されてるよな
247デフォルトの名無しさん
2012/08/30(木) 21:12:12.26 とほほだってよw
もうお前5.6こそ最高とかいって周りに強要してろよ
もうお前5.6こそ最高とかいって周りに強要してろよ
248デフォルトの名無しさん
2012/08/31(金) 00:07:22.19 5.6だと日本語がちゃんと使えません。仕事で使うなら5.005一択です。
249デフォルトの名無しさん
2012/09/01(土) 09:59:22.19 どうやらモダンパールは時代遅れみたいですね
本家のパールはすでにその先に進んでます
テキスト処理90%のPerlが文字列を楽に扱えないなんてたちの悪い冗談でしか
ありません
本家のパールはすでにその先に進んでます
テキスト処理90%のPerlが文字列を楽に扱えないなんてたちの悪い冗談でしか
ありません
250デフォルトの名無しさん
2012/09/02(日) 02:19:31.92 C++へのアンチテーゼの側面もあったPerlなのにモダンPerlはどうしちゃったのかな
251デフォルトの名無しさん
2012/09/03(月) 01:19:39.59 テクノロジーはスクラップアンドビルドなものと考える連中はとほほの内容が
古いと考えるようだ
古いと考えるようだ
252デフォルトの名無しさん
2012/09/08(土) 14:37:07.80 かってに「モダン」とか名乗るなや
253デフォルトの名無しさん
2012/09/09(日) 00:59:31.20 モダンでもないのにモダン名乗られてもなあ
254デフォルトの名無しさん
2012/09/09(日) 08:13:34.65 リャマ本第6版までモダンに毒されてるよ
おまいらリャマ本は第1版こそ至高・正義だ
定価より高くても中古で第1版を買え!
おまいらリャマ本は第1版こそ至高・正義だ
定価より高くても中古で第1版を買え!
255デフォルトの名無しさん
2012/09/09(日) 17:51:10.11 第1版ってのはバージョン4のピンク本のことか?あれは本当にいい本
256デフォルトの名無しさん
2012/09/09(日) 18:42:20.14 ダヨモンPerl
アリャマ本
アリャマ本
257デフォルトの名無しさん
2012/09/10(月) 00:59:47.94 赤らくだ本だとか赤リャマ本の序文、それにポケットリファレンスの序文でLarryはふざけ過ぎてしばらくの間O'reillyから干されていた。今回「まじめに書く」と誓ったためようやく第4版の執筆許可が下りたらしい。
258デフォルトの名無しさん
2012/09/12(水) 00:04:41.71 結局らくだ本的にはモダンPerl(=perl5.8)はスルーってことか
最近は重いモジュールも避けられる傾向にあるしな
最近は重いモジュールも避けられる傾向にあるしな
259デフォルトの名無しさん
2012/09/12(水) 00:11:25.67 重いモジュールも避けられる傾向にあるしな(キリッ
とか言う奴は十中八九List::Utilとかを使わない
とか言う奴は十中八九List::Utilとかを使わない
260デフォルトの名無しさん
2012/09/12(水) 00:30:32.64 実際に書かせてみればろくなコード書かないんだろうな
261デフォルトの名無しさん
2012/09/12(水) 00:31:53.70 モダンperlと言われているもののうち一部の重たいモジュールを持ち出して
重たいモジュールは避ける傾向にあるからモダンperlも避ける傾向だよねー
なんてどんな詭弁だよ
重たいモジュールは避ける傾向にあるからモダンperlも避ける傾向だよねー
なんてどんな詭弁だよ
262デフォルトの名無しさん
2012/09/12(水) 00:33:07.74 確かにLarryはモダンPerlについて多くを語ろうとしないな
きっと軽いスクリプトが好きなんだろうなList::Utilとか使わない
きっと軽いスクリプトが好きなんだろうなList::Utilとか使わない
263デフォルトの名無しさん
2012/09/12(水) 00:55:43.31 List::UtilはXSで書かれてるから自分でPerlで書くよりよっぽど高速なわけだが
てかとってつけたようにLarry様の名前出すなよw
てかとってつけたようにLarry様の名前出すなよw
264デフォルトの名無しさん
2012/09/12(水) 01:36:14.68 GUIやバイナリファイル扱うときにXSを使って効率を上げるのは分かるが
そうでないときにXS使ってスクリプトの利便性を下げるのは簡便だな。
そうでないときにXS使ってスクリプトの利便性を下げるのは簡便だな。
265デフォルトの名無しさん
2012/09/12(水) 01:47:29.25 勘弁
266デフォルトの名無しさん
2012/09/12(水) 02:38:31.59 >>264
なぜ利便性が下がる?
なぜ利便性が下がる?
267デフォルトの名無しさん
2012/09/13(木) 23:01:41.84 第1ヒント:テキスト萌えたんのポータビリティ強化月間
268デフォルトの名無しさん
2012/09/13(木) 23:29:47.30 「スクリプトが何かよく分かっていない」と書いたはらたいらに3,000点。
269デフォルトの名無しさん
2012/09/14(金) 23:30:28.34 バイナリではないところがスクリプトの利便性って分かるかな?無理かな?
270デフォルトの名無しさん
2012/09/15(土) 17:45:47.86 利便性の優先度
作る人の利便性 <<< 使う人の利便性
作る人の利便性 <<< 使う人の利便性
271デフォルトの名無しさん
2012/09/15(土) 18:43:43.53 中身が古いか新しいかは使う人の利便性に影響はしないけどね
272デフォルトの名無しさん
2012/09/15(土) 22:16:30.43 結局モダンかどうかは気持ちの問題だし、供給者側の主張次第でしょ
利用者側にとってはちゃんと使えればどうでもいいよそんなもん
利用者側にとってはちゃんと使えればどうでもいいよそんなもん
273デフォルトの名無しさん
2012/09/19(水) 01:43:10.30 モダンパールは単なる自己満足であったか
そもそも書いたときはモダンでも後で読むときはモダンではないわな
モダンと言われると互換性がないんじゃないかと思って警戒するひとも
いるかもしれないしな
そもそも書いたときはモダンでも後で読むときはモダンではないわな
モダンと言われると互換性がないんじゃないかと思って警戒するひとも
いるかもしれないしな
274デフォルトの名無しさん
2012/09/19(水) 02:38:41.68 use strict;
use Encode;
use Encode;
275デフォルトの名無しさん
2012/09/20(木) 09:27:07.77 Perl 6は、ポストモダンですか
276デフォルトの名無しさん
2012/09/20(木) 13:14:19.79 バイナリでの文字列置換をしています
$str =~ s/\xFF/\x00/g;
という書き方ならうまく行くのに、
$src = '\xFF';
$dst = '\x00';
$str =~ s/$src/$dst/g;
ではうまく行きません
$srcの部分は思い通り検索できるのに、
$dstの部分はバイナリではなく \x00 という文字列に置換されます
どうすればいいですか
$str =~ s/\xFF/\x00/g;
という書き方ならうまく行くのに、
$src = '\xFF';
$dst = '\x00';
$str =~ s/$src/$dst/g;
ではうまく行きません
$srcの部分は思い通り検索できるのに、
$dstの部分はバイナリではなく \x00 という文字列に置換されます
どうすればいいですか
277デフォルトの名無しさん
2012/09/20(木) 13:16:41.93 $dst = "\x00";
278デフォルトの名無しさん
2012/09/20(木) 13:31:02.66 確かにそういうことなのですが、
何故$dstという変数を使うかというと、その中身が不定だからです
$dst に '00' とか '01' とかいろんな文字列が入った場合の置換の書き方はありませんか
とりあえず、pack("C", hex($dst)) と書いて eオプションで評価すれば
うまく行くのは確認したのですが、$srcみたいなスマートな書き方はできないものかと
何故$dstという変数を使うかというと、その中身が不定だからです
$dst に '00' とか '01' とかいろんな文字列が入った場合の置換の書き方はありませんか
とりあえず、pack("C", hex($dst)) と書いて eオプションで評価すれば
うまく行くのは確認したのですが、$srcみたいなスマートな書き方はできないものかと
279デフォルトの名無しさん
2012/09/20(木) 14:11:13.98 packするのが一番マシじゃないだろうか
ただ置換内ではなくその直前に追い出したいけど
ただ置換内ではなくその直前に追い出したいけど
280デフォルトの名無しさん
2012/09/20(木) 14:30:17.21 後半が文字列で表現されている時に、
それをテキストとして見ていいのかバイナリとして見ていいのか、
両方の解釈が有り得るのが問題なんだな
書いたままだよ、というルールで統一されていれば納得するものを、
コードに埋め込んだ時はバイナリだけど、変数が来たら文字列、という解釈をして、
しかも、置換の前半部分は変数でもバイナリとする変態文法
逆に前半を文字列として認識させたい時はどうするんだろう
それをテキストとして見ていいのかバイナリとして見ていいのか、
両方の解釈が有り得るのが問題なんだな
書いたままだよ、というルールで統一されていれば納得するものを、
コードに埋め込んだ時はバイナリだけど、変数が来たら文字列、という解釈をして、
しかも、置換の前半部分は変数でもバイナリとする変態文法
逆に前半を文字列として認識させたい時はどうするんだろう
281デフォルトの名無しさん
2012/09/20(木) 22:51:50.63 すみません、何がなんだか分からないのでゆっくりと、そして複数の質問で
あるのなら分割して1つずつ質問してもらっていいですか?
中卒なんで
あるのなら分割して1つずつ質問してもらっていいですか?
中卒なんで
282デフォルトの名無しさん
2012/09/20(木) 22:56:52.61 eval "" と eval {} と /e で解決しそうに読めるんですけど
283デフォルトの名無しさん
2012/09/21(金) 00:33:30.46 よくある
$str =~ s/%([a-zA-z0-9]{2})/pack("C", hex($1))/eg;
こんな置換を、packやらhexやら使わずに書いてみそ
という問題
$str =~ s/%([a-zA-z0-9]{2})/pack("C", hex($1))/eg;
こんな置換を、packやらhexやら使わずに書いてみそ
という問題
284デフォルトの名無しさん
2012/09/21(金) 00:35:30.66 >>276
> バイナリでの文字列置換をしています
{
no utf8;
$str =~ s/\xFF/\x00/g;
}
> バイナリでの文字列置換をしています
{
no utf8;
$str =~ s/\xFF/\x00/g;
}
285デフォルトの名無しさん
2012/09/21(金) 00:43:45.02 eval qq{ \$str =~ s/\\Q$src\\E/$dst/g };
286デフォルトの名無しさん
2012/09/21(金) 11:42:35.55 どうやってもスマートじゃないな
前半も後半も素直にpackしておくのが一番分かり易い
なまじ前半に書けてしまうのがおかしい
前半も後半も素直にpackしておくのが一番分かり易い
なまじ前半に書けてしまうのがおかしい
287デフォルトの名無しさん
2012/09/22(土) 06:20:20.87 文字列とバイナリを区別する時点から問題が発生していると思うので、
区別しなければ解決するのだと思う
区別しなければ解決するのだと思う
288デフォルトの名無しさん
2012/09/22(土) 12:20:01.08 楽になるために区別するのならよいわけだけど、
区別したがゆえに苦労するのであれば、区別しなければ苦労はない。
過去にとらわれるのはもうやめです。進歩しませんよ。
区別したがゆえに苦労するのであれば、区別しなければ苦労はない。
過去にとらわれるのはもうやめです。進歩しませんよ。
289デフォルトの名無しさん
2012/09/22(土) 15:03:36.74 どっちに解釈するか文脈で判断、ということをperlはあちこちでやっていて、
それは多くの場合正しいので表面化しないけど、
こんな風に不合理を露呈する場合もある
それは多くの場合正しいので表面化しないけど、
こんな風に不合理を露呈する場合もある
290デフォルトの名無しさん
2012/09/22(土) 20:40:59.67 プログラムはテキスト、処理するデータはバイナリ
対
プログラムはバイナリ、処理するデータはテキスト
深い質問だな、これは
対
プログラムはバイナリ、処理するデータはテキスト
深い質問だな、これは
291デフォルトの名無しさん
2012/09/22(土) 22:17:29.81 Win7上で、Strawberry Perl と SQL Server2008 を使用して開発をしています。
DBD::ODBCでDBにアクセスをして、データを操作しています。
質問
・DBIでSQL Serverのデータベースにconnectを作成し、あるキーとなる情報を取得するSQLを
prepare、execute、fetchrow_arrayを使用して取得し、取得したキーをもとに別なSQLを作成し、
実行しようとしましたが、「接続がビジーです」といった内容のエラーが返ってきます。
fetchrow_arrayでデータを参照しつつ、同一のデータベースから同じようにデータを取得する
ことはできないのでしょうか?
何か情報がありましたら、教えてください。
よろしくお願いいたします。
DBD::ODBCでDBにアクセスをして、データを操作しています。
質問
・DBIでSQL Serverのデータベースにconnectを作成し、あるキーとなる情報を取得するSQLを
prepare、execute、fetchrow_arrayを使用して取得し、取得したキーをもとに別なSQLを作成し、
実行しようとしましたが、「接続がビジーです」といった内容のエラーが返ってきます。
fetchrow_arrayでデータを参照しつつ、同一のデータベースから同じようにデータを取得する
ことはできないのでしょうか?
何か情報がありましたら、教えてください。
よろしくお願いいたします。
292デフォルトの名無しさん
2012/09/22(土) 23:59:54.07 2つのSQL文をひとつにまとめるのが正攻法に思えるが「参照しつつ」をやめて「参照し終わってから」にすればいいんじゃないかと言ってみた。
293デフォルトの名無しさん
2012/09/23(日) 09:13:22.29 SQL文を相関副問い合わせを使って書き直す
294デフォルトの名無しさん
2012/09/23(日) 10:24:02.93 Strawberry Perlは「接続がビジーです」に関わっていない件
295デフォルトの名無しさん
2012/09/23(日) 11:27:29.98 プログラムはテキスト(簡便)、処理するデータはバイナリ(簡便)
プログラムはバイナリ(勘弁)、処理するデータはテキスト(勘弁)
プログラムはバイナリ(勘弁)、処理するデータはテキスト(勘弁)
296デフォルトの名無しさん
2012/09/23(日) 11:29:56.95 $str = 'aaa[bbb[c]ddd]eee';
$str =~ s/\[.+?\]//;
こんな感じにした時に
aaa[bbbddd]eee
になって欲しい
gを付けたら、
aaaeee
になって欲しい
うまい書き方はありますか
$str =~ s/\[.+?\]//;
こんな感じにした時に
aaa[bbbddd]eee
になって欲しい
gを付けたら、
aaaeee
になって欲しい
うまい書き方はありますか
297デフォルトの名無しさん
2012/09/23(日) 12:06:04.53298デフォルトの名無しさん
2012/09/23(日) 12:40:34.62 中身が固定だと判ってるなら\[c\]でいいんだけどね
299デフォルトの名無しさん
2012/09/23(日) 16:22:38.40 $str = 'aaa[bbb[c]ddd]eee';
$str =~ s/\[[^\[\]]+?\]//;
print "($str)\n";
# /g とは違うけど
$str = 'aaa[bbb[c]ddd]eee';
while($str =~ s/\[[^\[\]]+?\]//){}
print "($str)\n";
$str =~ s/\[[^\[\]]+?\]//;
print "($str)\n";
# /g とは違うけど
$str = 'aaa[bbb[c]ddd]eee';
while($str =~ s/\[[^\[\]]+?\]//){}
print "($str)\n";
300デフォルトの名無しさん
2012/09/23(日) 20:34:01.47 スカラーで置換した数を返す、という仕様は
whileで使ってくれと言ってるようなもんだな
whileで使ってくれと言ってるようなもんだな
301291
2012/09/24(月) 00:26:24.29 >>292-293
ありがごうございます。
ただすみません、自分の書き方も悪かったのですが・・・
取得した情報で、その後の処理を変更しています。
そのため、発行するSQLもselectだけでなく、insert,update,deleteなどもあり、
単純にSELECTを見直すというわけにもいかず。
ありがごうございます。
ただすみません、自分の書き方も悪かったのですが・・・
取得した情報で、その後の処理を変更しています。
そのため、発行するSQLもselectだけでなく、insert,update,deleteなどもあり、
単純にSELECTを見直すというわけにもいかず。
302デフォルトの名無しさん
2012/09/24(月) 00:48:00.82304デフォルトの名無しさん
2012/09/26(水) 00:01:18.00 Perlのこと聞きたかったら、いつでもこのモダンPerlスレに来な
305デフォルトの名無しさん
2012/09/26(水) 01:15:59.84 モダン焼きは四角く切るのと放射状に切るのとどっちがいい?
306デフォルトの名無しさん
2012/09/26(水) 05:22:19.56 おちんちんお切ってしまえ
307デフォルトの名無しさん
2012/09/27(木) 01:25:13.55 たこ焼き器で作るとひと口サイズなので切らなくともよい。
308デフォルトの名無しさん
2012/09/27(木) 06:03:41.53 私女だけどひと口サイズのおちんちんは勘弁
309デフォルトの名無しさん
2012/09/30(日) 12:10:27.15 切り方変えても味は変わらないのでそのままかぶりつく
310デフォルトの名無しさん
2012/09/30(日) 23:22:27.63 結局一過性のモダンポールか、青臭いな
311デフォルトの名無しさん
2012/10/06(土) 16:46:58.45 少数のエリートが良かれと思っても多数派の一般民が取り入れないと意味がない
ひとがプログラミングする訳だから、フィーリングを大事にしないとだめだな
ひとがプログラミングする訳だから、フィーリングを大事にしないとだめだな
312デフォルトの名無しさん
2012/10/14(日) 16:56:04.97 開発効率のことだけで言うと
モダンPerlの方が効率がいいね。
モダンPerlの方が効率がいいね。
313デフォルトの名無しさん
2012/10/14(日) 23:37:41.19 俺が好きなのはポストモダンPerlだな
314デフォルトの名無しさん
2012/10/15(月) 03:13:27.49 ああ、アレね、アレのことね
315デフォルトの名無しさん
2012/10/15(月) 12:16:14.31 Time::Pieceの実験用モルモットになるよりlocaltimeをツールとして安心して使うタイプか
316デフォルトの名無しさん
2012/10/15(月) 15:57:01.88 モジュールに一切頼らないスタイルこそが正義
317ハートマン軍曹
2012/10/15(月) 18:43:05.44 お前の顔はモダンアートの醜さだ!
318デフォルトの名無しさん
2012/10/16(火) 00:31:08.75 もうPerlは5.16の時代ですよ。
5.12とそれより前はサポート終了しました。
10年前のPerlのことなんか、
考える必要ないんですよ。
5.12とそれより前はサポート終了しました。
10年前のPerlのことなんか、
考える必要ないんですよ。
319デフォルトの名無しさん
2012/10/16(火) 00:42:38.62 5.6とか使いたい奴は自分らで勝手に使ってたらいい
ただし5.6を他人に強要したり、5.6向けに書いた古臭いスクリプトを他人に押し付けて保守させたりするな
ただし5.6を他人に強要したり、5.6向けに書いた古臭いスクリプトを他人に押し付けて保守させたりするな
320デフォルトの名無しさん
2012/10/16(火) 01:21:14.64 >>319
いやなことあったの?
いやなことあったの?
321デフォルトの名無しさん
2012/10/16(火) 01:23:22.72 >>320
主にこのスレでねw
主にこのスレでねw
322デフォルトの名無しさん
2012/10/16(火) 01:37:39.47 とにかくコードが手元の環境で動くのが正義
そして長期間に渡るメンテが可能で楽なのが正義
localtimeは標準モジュールより格上の標準関数
ポータブルPerlこそがこの世の正義
319による保守は誰も期待していない
そして長期間に渡るメンテが可能で楽なのが正義
localtimeは標準モジュールより格上の標準関数
ポータブルPerlこそがこの世の正義
319による保守は誰も期待していない
323デフォルトの名無しさん
2012/10/16(火) 01:59:23.74 >>321
無理して見なくていいぞ
無理して見なくていいぞ
324デフォルトの名無しさん
2012/10/16(火) 02:00:05.08 ポータブルPerlって
Perlのバージョンはなんだ?
言ってみろよwおらおらw
Perlのバージョンはなんだ?
言ってみろよwおらおらw
325デフォルトの名無しさん
2012/10/16(火) 02:04:53.00326デフォルトの名無しさん
2012/10/16(火) 02:06:12.86327デフォルトの名無しさん
2012/10/16(火) 02:06:57.24328デフォルトの名無しさん
2012/10/16(火) 02:21:46.91 手元にたくさんあるんだろ、モルモット君。
329デフォルトの名無しさん
2012/10/16(火) 11:09:16.58 localtime()は、Cにもあるよ
330デフォルトの名無しさん
2012/10/17(水) 18:24:12.99 うるさいゴミ
331デフォルトの名無しさん
2012/10/20(土) 13:36:25.82 リストコンテキストとスカラーコンテキストの違いとか printf とかはモダン
うんぬんの前に知らないとだめだろ。
モダンなゆとり世代。壮大な実験に付き合わされたモルモット。かわいそす
うんぬんの前に知らないとだめだろ。
モダンなゆとり世代。壮大な実験に付き合わされたモルモット。かわいそす
332デフォルトの名無しさん
2012/10/20(土) 14:30:09.12 刹那的なモダンPerlでは自分が書いたスクリプトを数十年に渡って保守する
ことは不可能と悟り本来のPerlに戻ってくる。で、localtimeで書く。
ことは不可能と悟り本来のPerlに戻ってくる。で、localtimeで書く。
333デフォルトの名無しさん
2012/10/20(土) 14:43:54.03 >>332
perl本体に組み込まれた関数が何十年後も互換を維持してるとは思えないがな
perl本体に組み込まれた関数が何十年後も互換を維持してるとは思えないがな
334デフォルトの名無しさん
2012/10/20(土) 15:22:59.17 寿命が6〜8年のモルモットの推測が当たるとは思えないがな
335デフォルトの名無しさん
2012/10/20(土) 15:54:12.00 数十年後も使い続ける物はCで書いとけよ。
Perl5自体、メンテされてるかどうか分からんぞ。
Perl5自体、メンテされてるかどうか分からんぞ。
336デフォルトの名無しさん
2012/10/20(土) 17:23:24.31 mooseとか使いまくってる俺が通りますよ
早くPerl6出ないな〜
早くPerl6出ないな〜
337デフォルトの名無しさん
2012/10/20(土) 20:08:44.97 Cで書いたら実行環境の違いを記述するコードでアプリケーションが
埋め尽くされるんだろーなー
埋め尽くされるんだろーなー
338デフォルトの名無しさん
2012/10/20(土) 20:25:13.96 >337
Linuxのソース見たけど、
一部の層で吸収しているから
ほとんどのコードは実行環境の違いなんて関係ないよ。
ま、お前にはそんな芸当出来ないだろうがな。がはははははwwww
Linuxのソース見たけど、
一部の層で吸収しているから
ほとんどのコードは実行環境の違いなんて関係ないよ。
ま、お前にはそんな芸当出来ないだろうがな。がはははははwwww
339デフォルトの名無しさん
2012/10/20(土) 20:32:14.18 ゆとりだからLinuxしか習わなかったんだよね?かわいそす
340デフォルトの名無しさん
2012/10/20(土) 20:34:13.97 「Linuxしか習わなかった」と判断した理由を書いてください。
ゆとりの脳内はよくわかりませんのでw
あ、書かなくても(逃げても)構いませんよwww
ゆとりの脳内はよくわかりませんのでw
あ、書かなくても(逃げても)構いませんよwww
341デフォルトの名無しさん
2012/10/20(土) 20:54:05.91 書いてもいいんだけど、Linuxのソースが、Linux以外のオペレーティング
システム上でperlを実行したときの実行環境の違いを吸収できると考えて
いるひとには理解できなそう
システム上でperlを実行したときの実行環境の違いを吸収できると考えて
いるひとには理解できなそう
342デフォルトの名無しさん
2012/10/20(土) 21:09:04.20 たぶん、無理だろうね。かわいそす
343デフォルトの名無しさん
2012/10/20(土) 21:21:01.55 やっぱゆとりだったかw
実行環境の違いなんてそれを埋めるレイヤーに固めるから
アプリケーションがそんなコードで埋まることはないってのが
一番の趣旨だろ。
こういう作り方ってのは普通にやることだし、そんなことが
思いつかないってのは自分でやったことがないってことw
そこからこのセリフにつながる
ま、お前にはそんな芸当出来ないだろうがな。がはははははwwww
実行環境の違いなんてそれを埋めるレイヤーに固めるから
アプリケーションがそんなコードで埋まることはないってのが
一番の趣旨だろ。
こういう作り方ってのは普通にやることだし、そんなことが
思いつかないってのは自分でやったことがないってことw
そこからこのセリフにつながる
ま、お前にはそんな芸当出来ないだろうがな。がはははははwwww
344デフォルトの名無しさん
2012/10/20(土) 21:42:31.78 >>343
意味不明
意味不明
345デフォルトの名無しさん
2012/10/20(土) 21:47:19.43 意訳 馬鹿だから理解できないw
346デフォルトの名無しさん
2012/10/20(土) 22:34:46.28 興奮してるのか脳に障害があるのか分からないが
文章が無茶苦茶だな
文章が無茶苦茶だな
347デフォルトの名無しさん
2012/10/20(土) 23:27:28.93 たぶんではなくて完全に無理です。コンテキストの理解を求める俺のほうが
完全に悪かったです。printf も覚えようとしなくて結構です。
どうもすみませんでした。
完全に悪かったです。printf も覚えようとしなくて結構です。
どうもすみませんでした。
348デフォルトの名無しさん
2012/10/20(土) 23:55:00.68 モダンPerlが脳障■者を集めるのか、脳障■者がモダンPerlを好むのか
これって日本だけの現象なの?モダンRubyとかも同じ状況なの?
これって日本だけの現象なの?モダンRubyとかも同じ状況なの?
349デフォルトの名無しさん
2012/10/21(日) 00:21:29.73 いいから黙ってろって
350デフォルトの名無しさん
2012/10/21(日) 00:34:27.55 >>343
> こういう作り方ってのは普通にやることだし、そんなことが
> 思いつかないってのは自分でやったことがないってことw
>
> そこからこのセリフにつながる
罵倒を目的とした文章で代名詞の頻度が上がるのは、脳に良くない変化が起きていることを現すから気をつけた方がいい。
> こういう作り方ってのは普通にやることだし、そんなことが
> 思いつかないってのは自分でやったことがないってことw
>
> そこからこのセリフにつながる
罵倒を目的とした文章で代名詞の頻度が上がるのは、脳に良くない変化が起きていることを現すから気をつけた方がいい。
351デフォルトの名無しさん
2012/10/21(日) 00:35:41.55 じいさんがボケ始めた頃「あれ取って」が増えたのと同じか?
352デフォルトの名無しさん
2012/10/21(日) 00:46:26.95353デフォルトの名無しさん
2012/10/21(日) 01:30:13.87 ボケ老人風文体わろす
354デフォルトの名無しさん
2012/10/21(日) 02:33:32.41 実行環境の制約(機器であったり、OSであったり、その会社の規則だったり)で
ポータブルなスクリプトを書かなければならないことはあるだろうけど、
制約によってモダンPerlで書かなければならないってことは現実にあるんだろ
うか?
その前にポータブルなスクリプトとレガシーなスクリプトの違いはちゃんと
理解できているのだろうか?
モダンPerlは結局のところ単なる自己満足なのだろうか?回答を求む。
ポータブルなスクリプトを書かなければならないことはあるだろうけど、
制約によってモダンPerlで書かなければならないってことは現実にあるんだろ
うか?
その前にポータブルなスクリプトとレガシーなスクリプトの違いはちゃんと
理解できているのだろうか?
モダンPerlは結局のところ単なる自己満足なのだろうか?回答を求む。
355デフォルトの名無しさん
2012/10/21(日) 02:48:51.74 > ポータブルなスクリプトを書かなければならないことはあるだろうけど
お前のポータブルの意味って何?
新しいPerlを入れればいいだけだろ。
お前が言ってるのは、ポータブルなスクリプトを書く。ではなく
古いPerlにも対応したスクリプトを書くって話。
ポータブルとは関係ない。
お前のポータブルの意味って何?
新しいPerlを入れればいいだけだろ。
お前が言ってるのは、ポータブルなスクリプトを書く。ではなく
古いPerlにも対応したスクリプトを書くって話。
ポータブルとは関係ない。
356デフォルトの名無しさん
2012/10/21(日) 08:22:34.33 古いPerlって、どれくらい前のPerlの事を言ってるの?
CPANライブラリが動かないような古いPerlも視野に入れて開発しないといけないの?
どうして、そんな古いPerlに固執してるの?バージョンアップできないの?
正直モダンPerlって呼ばれてるような書き方をしてはいけないなんて制約がある方が特殊すぎ
CPANライブラリが動かないような古いPerlも視野に入れて開発しないといけないの?
どうして、そんな古いPerlに固執してるの?バージョンアップできないの?
正直モダンPerlって呼ばれてるような書き方をしてはいけないなんて制約がある方が特殊すぎ
357デフォルトの名無しさん
2012/10/21(日) 14:23:20.43 自分の書くプログラムのスタイルなら、モダンだろうとクラシックだろうと好きに書けばよい。
でも、モダンPerl!モダン!モダン!って言う連中って、CPANとかのライブラリを使って書くことを
モダンだと言ってることが多い。
ライブラリを自分で抱えるのでなく、システムに入れろっていうのは横暴だし無理だろう。
すでに作られているシステムに、あとからCPANライブラリを追加したら、
既存のPerlスクリプト全ての再検証必要となるからね
でも、モダンPerl!モダン!モダン!って言う連中って、CPANとかのライブラリを使って書くことを
モダンだと言ってることが多い。
ライブラリを自分で抱えるのでなく、システムに入れろっていうのは横暴だし無理だろう。
すでに作られているシステムに、あとからCPANライブラリを追加したら、
既存のPerlスクリプト全ての再検証必要となるからね
358デフォルトの名無しさん
2012/10/21(日) 14:57:36.30 どんなモジュール追加したらそんな大げさなことになるんだよ。
359デフォルトの名無しさん
2012/10/21(日) 15:03:26.42 今のモダンPerlの世界は
perlbrew + cpanminus + local::lib を使って
システムに入れずに最新Perlを使うのです。
perlbrew + cpanminus + local::lib を使って
システムに入れずに最新Perlを使うのです。
360デフォルトの名無しさん
2012/10/21(日) 20:00:42.97 『はじめてのPerl』にlocal::libとcpanmが出てくる時代になりました。
361デフォルトの名無しさん
2012/10/31(水) 01:25:45.68 書いたときにモダンなのは当たり前だろう
モダン推しは時間軸の視点が抜け落ちているんだな
モダン推しは時間軸の視点が抜け落ちているんだな
362デフォルトの名無しさん
2012/11/04(日) 13:29:05.31363デフォルトの名無しさん
2012/11/04(日) 17:39:50.59 なんでEncodeモジュールを追加しただけで
再検証が必要になるんだ?
Encodeモジュールは最近のPerlには標準搭載されてるだろ。
まさか最新のPerlで動かないコード書いてるのか?
再検証が必要になるんだ?
Encodeモジュールは最近のPerlには標準搭載されてるだろ。
まさか最新のPerlで動かないコード書いてるのか?
364デフォルトの名無しさん
2012/11/06(火) 01:19:20.40365デフォルトの名無しさん
2012/11/06(火) 17:24:09.46366デフォルトの名無しさん
2012/11/06(火) 23:57:40.03 And if you have a problem that the Perl community can't fix,
you have the ultimate backstop: the source code itself.
-- Programming Perl 4th Edition
you have the ultimate backstop: the source code itself.
-- Programming Perl 4th Edition
367デフォルトの名無しさん
2012/11/07(水) 00:29:49.79 好きなだけ弄ればいいさ。
誰も止めやしない。
誰も止めやしない。
368デフォルトの名無しさん
2012/11/07(水) 01:58:26.48 Jcode,pmてまだまだ使われてるの?
さすがに require jcode はないよねー
さすがに require jcode はないよねー
369デフォルトの名無しさん
2012/11/07(水) 21:36:21.96 まだまだ現役です。だって使いやすいんだもん。
370デフォルトの名無しさん
2012/11/07(水) 21:58:36.93 Inline CとPerlとの
XSUB変換がperlgutの必須必要事項だと
会社の上司に言われたのですが、最後の
READMEに乗ってる
ようにmakeコマンドが生成されません。基本は
h2xs -A -n ExtModuleを実行し、種々の
実行環境を整えます。
参考URL:
http://d.hatena.ne.jp/perlcodesample/20100809/1278596435
XSUB変換がperlgutの必須必要事項だと
会社の上司に言われたのですが、最後の
READMEに乗ってる
ようにmakeコマンドが生成されません。基本は
h2xs -A -n ExtModuleを実行し、種々の
実行環境を整えます。
参考URL:
http://d.hatena.ne.jp/perlcodesample/20100809/1278596435
371デフォルトの名無しさん
2012/11/07(水) 22:03:15.28 どう説明しようかな
372デフォルトの名無しさん
2012/11/07(水) 22:04:16.52 #include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
MODULE = ExtModule PACKAGE = ExtModule
int
twice (x)
int x;
CODE:
RETVAL = x * 2;
OUTPUT:
RETVAL
上記を保存したのちに、makefile.plを事項しますが
Writing Makefile for ExtModule
Writing MYMETA.yml
というログを残すだけでmakeファイルらしき物は一向に
生成されません。
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
MODULE = ExtModule PACKAGE = ExtModule
int
twice (x)
int x;
CODE:
RETVAL = x * 2;
OUTPUT:
RETVAL
上記を保存したのちに、makefile.plを事項しますが
Writing Makefile for ExtModule
Writing MYMETA.yml
というログを残すだけでmakeファイルらしき物は一向に
生成されません。
373デフォルトの名無しさん
2012/11/07(水) 22:06:14.66 ちなみに
コマンドプロンプトから
..
159 Changes
3,555 ExtModule.c
276 ExtModule.xs
lib
29,569 Makefile
864 Makefile.PL
97 MANIFEST
502 MYMETA.yml
187,518 ppport.h
1,211 README
t
のディレクトリが成立しています
コマンドプロンプトから
..
159 Changes
3,555 ExtModule.c
276 ExtModule.xs
lib
29,569 Makefile
864 Makefile.PL
97 MANIFEST
502 MYMETA.yml
187,518 ppport.h
1,211 README
t
のディレクトリが成立しています
374デフォルトの名無しさん
2012/11/07(水) 22:08:46.56375デフォルトの名無しさん
2012/11/07(水) 23:24:53.47 メタな問題が発生しているとだけ回答しておく
376デフォルトの名無しさん
2012/11/07(水) 23:28:00.83 Makefile.PLはこの作業を自動化するmakeファイルを生成してくれます。
↑これが原因か
何とも罪作りな記事だな
そのページのコメント欄に質問として書いちゃえよ
↑これが原因か
何とも罪作りな記事だな
そのページのコメント欄に質問として書いちゃえよ
377デフォルトの名無しさん
2012/11/07(水) 23:29:47.33 注
※1 これはWindowsではうまく動かない可能性があります。
※1 これはWindowsではうまく動かない可能性があります。
378デフォルトの名無しさん
2012/11/08(木) 07:22:49.06 初歩的なミスを
した物のどの記事もWin系なのかUni系
なのかわからん記事ばかりで
一応
WindowにGnuWin32を通した物の
make: *** `makefile' に必要なターゲット `C:\Perl\libConfig.pm' を make するルー
ルがありません. 中止.
なんてエラーが
返って来る。結局Windowユーザーは
Xsubpp覚えなくてもいいってことか。
した物のどの記事もWin系なのかUni系
なのかわからん記事ばかりで
一応
WindowにGnuWin32を通した物の
make: *** `makefile' に必要なターゲット `C:\Perl\libConfig.pm' を make するルー
ルがありません. 中止.
なんてエラーが
返って来る。結局Windowユーザーは
Xsubpp覚えなくてもいいってことか。
379デフォルトの名無しさん
2012/11/09(金) 00:56:41.22 Xsubppによる利便性の低下、な
380デフォルトの名無しさん
2012/11/09(金) 12:27:18.50 >>379
これだから2cherはクズ
これだから2cherはクズ
381デフォルトの名無しさん
2012/11/09(金) 15:38:32.61 新聞じゃないんだからw
382デフォルトの名無しさん
2012/11/11(日) 22:47:24.71 先生!makeファイルがmakeされません!
383デフォルトの名無しさん
2012/11/11(日) 23:40:24.23 sudo apt-get install make
384デフォルトの名無しさん
2012/11/12(月) 09:00:12.42 active perlだと、今はコンパイラも付いてくるからそれを使う。
makeはdmakeを使う。
makeはdmakeを使う。
385デフォルトの名無しさん
2012/11/14(水) 00:00:27.32 彼女がメイク中でした。
(高見盛に激似です)
(高見盛に激似です)
386デフォルトの名無しさん
2012/11/17(土) 20:22:53.85 DOSこいっ
387デフォルトの名無しさん
2012/11/18(日) 01:18:35.04 文字列がtest_1やtest_2やtest_3のように
test_○のような形になっているかを正規表現で調べるにはどうすればいいんですか?
○の中は数字のみです
test_○のような形になっているかを正規表現で調べるにはどうすればいいんですか?
○の中は数字のみです
388デフォルトの名無しさん
2012/11/18(日) 02:26:28.96 $str =~ /\Atest_\d\z/
389デフォルトの名無しさん
2012/11/19(月) 11:30:45.47 >>387←正規表現スレじゃなくてここできいてるこの基地害なに?
390デフォルトの名無しさん
2012/11/25(日) 00:36:01.64 あげ
391デフォルトの名無しさん
2012/11/25(日) 00:36:59.73 モダン厨のすくつ
392デフォルトの名無しさん
2012/11/25(日) 00:38:10.24 さらに一文字減らせた!
($d,$m,$y)=(localtime)[3..5];printf "%04d"."-%02d"x2,1900+$y,$m+1,$d
print localtime->ymd
に対抗してコードを減らし中。
($d,$m,$y)=(localtime)[3..5];printf("%04d-%02d-%02d",1900+$y,$m+1,$d)
($d,$m,$y)=(localtime)[3..5];printf "%04d-%02d-%02d",1900+$y,$m+1,$d
($d,$m,$y)=(localtime)[3..5];printf "%04d"."-%02d"x2,1900+$y,$m+1,$d
($d,$m,$y)=(localtime)[3..5];printf "%04d"."-%02d"x2,1900+$y,$m+1,$d
print localtime->ymd
に対抗してコードを減らし中。
($d,$m,$y)=(localtime)[3..5];printf("%04d-%02d-%02d",1900+$y,$m+1,$d)
($d,$m,$y)=(localtime)[3..5];printf "%04d-%02d-%02d",1900+$y,$m+1,$d
($d,$m,$y)=(localtime)[3..5];printf "%04d"."-%02d"x2,1900+$y,$m+1,$d
393デフォルトの名無しさん
2012/11/25(日) 00:38:50.82 printfの後のスペースなくても動いた!
($d,$m,$y)=(localtime)[3..5];printf"%04d"."-%02d"x2,1900+$y,$m+1,$d
($d,$m,$y)=(localtime)[3..5];printf"%04d"."-%02d"x2,1900+$y,$m+1,$d
394デフォルトの名無しさん
2012/11/25(日) 00:44:06.73 そんなに短さにこだわるなら、無理やりprintfつかなくていいんじゃね?
sprintf馬鹿に感化されたのか知らんが。
($d,$m,$y)=(localtime)[3..5];printf"%04d"."-%02d"x2,1900+$y,$m+1,$d
($d,$m,$y)=(localtime)[3..5];print 1900+$y,"-",$m+1,"-",$d
sprintf馬鹿に感化されたのか知らんが。
($d,$m,$y)=(localtime)[3..5];printf"%04d"."-%02d"x2,1900+$y,$m+1,$d
($d,$m,$y)=(localtime)[3..5];print 1900+$y,"-",$m+1,"-",$d
395デフォルトの名無しさん
2012/11/25(日) 00:49:11.82 おっと馬鹿が勝手に条件変えてきたぞ
396デフォルトの名無しさん
2012/11/25(日) 00:51:05.56 >>394
print localtime->ymd;
これでいいんじゃね?
useまで入れたとしても短い。
use Time::Piece;print localtime->ymd;
($d,$m,$y)=(localtime)[3..5];print 1900+$y,"-",$m+1,"-",$d
print localtime->ymd;
これでいいんじゃね?
useまで入れたとしても短い。
use Time::Piece;print localtime->ymd;
($d,$m,$y)=(localtime)[3..5];print 1900+$y,"-",$m+1,"-",$d
397デフォルトの名無しさん
2012/11/25(日) 09:16:00.99 せめてPOSIX。
use POSIX;
print strftime("%Y-%m-%d", localtime);
use POSIX;
print strftime("%Y-%m-%d", localtime);
398デフォルトの名無しさん
2012/12/02(日) 11:20:23.79 どうせすぐ古くなるんだから。保守するのに時間軸の視点は必要だぞ。
399デフォルトの名無しさん
2012/12/09(日) 14:19:16.53 ポータブルPerlとかモジュールなしPerlとか
400デフォルトの名無しさん
2012/12/09(日) 15:03:54.83 struct tfield *を保持する
MyTypeをブレースしたマジック変数を作りたい。
以下の(中略)のXSソースを使ってPerl側から
Hoge*な struct tfield *head[30]をハッシュに
よって閲覧するにはどうしたら良いか。そして、
マジックをRETVALにアクティブにするはどうればよいか具体的に述べよ。
struct tfield {
struct tfield *left[30];
int num;
char str[30];
struct tfield *right[30];
};
struct tfield *talloc(void)
{
return ((struct tfield *)malloc(sizeof(struct tfield )));
}
MyTypeをブレースしたマジック変数を作りたい。
以下の(中略)のXSソースを使ってPerl側から
Hoge*な struct tfield *head[30]をハッシュに
よって閲覧するにはどうしたら良いか。そして、
マジックをRETVALにアクティブにするはどうればよいか具体的に述べよ。
struct tfield {
struct tfield *left[30];
int num;
char str[30];
struct tfield *right[30];
};
struct tfield *talloc(void)
{
return ((struct tfield *)malloc(sizeof(struct tfield )));
}
401デフォルトの名無しさん
2012/12/09(日) 15:04:52.27 MODULE = MyTypePACKAGE = MyType
HV*
DataList()
PREINIT:
struct tfield *p,*head[30];
CODE:
hash=newHV();
sv=newSV(0);
ref=newRV_noinc((SV*)newHV());
sv_setref_pv(ref,"main::Tie",head);
sv_setsv(sv,sv_2mortal(newRV_noinc((SV *)hash)));
sv_bless(sv,gv_stashpv("MyType",TRUE));
sv_magic((SV* )hash,SvIV(SvRV(ref)),PERL_MAGIC_hints,NULL,0);
if(mg_find(SvRV(sv),PERL_MAGIC_hints)!=NULL)
printf("PERL_MAGIC_hintsp\n");
p=mg_find(SvRV(sv),PERL_MAGIC_hints)->mg_obj;
RETVAL=hash;
OUTPUT:
RETVAL
HV*
DataList()
PREINIT:
struct tfield *p,*head[30];
CODE:
hash=newHV();
sv=newSV(0);
ref=newRV_noinc((SV*)newHV());
sv_setref_pv(ref,"main::Tie",head);
sv_setsv(sv,sv_2mortal(newRV_noinc((SV *)hash)));
sv_bless(sv,gv_stashpv("MyType",TRUE));
sv_magic((SV* )hash,SvIV(SvRV(ref)),PERL_MAGIC_hints,NULL,0);
if(mg_find(SvRV(sv),PERL_MAGIC_hints)!=NULL)
printf("PERL_MAGIC_hintsp\n");
p=mg_find(SvRV(sv),PERL_MAGIC_hints)->mg_obj;
RETVAL=hash;
OUTPUT:
RETVAL
402デフォルトの名無しさん
2012/12/09(日) 15:10:51.49 ちなみに環境はActive PerlでWindows7を使っています
403デフォルトの名無しさん
2012/12/09(日) 15:13:07.96 なお、提出期限は本日中とする。
404デフォルトの名無しさん
2012/12/09(日) 20:41:15.31 確かRETVALて
マジック変数だよな。Perl側にアウトライン
した時に恐らくマジックに変異してるジャマイカ?
そして、またXSに入りINT2PTRで閲覧しよう
とする。うんで、マジックが掛かってるとキズかず
隠蔽された構造体にアプローチしようとしてとする。
上手く考えが定まらず、マジックやら
文法そのものやらに、あっちやこっち浮気し
まくってたらいつの間にやら難題に押しつぶされそうになってた。
もう資料の少ないマジックに手をださないから
RETVALに代入した後の処置を教えください。
マジック変数だよな。Perl側にアウトライン
した時に恐らくマジックに変異してるジャマイカ?
そして、またXSに入りINT2PTRで閲覧しよう
とする。うんで、マジックが掛かってるとキズかず
隠蔽された構造体にアプローチしようとしてとする。
上手く考えが定まらず、マジックやら
文法そのものやらに、あっちやこっち浮気し
まくってたらいつの間にやら難題に押しつぶされそうになってた。
もう資料の少ないマジックに手をださないから
RETVALに代入した後の処置を教えください。
405デフォルトの名無しさん
2012/12/11(火) 00:35:47.74 つーか、スレまちがい
406デフォルトの名無しさん
2013/10/12(土) 16:10:02.36 今から学ぶならやっぱPerlよりPythonなのかなあ?
407デフォルトの名無しさん
2013/10/12(土) 21:02:22.21 >>406
りょうほういっとけ
りょうほういっとけ
408デフォルトの名無しさん
2014/01/05(日) 23:44:28.13 >>406
さすがにrubyやphpならともかく、pythonはナイわ
さすがにrubyやphpならともかく、pythonはナイわ
409デフォルトの名無しさん
2014/01/06(月) 16:11:01.27 解析するならPythonじゃね?
クラックコンテスト上位者はみんなPython使いのようだし。
クラックコンテスト上位者はみんなPython使いのようだし。
410デフォルトの名無しさん
2014/01/06(月) 16:12:58.25 間違えた、ハッキングコンテスト。
411デフォルトの名無しさん
2014/01/17(金) 01:37:55.47 Django使うの以外にPython使う理由が見つからない
412デフォルトの名無しさん
2014/01/17(金) 08:52:36.67 倍幅文字を含んだ文字列を端末にテーブル状に整形して表示したいのですが,
==================================
# ソースの文字コード: utf8
printf "%04s\n", 'ab';
{
use utf8;
printf "%04s\n", 'あ';
}
{
no utf8;
printf "%04s\n", 'あ';
}
===================================
00ab
000あ
0あ
use utf8 だと文字数でカウントしてるようなので
倍幅文字を含んだ行と含まない行とでズレてしまいます.
no utf8 だとバイトでカウントしているようなので
やはりズレてしまいます.
端末上に上手く整形して表示する方法はないものでしょうか?
非モダン質問箱の方は質問できる雰囲気ではなかったので
こちらで質問させて頂きました.
==================================
# ソースの文字コード: utf8
printf "%04s\n", 'ab';
{
use utf8;
printf "%04s\n", 'あ';
}
{
no utf8;
printf "%04s\n", 'あ';
}
===================================
00ab
000あ
0あ
use utf8 だと文字数でカウントしてるようなので
倍幅文字を含んだ行と含まない行とでズレてしまいます.
no utf8 だとバイトでカウントしているようなので
やはりズレてしまいます.
端末上に上手く整形して表示する方法はないものでしょうか?
非モダン質問箱の方は質問できる雰囲気ではなかったので
こちらで質問させて頂きました.
413デフォルトの名無しさん
2014/01/17(金) 14:45:12.15 my $文字幅合計=0;
my @文字群 = split //, $文字列;
for my $i(0 .. $#文字群){
$文字幅合計+=((unpack('C*', $文字群[$i]) - 30)*(unpack('C*', $文字群[$i]) - 127) < 0) ? 1 : 2;
}
文字のバイト列が31(\x1f)から126(\x7e)なら1でそれ以外は2を返す
my @文字群 = split //, $文字列;
for my $i(0 .. $#文字群){
$文字幅合計+=((unpack('C*', $文字群[$i]) - 30)*(unpack('C*', $文字群[$i]) - 127) < 0) ? 1 : 2;
}
文字のバイト列が31(\x1f)から126(\x7e)なら1でそれ以外は2を返す
414デフォルトの名無しさん
2014/01/17(金) 14:52:43.34 >>411
生粋のWeb脳って気持ち悪い
生粋のWeb脳って気持ち悪い
415デフォルトの名無しさん
2014/01/17(金) 17:55:39.71 ゴミ
416デフォルトの名無しさん
2014/01/17(金) 21:47:20.63 そういうのもうあるみたい
ttps://github.com/kaz-utashiro/MBPrintf
ttps://github.com/kaz-utashiro/MBPrintf
417デフォルトの名無しさん
2014/01/18(土) 19:55:51.97 与えられた文字列から適当な数値を求めたいんだけど
標準関数で簡単にやるにはなにかいい方法ある?
標準関数で簡単にやるにはなにかいい方法ある?
418デフォルトの名無しさん
2014/01/18(土) 21:05:51.45 せめて10レスくらい読めよ
$ perl -le 'print for unpack q{C*}, q{もじ}'
227
130
130
227
129
152
$ perl -le 'print for unpack q{C*}, q{もじ}'
227
130
130
227
129
152
419デフォルトの名無しさん
2014/01/18(土) 21:11:44.49 >>418
お前やっぱ頭良くないんだな
お前やっぱ頭良くないんだな
420デフォルトの名無しさん
2014/01/18(土) 21:13:59.31 joinすりゃいいだけじゃん
421デフォルトの名無しさん
2014/01/18(土) 21:17:28.94 >>418
それだと文字列が長い時に困るんだよね
それだと文字列が長い時に困るんだよね
422デフォルトの名無しさん
2014/01/18(土) 21:17:41.63 そこまで書かなきゃいけなかった?
423デフォルトの名無しさん
2014/01/18(土) 21:21:14.21424デフォルトの名無しさん
2014/01/18(土) 21:26:46.26 >>422
ウザ杉
ウザ杉
425デフォルトの名無しさん
2014/01/18(土) 21:27:09.30426デフォルトの名無しさん
2014/01/18(土) 21:28:17.27 あっちで釣りの続きしてればいいのに
427デフォルトの名無しさん
2014/01/18(土) 21:29:11.08428デフォルトの名無しさん
2014/01/18(土) 21:31:14.66429デフォルトの名無しさん
2014/01/18(土) 21:32:59.96 そもそもこんなところで質問してあーだこーだ言わないと使えないんだったら、
Rubyをサクッと学習してやったほうが早い。
Rubyをサクッと学習してやったほうが早い。
430デフォルトの名無しさん
2014/01/18(土) 21:33:11.61 嬉しそうだなあ、、、
431デフォルトの名無しさん
2014/01/18(土) 21:38:18.15 >>426
バーカ
バーカ
432デフォルトの名無しさん
2014/01/18(土) 21:39:58.39 嬉しそうだな、、、
433デフォルトの名無しさん
2014/01/18(土) 23:17:08.53 配列の配列を戻り値にしたいんだけど
どうしたらいい?
どうしたらいい?
434デフォルトの名無しさん
2014/01/18(土) 23:21:00.50 そういう場合は配列のリファレンスを使う
435デフォルトの名無しさん
2014/01/18(土) 23:47:42.99 自演キモw
436デフォルトの名無しさん
2014/01/19(日) 00:03:33.90 Perl厨の自演って分かりやすいな。
文章構成能力がないから、短文で一問一答w
文章構成能力がないから、短文で一問一答w
437デフォルトの名無しさん
2014/01/19(日) 08:36:16.42 お前の自演の方もなかなか解りやすいぞ、PHP厨
438デフォルトの名無しさん
2014/01/19(日) 14:34:32.39 糞言語の糞スレ
439412
2014/01/19(日) 20:39:49.50440デフォルトの名無しさん
2014/01/19(日) 20:47:27.99441デフォルトの名無しさん
2014/01/19(日) 23:18:27.65 同じこと考えるも何も、日本でPerl広めたのはこの人だよ
442デフォルトの名無しさん
2014/01/20(月) 01:59:57.20 >>439=無知の極み
443デフォルトの名無しさん
2014/01/20(月) 02:09:18.33 受け答えのレベルから推察するとシフトJISを使うことを思いついていない気がする
444デフォルトの名無しさん
2014/01/20(月) 04:37:59.99 Perl以前の知能の問題なんだろw
445デフォルトの名無しさん
2014/01/20(月) 06:18:02.59 コマンドラインで使う前提での質問なのにシフトJISってw
質問すら読解する能力無いだろ
ほんとにWebProgに帰れよドアホ
質問すら読解する能力無いだろ
ほんとにWebProgに帰れよドアホ
446デフォルトの名無しさん
2014/01/20(月) 10:35:12.20 ゴミは黙ってろ
447デフォルトの名無しさん
2014/01/20(月) 17:02:27.54448デフォルトの名無しさん
2014/01/20(月) 19:07:10.73 連レスかまして無知晒すから、解りやすいぞPHP厨
449デフォルトの名無しさん
2014/01/20(月) 22:18:42.87 キチスレ
450デフォルトの名無しさん
2014/01/24(金) 19:52:20.84 Config::INI とかTiny とかのライブラリで
コメント行は ; になっているけど
これを # にするようにできるライブラリはある?
コメント行は ; になっているけど
これを # にするようにできるライブラリはある?
451デフォルトの名無しさん
2014/01/24(金) 19:55:55.11452デフォルトの名無しさん
2014/01/24(金) 20:05:16.41 >>450
ないよ
ないよ
453デフォルトの名無しさん
2014/01/24(金) 20:33:39.02454デフォルトの名無しさん
2014/01/24(金) 20:46:52.82 >>450
ナイアルヨ
ナイアルヨ
455デフォルトの名無しさん
2014/01/25(土) 15:26:50.61 その程度も自分で調べられないとか頭悪いんだろうな
調べたら3分かかからなかったけどな
調べたら3分かかからなかったけどな
456デフォルトの名無しさん
2014/01/25(土) 23:28:51.18 このスレって何人いるんだろう?
457デフォルトの名無しさん
2014/01/26(日) 02:01:56.35 日本人だと思う
458デフォルトの名無しさん
2014/01/26(日) 02:47:37.23 おまえあれだろさっきまでなぞなぞスレにいただろ
459デフォルトの名無しさん
2014/01/26(日) 04:20:51.88 うまいw
460デフォルトの名無しさん
2014/01/26(日) 17:46:42.97 >>454 は中国人かも知れんぞ
461デフォルトの名無しさん
2014/01/26(日) 19:06:15.38 日本人ですだよ
462デフォルトの名無しさん
2014/01/26(日) 19:27:54.97 ニーハオ!
パンニハムハサム ザパニーズニダアルヨ!
ショーグンサマ バンザイ!
テポドン バンザイ!
パンニハムハサム ザパニーズニダアルヨ!
ショーグンサマ バンザイ!
テポドン バンザイ!
463デフォルトの名無しさん
2014/02/05(水) 19:25:52.75 文字列が二つあって、その比較をしたい
共通1 差分1 共通2 差分2 共通3
みたいな感じで、2箇所まで差分を抽出したい
現実的な速度で動くうまい方法ないかな
共通1 差分1 共通2 差分2 共通3
みたいな感じで、2箇所まで差分を抽出したい
現実的な速度で動くうまい方法ないかな
464デフォルトの名無しさん
2014/02/05(水) 19:28:44.02 >>463
他人に頼る前提で始めるような馬鹿には無理。
他人に頼る前提で始めるような馬鹿には無理。
465デフォルトの名無しさん
2014/02/05(水) 19:37:38.58466デフォルトの名無しさん
2014/02/05(水) 19:44:06.43 自分で試すことすらしない猿未満の低能には言うだけ無駄
猿ですら目的達成のために試行錯誤するのに
猿ですら目的達成のために試行錯誤するのに
467デフォルトの名無しさん
2014/02/05(水) 19:54:20.78 $str1 = 'aaabbbcccdddeee';
$str2 = 'aaafffcccgggeee';
$test = $str1 . "\t" . $str2;
$test =~ /(.+)(.+?)(.+)(.+?)(.+)\t\1(.+?)\3(.+?)\5/;
$c1 = $1;
$d11 = $2;
$c2 = $3;
$d12 = $4;
$c3 = $5;
$d21 = $6;
$d22 = $7;
print "$c1 $d11 $c2 $d12 $c3\n";
print "$c1 $d21 $c2 $d22 $c3\n";
結果
aaa bbb ccc ddd eee
aaa fff ccc ggg eee
こんなのはすぐに思い付くと思う
ところがこれは、文字列の長さが100文字とかでもう遅すぎて使えなくなる
$str2 = 'aaafffcccgggeee';
$test = $str1 . "\t" . $str2;
$test =~ /(.+)(.+?)(.+)(.+?)(.+)\t\1(.+?)\3(.+?)\5/;
$c1 = $1;
$d11 = $2;
$c2 = $3;
$d12 = $4;
$c3 = $5;
$d21 = $6;
$d22 = $7;
print "$c1 $d11 $c2 $d12 $c3\n";
print "$c1 $d21 $c2 $d22 $c3\n";
結果
aaa bbb ccc ddd eee
aaa fff ccc ggg eee
こんなのはすぐに思い付くと思う
ところがこれは、文字列の長さが100文字とかでもう遅すぎて使えなくなる
468デフォルトの名無しさん
2014/02/05(水) 19:57:49.18 こういうのを見るたびに
足りないのは知識やスキルではなく羞恥心なんだなと思う
足りないのは知識やスキルではなく羞恥心なんだなと思う
469デフォルトの名無しさん
2014/02/05(水) 21:11:10.78 >>467
ここはごみ捨て場ではありません。
ここはごみ捨て場ではありません。
470デフォルトの名無しさん
2014/02/05(水) 21:26:16.47 2つの文字列を文字ごとに分解して2つの配列を作ってから↓
ttp://perldoc.jp/docs/modules/Algorithm-Diff-1.15/Diff.pod
ttp://perldoc.jp/docs/modules/Algorithm-Diff-1.15/Diff.pod
471デフォルトの名無しさん
2014/02/05(水) 22:05:27.01 実に頭の悪そうな回答がきたなw
472デフォルトの名無しさん
2014/02/05(水) 22:39:45.84 diffは多少一致してない部分があってもいい、みたいな曖昧な判定をするから、
余計にややこしいんだよな
余計にややこしいんだよな
473デフォルトの名無しさん
2014/02/05(水) 23:42:17.25 うちのLarryに何か用かい?
474デフォルトの名無しさん
2014/02/06(木) 01:46:47.51 おれならxor使うけどね
475デフォルトの名無しさん
2014/06/20(金) 08:07:41.06ID:w/WZ2GYd say "";
476デフォルトの名無しさん
2015/02/07(土) 15:14:06.33ID:yYV1uKlQ ネットで検索する時は単語をスペースで区切ってそのANDで結果を得るけど、
同じことを正規表現でやりたい時はどう書けばいい?
同じことを正規表現でやりたい時はどう書けばいい?
477デフォルトの名無しさん
2015/02/26(木) 19:17:26.46ID:0RIBJGtF 「$s が hello と world の両方にマッチする」なら、単に
$s =~ /hello/ && $s =~ /world/
と書くだけじゃないの?質問がよく分からないのだけれども
$s =~ /hello/ && $s =~ /world/
と書くだけじゃないの?質問がよく分からないのだけれども
478デフォルトの名無しさん
2015/02/26(木) 20:48:44.94ID:G3LqtZtx479デフォルトの名無しさん
2015/02/26(木) 21:43:04.63ID:dwtaxn6g 否定の先読みなんかせんでも
print ‘foobar’ if /(?:foo.*?bar|bar.*?foo)/ ;
で良いんじゃねーのか
print ‘foobar’ if /(?:foo.*?bar|bar.*?foo)/ ;
で良いんじゃねーのか
480デフォルトの名無しさん
2015/02/26(木) 21:54:30.24ID:RGF9/3q7 入力がスペース区切りの文字列なんだよ
481デフォルトの名無しさん
2015/02/27(金) 00:27:41.82ID:xTYPuOZ2 仮に検索エンジンみたいなのを書くにしても
何を対象にするのかとか、検索単位とかを決めてもらわんと書きづらいぞ
「同じこと」の通り「対象:Webサイト、単位:ページ」ならGoogleに投げりゃ済むし
何を対象にするのかとか、検索単位とかを決めてもらわんと書きづらいぞ
「同じこと」の通り「対象:Webサイト、単位:ページ」ならGoogleに投げりゃ済むし
482デフォルトの名無しさん
2015/02/27(金) 00:34:35.35ID:dW0+IHnO 検索対象も文字列に決まってるだろ
正規表現でのマッチングだっつってるんだから
逃げてないで考えてみれ
正規表現でのマッチングだっつってるんだから
逃げてないで考えてみれ
483デフォルトの名無しさん
2015/02/27(金) 01:46:02.77ID:xTYPuOZ2484デフォルトの名無しさん
2015/02/27(金) 06:35:52.51ID:dW0+IHnO またよく判らん屁理屈を
検索の単位が文字列に対してで、それがどこから来たかは問題にならないだろ
まあ、大抵はファイルからだろうけど
で、ファイルならこんなツールがあるよ、みたいな感じで本題から逃げたいのが見え見え
検索の単位が文字列に対してで、それがどこから来たかは問題にならないだろ
まあ、大抵はファイルからだろうけど
で、ファイルならこんなツールがあるよ、みたいな感じで本題から逃げたいのが見え見え
485デフォルトの名無しさん
2015/02/27(金) 09:44:40.27ID:xTYPuOZ2 >>484
いやまあ、文字列に対してなら
my $hit = 1;
for my $ptn (split(" ",$search)) {
$s =~ /$ptn/ or $hit = 0;
}
こんなんで出来ると思うけど、こんなんで本当に良いのか?
後出し条件とか大量に出てきそうな感じがするんだが
いやまあ、文字列に対してなら
my $hit = 1;
for my $ptn (split(" ",$search)) {
$s =~ /$ptn/ or $hit = 0;
}
こんなんで出来ると思うけど、こんなんで本当に良いのか?
後出し条件とか大量に出てきそうな感じがするんだが
486デフォルトの名無しさん
2015/02/27(金) 20:22:44.34ID:JIR4zlR2 お前は、「ワンライナーでどうやりますか」って質問に
スクリプト作成して答えるのか?
「正規表現でどうやりますか?」って質問には、
普通に正規表現で答えりゃいいだろうが。
実際、質問への答えは、
>>477->>479で終了してる。
後出しを心配するなら実際に後出しされてから
盛大に罵倒しろよ
スクリプト作成して答えるのか?
「正規表現でどうやりますか?」って質問には、
普通に正規表現で答えりゃいいだろうが。
実際、質問への答えは、
>>477->>479で終了してる。
後出しを心配するなら実際に後出しされてから
盛大に罵倒しろよ
487デフォルトの名無しさん
2015/02/28(土) 15:03:31.15ID:6vZKnEo0 あえて制限をつけてパズルとして解くならともかく
現実的な解としては >>477 で十分だよな
現実的な解としては >>477 で十分だよな
488デフォルトの名無しさん
2015/02/28(土) 16:50:40.78ID:05aMjvqG 元々の要求はただのスペース区切りだから、パラメータ数は不定で、
パラメータ抽出して、その全部に対してマッチングを繰り返すという当たり前の処理になる
でも、そんなことは最初から判っているのでわざわざ聞く筈がない
スペース区切りの文字列をそのまま使ってマッチングがしたいなら、
残念ながらperlの正規表現でそんなことは出来ない、が答えとなる
パラメータ抽出して、その全部に対してマッチングを繰り返すという当たり前の処理になる
でも、そんなことは最初から判っているのでわざわざ聞く筈がない
スペース区切りの文字列をそのまま使ってマッチングがしたいなら、
残念ながらperlの正規表現でそんなことは出来ない、が答えとなる
489デフォルトの名無しさん
2015/02/28(土) 17:32:00.47ID:JKlRGoUv 本物のコミュ障だなぁ
粘着されてる>>476が、可哀想だわ。
粘着されてる>>476が、可哀想だわ。
490デフォルトの名無しさん
2015/02/28(土) 17:35:55.35ID:e1yM9CPU491デフォルトの名無しさん
2015/02/28(土) 19:58:12.22ID:HemDgo4Q ◯正規表現で、AND検索の実装って、どうやんの?
×正規表現で、「スペースを使って」AND検索の実装って、どうやんの?
「わざわざ聞く筈がない」まで、分かってんなら、
自分の解釈の仕方が間違ってないか、
自問しろよ
×正規表現で、「スペースを使って」AND検索の実装って、どうやんの?
「わざわざ聞く筈がない」まで、分かってんなら、
自分の解釈の仕方が間違ってないか、
自問しろよ
492デフォルトの名無しさん
2016/01/10(日) 13:39:26.30ID:/ndDSiBm 971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某
強烈加齢臭
メール見ない メール無視
ドキュメント見ない ドキュメント無視
説明聞かない 説明無視
話聞かない 話無視
ガム→むっちゃー むっちゃー むっちゃー むっちゃー
煎餅→バリバリバリバリバリバリ
菓子パン→モグモグモグモグモグモグモグモグモグモグ
カップアイス→むっちゃー むっちゃー ペロペロペロペロ
フロアすべてに響き渡る 超ばかでかいくしゃみ 当然手でおさえない
異音と異振動
ドスーン!ドスーン! ドカーン!ドカーン! バコーン!バコーン! ズドン!ズドン!
机が近いとマウスポインターが飛ぶ 誤操作誘発
書類だしたりしまうだけでドカンドカン
30秒ごとに口と鼻から異音
ふんっっ! ふんっっ!
備品破壊 貸与P C 破壊 他人のもの破壊
奴の作ったスクリプトとプログラムは使えない バグ製造機
電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
自称スーパープログラマー某
強烈加齢臭
メール見ない メール無視
ドキュメント見ない ドキュメント無視
説明聞かない 説明無視
話聞かない 話無視
ガム→むっちゃー むっちゃー むっちゃー むっちゃー
煎餅→バリバリバリバリバリバリ
菓子パン→モグモグモグモグモグモグモグモグモグモグ
カップアイス→むっちゃー むっちゃー ペロペロペロペロ
フロアすべてに響き渡る 超ばかでかいくしゃみ 当然手でおさえない
異音と異振動
ドスーン!ドスーン! ドカーン!ドカーン! バコーン!バコーン! ズドン!ズドン!
机が近いとマウスポインターが飛ぶ 誤操作誘発
書類だしたりしまうだけでドカンドカン
30秒ごとに口と鼻から異音
ふんっっ! ふんっっ!
備品破壊 貸与P C 破壊 他人のもの破壊
奴の作ったスクリプトとプログラムは使えない バグ製造機
電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
493デフォルトの名無しさん
2016/01/10(日) 17:45:28.72ID:lr/f1ZoA Perl 5 version 16の正規表現で、地の文の一部としてマッチさせたいときに
バックスラッシュでエスケープせねばならない文字の一覧を教えてください
文字集合[ ]の内外で違うとか、文脈依存があればそれも知りたいです
バックスラッシュでエスケープせねばならない文字の一覧を教えてください
文字集合[ ]の内外で違うとか、文脈依存があればそれも知りたいです
494デフォルトの名無しさん
2016/01/10(日) 22:39:51.49ID:iK/aBQIt 何をしたいのか知らないけど
http://perldoc.jp/index/core
で疑問のほとんどは解決すると思う。
まあ、エスケープすべき文字を知りたいということならそれは「英数字以外」だ。
\Q と quotemeta 関数について調べてみてほしい。
http://perldoc.jp/index/core
で疑問のほとんどは解決すると思う。
まあ、エスケープすべき文字を知りたいということならそれは「英数字以外」だ。
\Q と quotemeta 関数について調べてみてほしい。
495デフォルトの名無しさん
2016/01/11(月) 19:10:22.91ID:JutXF6Cv >>494
ありがとうございます。
質問の動機は単に手で正規表現を書くときエスケープすべきかどうか
悩ましかったから(実際には「+」や「:」や「#」とか「[ ]」の外の「-」はエスケープ無しでも通っていそう)
だったからですが、エスケープして無害ということであればそうします
それはそうとしてquotemeta便利杉、
ありがとうございます。
質問の動機は単に手で正規表現を書くときエスケープすべきかどうか
悩ましかったから(実際には「+」や「:」や「#」とか「[ ]」の外の「-」はエスケープ無しでも通っていそう)
だったからですが、エスケープして無害ということであればそうします
それはそうとしてquotemeta便利杉、
496デフォルトの名無しさん
2016/01/23(土) 00:11:45.16ID:ACxJywqs すまん
Perl 6使った奴おるか
Perl 6使った奴おるか
497デフォルトの名無しさん
2016/01/23(土) 06:03:31.81ID:mGQek17v >>496
おるけど?
まだ後10年は掛る。
触る必要無し
処理速度とか早くなってんのかも知れんけど、
起動が遅くて、使い物にならん。
挙動もバギー、docも揃ってない。
止事無き事情から、アルファ版を正式版として
リリースしただけじゃね?
おるけど?
まだ後10年は掛る。
触る必要無し
処理速度とか早くなってんのかも知れんけど、
起動が遅くて、使い物にならん。
挙動もバギー、docも揃ってない。
止事無き事情から、アルファ版を正式版として
リリースしただけじゃね?
498デフォルトの名無しさん
2016/02/07(日) 22:53:45.48ID:zQAcaA+r 外部コマンドの話が出てて思い出したけど、
外部コマンドを実行するときに任意の文字列を外部コマンドの引数として渡したい場合、
Linux環境でエスケープすべき文字は?
シングルクォートとバックスラッシュだけエスケープして、それをシングルクォートで括ればOK?
外部コマンドを実行するときに任意の文字列を外部コマンドの引数として渡したい場合、
Linux環境でエスケープすべき文字は?
シングルクォートとバックスラッシュだけエスケープして、それをシングルクォートで括ればOK?
499デフォルトの名無しさん
2016/02/09(火) 22:03:18.36ID:390QsJXI なんかPerl 5.16.1のウィンドーズ版のUTF-8対応は中途半端な希ガス、
use utf8;としてUTF-8でソースコードを書いても
open()のファイル名とかsystem()に与えるコマンド文字列とかが'shiftjis'(正確には'cp932')のままだし、
コマンド引数も'shiftjis'(正確には'cp932')のままだし、
なんでああなんですかね…
use utf8;としてUTF-8でソースコードを書いても
open()のファイル名とかsystem()に与えるコマンド文字列とかが'shiftjis'(正確には'cp932')のままだし、
コマンド引数も'shiftjis'(正確には'cp932')のままだし、
なんでああなんですかね…
500デフォルトの名無しさん
2016/02/09(火) 23:41:10.97ID:J9+y92l0 dankogaiがのらりくらりうまく回避しちゃうからじゃない?
俺はもうperlでsjis処理するのはあきらめた。
俺はもうperlでsjis処理するのはあきらめた。
501デフォルトの名無しさん
2016/02/12(金) 00:23:06.63ID:kq1OODWj いろいろ面倒なんで、俺は use utf8; を使わないことにしたよ。
502デフォルトの名無しさん
2016/02/13(土) 14:58:53.06ID:vq3C3FT5 >>498
シェルを経由するのならシェルのマニュアルを読みなさいとしか言えない。
bash の場合なら「定義」の項のメタ文字と「クォート」の項。
シングルクォートなら大体大丈夫なはずだけど。
そういう心配をしなきゃならないならシェルを呼ばない方が無難。
シェル経由でなければシステムコールするだけだから。
シェルを経由するのならシェルのマニュアルを読みなさいとしか言えない。
bash の場合なら「定義」の項のメタ文字と「クォート」の項。
シングルクォートなら大体大丈夫なはずだけど。
そういう心配をしなきゃならないならシェルを呼ばない方が無難。
シェル経由でなければシステムコールするだけだから。
503デフォルトの名無しさん
2016/02/14(日) 22:17:05.33ID:ctVTXhCg >>498
もしかして、普段は Windows 使ってるからコマンドラインを作って渡す方法しか知らないとかそういうこと?
もしかして、普段は Windows 使ってるからコマンドラインを作って渡す方法しか知らないとかそういうこと?
504デフォルトの名無しさん
2016/02/14(日) 22:28:48.47ID:d+6VipxK 思い付きで気軽にコマンドライン作って出力をキャプチャできるのがLLの良いところなのにね。
505デフォルトの名無しさん
2016/02/15(月) 12:21:34.14ID:9WjYXC66 >>504
助けてあげる気が無いなら引っ込んでてくれないか?
助けてあげる気が無いなら引っ込んでてくれないか?
506デフォルトの名無しさん
2016/02/15(月) 15:10:01.24ID:8Z92Uy24 >>498
" " 内では、「$(変数展開) \ `(コマンド置換) !(ヒストリ)」が展開される。
' ' 内では、展開されない。
\ は直後の1文字の機能を無効化する
メタキャラクタ・特殊文字なら、他にも多数。
? * > >> < << | ~ & など
ただし、「! ~」は、bashのみ
" " 内では、「$(変数展開) \ `(コマンド置換) !(ヒストリ)」が展開される。
' ' 内では、展開されない。
\ は直後の1文字の機能を無効化する
メタキャラクタ・特殊文字なら、他にも多数。
? * > >> < << | ~ & など
ただし、「! ~」は、bashのみ
507デフォルトの名無しさん
2016/02/16(火) 03:32:48.12ID:y+ZjOqCo モダンPerl入門 増補改訂版(仮)
http://codezine.jp/book/modernperl2
http://codezine.jp/book/modernperl2
508デフォルトの名無しさん
2016/02/16(火) 21:30:09.30ID:MTIgWlq3 刊行日: 2014年1月予定
509デフォルトの名無しさん
2016/02/17(水) 00:23:01.67ID:wnysiCN2 なんと!もう発売されていましたか!
510デフォルトの名無しさん
2016/02/23(火) 20:40:57.84ID:RqQoWDN5 これからPerlを学ぶメリットってある?
511デフォルトの名無しさん
2016/02/23(火) 21:43:14.01ID:Oh6h4g2T いっぱーぃぁる
いっぱーぁある
いっぱーぁる
いっぱーる
いっぱーぁある
いっぱーぁる
いっぱーる
512デフォルトの名無しさん
2016/02/24(水) 02:40:25.37ID:lkPqYQmC UNIXの歴史をエッセンスにしてUNIX以外でも使えるようにした言語だから学ぶ価値はある。
おれの場合はWindows上で毎日使ってる。慣れの問題もあるが他の言語だとこうはいかない。
おれの場合はWindows上で毎日使ってる。慣れの問題もあるが他の言語だとこうはいかない。
513デフォルトの名無しさん
2016/02/24(水) 02:47:53.12ID:RDH9smV+ 他の言語もWindowsで使えるだろ
514デフォルトの名無しさん
2016/02/24(水) 05:22:56.15ID:0U45vlYv バージョンをきにしなくていいなら、Perlは、Windows 2000のパソコンでもつかえる。
現在のRubyは、インストーラがうごかない。インストーラがうごいても、実行時にDLLがどうのこうのいってエラー
Pythonも同様だろう、インストールがめんどくさいのは、損ですよ
Ruby, PythonでもCygwinならいけるかも
Cygwinがきらいなひとは、こまります
現在のRubyは、インストーラがうごかない。インストーラがうごいても、実行時にDLLがどうのこうのいってエラー
Pythonも同様だろう、インストールがめんどくさいのは、損ですよ
Ruby, PythonでもCygwinならいけるかも
Cygwinがきらいなひとは、こまります
515デフォルトの名無しさん
2016/02/24(水) 05:26:37.80ID:0U45vlYv C, Perlならイヤなおもいをしなくていい
516デフォルトの名無しさん
2016/02/26(金) 20:40:22.77ID:S1uVBK59 今時Cigwinなんて使ってるやついるの?
使う理由が見当たらないんだけど…。
使う理由が見当たらないんだけど…。
517デフォルトの名無しさん
2016/02/26(金) 21:57:44.67ID:dBO2xm/m518デフォルトの名無しさん
2016/02/26(金) 23:40:31.20ID:5TeMxoC2 >>516
cygwinはインストールが楽でいいんだよ
cygwinはインストールが楽でいいんだよ
519デフォルトの名無しさん
2016/02/27(土) 21:54:12.18ID:EDqxACn8 >>517
その使い方こそがもう洋ナシなんじゃないの?
その使い方こそがもう洋ナシなんじゃないの?
520デフォルトの名無しさん
2016/02/28(日) 07:42:58.32ID:0vKPLMUN521デフォルトの名無しさん
2016/02/28(日) 11:25:02.81ID:jJK+500Y >>517
cygwin+Perlでできて、バッチファイル(cmd.exe)+Perlでできないこととは…?
cygwin+Perlでできて、バッチファイル(cmd.exe)+Perlでできないこととは…?
522デフォルトの名無しさん
2016/02/28(日) 11:39:02.77ID:w1saw6Ta >>521
その場合、Perlの部分は同じ。違うのは cmd.exe と bash (またはzsh) なので
コマンドプロンプトで出来ないこととは、シェルとシェルスクリプトの実行ということになる。
つまりbash(zsh)の快適な操作性が、cmd.exeにはない。
LinuxやMacで動くシェルスクリプトがcmd.exeでは動かない。
その場合、Perlの部分は同じ。違うのは cmd.exe と bash (またはzsh) なので
コマンドプロンプトで出来ないこととは、シェルとシェルスクリプトの実行ということになる。
つまりbash(zsh)の快適な操作性が、cmd.exeにはない。
LinuxやMacで動くシェルスクリプトがcmd.exeでは動かない。
523デフォルトの名無しさん
2016/02/28(日) 22:48:20.46ID:Ozi57itY パスに日本語使わない運用ならね
でもそれって制限きついよね?仕事で使うのはまず無理だな
でもそれって制限きついよね?仕事で使うのはまず無理だな
524デフォルトの名無しさん
2016/02/28(日) 23:03:09.55ID:w1saw6Ta525デフォルトの名無しさん
2016/02/29(月) 21:02:02.19ID:VLQsoBHX >>520
個人環境なら好きにやればいいんじゃない?
個人環境なら好きにやればいいんじゃない?
526デフォルトの名無しさん
2016/07/18(月) 23:24:13.82ID:RVsoZVBC ロブ・パイク語録。
>「UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている」 - 1991年ごろ
(中略)
>「そういった日々は過ぎ去り、賛辞は Perl にもたらされた」 - [7] 単機能ツールについて
賛辞は Perl にもたらされた!
>「UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている」 - 1991年ごろ
(中略)
>「そういった日々は過ぎ去り、賛辞は Perl にもたらされた」 - [7] 単機能ツールについて
賛辞は Perl にもたらされた!
527デフォルトの名無しさん
2016/08/18(木) 07:54:36.84ID:VLXPL8iW528デフォルトの名無しさん
2017/04/14(金) 21:43:32.26ID:zXRfLbO9 win7でactiveperl
`コマンド` からの応答をファイルに書き出したい
テキストならうまくいくけど、バイナリで失敗する
書き出し用のファイルはbinmodeにしてるので、受取側がおかしい
binmode STDIN
にはしてるけど変わらないみたい
C:> コマンド > file.bin
でリダイレクトすると成功するので、コマンド自体はちゃんと動いてる
何が悪いんだろう
`コマンド` からの応答をファイルに書き出したい
テキストならうまくいくけど、バイナリで失敗する
書き出し用のファイルはbinmodeにしてるので、受取側がおかしい
binmode STDIN
にはしてるけど変わらないみたい
C:> コマンド > file.bin
でリダイレクトすると成功するので、コマンド自体はちゃんと動いてる
何が悪いんだろう
529デフォルトの名無しさん
2017/04/14(金) 22:10:00.52ID:w+Tu3XlB どういう具合に失敗するんだ?
バイナリをテキストとして解釈するのか?
バイナリをテキストとして解釈するのか?
530デフォルトの名無しさん
2017/04/14(金) 22:32:15.06ID:zXRfLbO9 バイナリエディタとか無いから詳しくは判らないけど、
pptファイルを開こうとしても怒られる
pptファイルを開こうとしても怒られる
531デフォルトの名無しさん
2017/04/15(土) 15:32:32.25ID:40tq7pz4 再現する最小コード書けや
バイナリエディタもフリーのあるやろ
バイナリエディタもフリーのあるやろ
532デフォルトの名無しさん
2017/04/15(土) 15:37:15.38ID:4y1tBhnC フリーソフトを勝手にインストールできない
533デフォルトの名無しさん
2017/04/15(土) 15:50:50.88ID:40tq7pz4 exe単体のもあるしそれさえアウトでも家の環境で再現させられるだろ
つか業務関連なら会社で聞けば
つか業務関連なら会社で聞けば
534デフォルトの名無しさん
2017/04/15(土) 16:02:38.46ID:4y1tBhnC 知らないなら黙ってればいいのに
何かバイナリを標準出力に吐くコマンドなら何でも試せる筈
なかなかそういうサンプルが無いけど
何かバイナリを標準出力に吐くコマンドなら何でも試せる筈
なかなかそういうサンプルが無いけど
535デフォルトの名無しさん
2017/04/15(土) 19:42:34.21ID:klGQGN6C いいからお前の環境で再現するコードを書けよ
536デフォルトの名無しさん
2017/04/15(土) 20:14:19.75ID:4y1tBhnC これだけの情報で判らないならコード見ても判らないよ
binmode STDIN;
$result = `SomeCom.exe`;
open $out, '>', 'outfile.bin';
binmode $out;
print $result;
これだとNGで、
C:> SomeCom.exe > outfile.bin
これならOKになる
binmode STDIN;
$result = `SomeCom.exe`;
open $out, '>', 'outfile.bin';
binmode $out;
print $result;
これだとNGで、
C:> SomeCom.exe > outfile.bin
これならOKになる
537デフォルトの名無しさん
2017/04/15(土) 20:28:40.15ID:X2azyrMV binmode指定しないとダメなの?
538デフォルトの名無しさん
2017/04/15(土) 21:14:47.45ID:klGQGN6C >>536
どう見ても標準出力に吐いてるんだけどそのコードで再現することは当然確認したんだよね?
どう見ても標準出力に吐いてるんだけどそのコードで再現することは当然確認したんだよね?
539デフォルトの名無しさん
2017/04/15(土) 23:58:48.07ID:j4gmMNAx STDINは関係ない
パイプをバイナリモードにしろ
パイプをバイナリモードにしろ
540デフォルトの名無しさん
2017/04/16(日) 00:22:01.12ID:h3ZKvGOL open $in, '-|', 'SomeCom.exe';
binmode $in;
$result = <$in>;
こんな感じか
` ` を使う限り解決できない?
binmode $in;
$result = <$in>;
こんな感じか
` ` を使う限り解決できない?
541デフォルトの名無しさん
2017/04/16(日) 00:23:16.22ID:h3ZKvGOL あ、違う
@result に受けて結合か
そこでもまた改行コードが何かしそうな不安が
@result に受けて結合か
そこでもまた改行コードが何かしそうな不安が
542デフォルトの名無しさん
2017/04/17(月) 21:59:30.64ID:MMDneckh543デフォルトの名無しさん
2017/04/23(日) 22:19:57.91ID:RpWO8O1f 答えを知ってる人はシンプルにいきなり正解のみを示すんだよな
で、必要な知識のない人が見当違いのことをいろいろ書いて掻き回す
で、必要な知識のない人が見当違いのことをいろいろ書いて掻き回す
544デフォルトの名無しさん
2018/02/16(金) 06:37:50.13ID:W1XJdyx1 ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
545デフォルトの名無しさん
2018/02/16(金) 20:54:02.63ID:YSXjevvC あれ?そういやこのスレは消化されないまま残ってたの?ちょっと前に63箱目が1000になったんだけど。
じゃあ新スレ立てずにそのままここ使う?
じゃあ新スレ立てずにそのままここ使う?
546デフォルトの名無しさん
2018/02/17(土) 13:11:36.41ID:m8W4h2UJ >>545 ここで良いんじゃない?
Windows7 で ActivePerl 5.16.3 を使っているんだけど、改行が CR LF (0D 0A) のファイルを
<> で読み込むと、行末が LF (0A) だけになる。これはなぜに?
Windows7 で ActivePerl 5.16.3 を使っているんだけど、改行が CR LF (0D 0A) のファイルを
<> で読み込むと、行末が LF (0A) だけになる。これはなぜに?
547デフォルトの名無しさん
2018/02/17(土) 13:45:31.82ID:wW66TFqR548デフォルトの名無しさん
2018/02/17(土) 14:32:59.21ID:m8W4h2UJ >>547 サンクス。できたできた。
549デフォルトの名無しさん
2018/02/19(月) 12:04:01.90ID:9O6KBvIf 63箱目のテンプレこぴっとく
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)
▼前スレ
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)
▼前スレ
550デフォルトの名無しさん
2018/02/20(火) 08:19:10.59ID:Zrzi4SG9 >>549
CGIの話題もム板でいい筈じゃ?
WEBプログラミング板に該当スレが無くなったってのが、理由だったような。
後は、下記を修正。
www.perl.org/get.html
Download Latest Stable Source (5.26.1)
▼前スレ
Perlについての質問箱 63箱目
http://mevius.5ch.net/test/read.cgi/tech/1392820583/
CGIの話題もム板でいい筈じゃ?
WEBプログラミング板に該当スレが無くなったってのが、理由だったような。
後は、下記を修正。
www.perl.org/get.html
Download Latest Stable Source (5.26.1)
▼前スレ
Perlについての質問箱 63箱目
http://mevius.5ch.net/test/read.cgi/tech/1392820583/
551デフォルトの名無しさん
2018/02/20(火) 09:05:34.87ID:67uqfrCT これが次スレになったのね。
おいらもそうだが、
最近、スレが立てられなくなった人が多いのかな?
おいらもそうだが、
最近、スレが立てられなくなった人が多いのかな?
552デフォルトの名無しさん
2018/02/20(火) 10:46:08.66ID:vE/Q7KOY >>550
もしやあなたはCGIとPerlの区別がつかない人?
もしやあなたはCGIとPerlの区別がつかない人?
553デフォルトの名無しさん
2018/03/03(土) 15:00:12.27ID:y3R+TCM+ websocketをやってみたいんですが、Net::WebSocketというのとProtocol::WebSocketというのが検索で掛かります。
どっちを使うのでしょうか
どっちを使うのでしょうか
554デフォルトの名無しさん
2018/03/03(土) 15:02:25.59ID:y3R+TCM+ サーバにしたいです
555デフォルトの名無しさん
2018/03/03(土) 18:32:08.00ID:9T1Mlbb8 Mojolicious
556デフォルトの名無しさん
2018/03/05(月) 16:53:07.80ID:vyqV3ojD >>555
フレームワークは勉強の為に避けようと思います。
フレームワークは勉強の為に避けようと思います。
557デフォルトの名無しさん
2018/03/05(月) 18:51:20.07ID:p13q4iUt 正直websocketやるのにPeal選ぶ意味は無い気がする
やりたいってんなら止めないけど
node.jsとかgoでいいような
適材適所というか
やりたいってんなら止めないけど
node.jsとかgoでいいような
適材適所というか
558デフォルトの名無しさん
2018/03/06(火) 11:48:05.65ID:tpILJMN5 汎用的なものが作れないかと思っています。
スピードを求めるならjavaで作ろうと思います。
スピードを求めるならjavaで作ろうと思います。
559デフォルトの名無しさん
2018/03/07(水) 00:30:44.98ID:RIrp8kCR とりあえずやってみれば。
ダメなら乗り換えれば。
ダメなら乗り換えれば。
560デフォルトの名無しさん
2018/03/18(日) 10:31:45.09ID:cNEg10A5 perlでサーバーAで計算した値をサーバーBに送り表示することってできますか?
できるならどうやるんですか?
できればモジュールなくても使える方法がいいです。
できるならどうやるんですか?
できればモジュールなくても使える方法がいいです。
561デフォルトの名無しさん
2018/03/18(日) 11:47:09.15ID:JGqM6rnc サーバーAで計算した値をサーバーBに送るとはどういうことか、何に表示したいのか
perlの前にここを明らかにした方がいい
perlの前にここを明らかにした方がいい
562デフォルトの名無しさん
2018/03/18(日) 12:33:37.42ID:cNEg10A5 >>561
もっとわかりやすいように質問変更する
サーバーAでログインIDとパスワード入力して
サーバーBに置いてあるユーザー情報と比較してログイン成功なら
サーバーAにログイン成功だと言う情報を送りたい
こういうこと
もっとわかりやすいように質問変更する
サーバーAでログインIDとパスワード入力して
サーバーBに置いてあるユーザー情報と比較してログイン成功なら
サーバーAにログイン成功だと言う情報を送りたい
こういうこと
563デフォルトの名無しさん
2018/03/18(日) 13:33:56.77ID:JGqM6rnc use HTTP::Tiny; # v5.14から標準モジュール
my $response = HTTP::Tiny->new->post_form('サーバーBのURL', {id => $id, password => $password});
if ($response->{success}) {
print '成功';
}
else {
print '失敗';
}
----------
AからBに問い合わせてその結果をAで使うならこんな感じで行けるんじゃない
my $response = HTTP::Tiny->new->post_form('サーバーBのURL', {id => $id, password => $password});
if ($response->{success}) {
print '成功';
}
else {
print '失敗';
}
----------
AからBに問い合わせてその結果をAで使うならこんな感じで行けるんじゃない
564デフォルトの名無しさん
2018/03/18(日) 17:24:24.80ID:kbqiSgza ぜんぜんわかりやすくない。
「ログイン」といってもいろいろ。
Webサイトについてだったら、WWW::Mechanizeとかそういう?
https://www.google.co.jp/search?q=perl+mechanize
「ログイン」といってもいろいろ。
Webサイトについてだったら、WWW::Mechanizeとかそういう?
https://www.google.co.jp/search?q=perl+mechanize
565デフォルトの名無しさん
2018/03/18(日) 19:37:28.90ID:z/qjkhKV perl関係ないな
仕様のはなしからだろ
仕様のはなしからだろ
566デフォルトの名無しさん
2018/03/18(日) 20:51:03.76ID:Cc3+LG/u 鯖へのログインなのか、それともHTMLページ等でのログインなのかも分からん
567デフォルトの名無しさん
2018/03/30(金) 12:35:13.04ID:5tmqHLck Perlのソケット通信にて、とあるAPIへのリクエストに対して送られてきた全応答を全て取得した上で処理をしたいと思っています。
たとえば簡単な例だと
応答データ例:(00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10);
データは00〜FF全てを含み、終了は6連続"00 00 00 00 00 00"になった場合となります。
==
my $data = <$socket>; # data => 00 01 02 03 04 05 06 07 08 09 0a
my $data2 = <$socket>; # pending....
==
$/ = \x5;
my $data = <$socket>; # data => 00 01 02 03 04 05
my $data2 = <$socket>; # pending....
==
のように、$/に当たるデータで停止してしまいます。$data2は待てど暮らせど進みません。
また6バイトで1組なので、sysread($socket,$buf,6)や$socket->recv($buf,6,0)、recv($socket,$buf,6,0)
といった方法もしてみましたが、これら全てpending...状態で1こちらも待てど暮らせど進みませんでした。
一括で取得する方法はありませんでしょうか。
たとえば簡単な例だと
応答データ例:(00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10);
データは00〜FF全てを含み、終了は6連続"00 00 00 00 00 00"になった場合となります。
==
my $data = <$socket>; # data => 00 01 02 03 04 05 06 07 08 09 0a
my $data2 = <$socket>; # pending....
==
$/ = \x5;
my $data = <$socket>; # data => 00 01 02 03 04 05
my $data2 = <$socket>; # pending....
==
のように、$/に当たるデータで停止してしまいます。$data2は待てど暮らせど進みません。
また6バイトで1組なので、sysread($socket,$buf,6)や$socket->recv($buf,6,0)、recv($socket,$buf,6,0)
といった方法もしてみましたが、これら全てpending...状態で1こちらも待てど暮らせど進みませんでした。
一括で取得する方法はありませんでしょうか。
568デフォルトの名無しさん
2018/03/30(金) 12:48:02.51ID:TlFsJGTt >>567
ノンブロッキングのソケットってできなかったっけ?
fcntl()で指定するんだったような気がするが。
まあでもこの辺はOSによって微妙に違うかも知れないのでよく調べてみて。
で、ブロックしないようにしておいて受信したやつをとにかく全部読んで最後に \0 が6つあるかどうか見ると。
ノンブロッキングのソケットってできなかったっけ?
fcntl()で指定するんだったような気がするが。
まあでもこの辺はOSによって微妙に違うかも知れないのでよく調べてみて。
で、ブロックしないようにしておいて受信したやつをとにかく全部読んで最後に \0 が6つあるかどうか見ると。
569デフォルトの名無しさん
2018/03/30(金) 13:25:36.98ID:5tmqHLck570デフォルトの名無しさん
2018/03/30(金) 20:15:44.88ID:1Iia3Fde while(1) {
PROC1;
if (COND) {
last;
}
PROC2;
}
こんなような処理を、while(1)とかlastとか使わずにスマートに書けない?
PROC1;
if (COND) {
last;
}
PROC2;
}
こんなような処理を、while(1)とかlastとか使わずにスマートに書けない?
571デフォルトの名無しさん
2018/03/30(金) 20:22:24.29ID:x2Z4e+RC >>570
PROC1はCONDの値を返さないってこと?
PROC1はCONDの値を返さないってこと?
572デフォルトの名無しさん
2018/03/30(金) 20:50:04.69ID:1Iia3Fde 想定してる例では返さないけど、返す前提じゃないと一般論にならない
573デフォルトの名無しさん
2018/03/30(金) 20:55:20.44ID:dOU2138G >>569
non-blocking にするとデータが何もきてない時にほとんど素通りするので
selectとか使って自分で待たせることを忘れずに。そうしないと入力待ち
ループが物凄く早く回ってしまい無駄にCPUタイムを食うことになる。
non-blocking にするとデータが何もきてない時にほとんど素通りするので
selectとか使って自分で待たせることを忘れずに。そうしないと入力待ち
ループが物凄く早く回ってしまい無駄にCPUタイムを食うことになる。
574デフォルトの名無しさん
2018/04/14(土) 09:32:20.00ID:3ZAO+EKI x が100000〜100500 なら y=1000
100501〜100700 なら y=1001
100701〜120000 なら y=1002
みたいな感じになってるとする
xはある範囲を全部埋めていて、yはある範囲で連続
で、xが与えられた時にyを求めたい
どんなデータ構造にするのが一番効率的だろう
100501〜100700 なら y=1001
100701〜120000 なら y=1002
みたいな感じになってるとする
xはある範囲を全部埋めていて、yはある範囲で連続
で、xが与えられた時にyを求めたい
どんなデータ構造にするのが一番効率的だろう
575デフォルトの名無しさん
2018/04/14(土) 14:29:40.83ID:lJIoGN24 Perl関係無いような…
俺だったらxのfrom値をキーにハッシュ作って値にy入れるかなぁ
俺だったらxのfrom値をキーにハッシュ作って値にy入れるかなぁ
576デフォルトの名無しさん
2018/04/16(月) 09:41:27.92ID:h6scVdPk >>574
単純な計算ではxからyは求められないようだね。だったら配列にxの下限とyの値のペアを入れといて比較かな。
こんなやつね。どう比較するかは分かると思うので省略。
my @a = (
[100000, 1000],
[100501, 1001],
[100701, 1002],
.
.
.
);
ハッシュ使うとxの値を比較する時に全てのキーを引き出してソートしてから行う必要があって、それだと余計に遅くなると思う。
しかし全てを配列に入れておいて頭から全て比較することが現実的とは思えないほど多い場合(何万件もあるとか)は、もうPerlでやるのは止めてRDBに繋いでやった方が良いかも知れない。
(xの上限、下限、yの値をただ入れる表を作ってxの方はインデックス作っておいて簡単なselectをする)。
そうすると何も考える必要がなくなって楽だ。DBはsqliteが軽くていいぞ。その場合DBIモジュールとDBD::SQLiteモジュールが必要。
単純な計算ではxからyは求められないようだね。だったら配列にxの下限とyの値のペアを入れといて比較かな。
こんなやつね。どう比較するかは分かると思うので省略。
my @a = (
[100000, 1000],
[100501, 1001],
[100701, 1002],
.
.
.
);
ハッシュ使うとxの値を比較する時に全てのキーを引き出してソートしてから行う必要があって、それだと余計に遅くなると思う。
しかし全てを配列に入れておいて頭から全て比較することが現実的とは思えないほど多い場合(何万件もあるとか)は、もうPerlでやるのは止めてRDBに繋いでやった方が良いかも知れない。
(xの上限、下限、yの値をただ入れる表を作ってxの方はインデックス作っておいて簡単なselectをする)。
そうすると何も考える必要がなくなって楽だ。DBはsqliteが軽くていいぞ。その場合DBIモジュールとDBD::SQLiteモジュールが必要。
577デフォルトの名無しさん
2018/04/16(月) 12:33:04.08ID:qlfABgAK 0, 501, 701, 1001, 1301,
x のfrom 値で、2分探索木にする。
各ノードが、y 値を持つ
x のfrom 値で、2分探索木にする。
各ノードが、y 値を持つ
578デフォルトの名無しさん
2018/04/16(月) 19:16:06.77ID:jtdCSi5V yを0から999までに単純化して、
下限だけ入れた配列を毎回0から見つかるまで舐める
という実装にしたら、余裕で一瞬で終わるので、これで十分だった
個人でDBが要るようなケースって、まず無い気がする
下限だけ入れた配列を毎回0から見つかるまで舐める
という実装にしたら、余裕で一瞬で終わるので、これで十分だった
個人でDBが要るようなケースって、まず無い気がする
579デフォルトの名無しさん
2018/04/16(月) 19:54:02.09ID:Njbya+hs580デフォルトの名無しさん
2018/04/16(月) 20:29:20.27ID:jtdCSi5V 仕事でaccess使ったくらいだけど、
規模的にはテキストでも全然構わないレベルだった
excelと連動させたいからそういう手段が選べないだけで、
個人なら最初からexcelそのものを使わない
規模的にはテキストでも全然構わないレベルだった
excelと連動させたいからそういう手段が選べないだけで、
個人なら最初からexcelそのものを使わない
581デフォルトの名無しさん
2018/04/17(火) 09:50:37.14ID:CpeCFbdf 扱うデータが多くて一々考えるのが面倒な時は使ってみると良い。
582デフォルトの名無しさん
2018/04/17(火) 18:45:22.69ID:O41FhP2w データの規模よりは、構造の複雑さだろうな
いろんな属性がいっぱいくっついてて、それらが相互に関連してるようなデータを
テキストベースで作るのはなかなか大変
で、個人でそんなデータを扱う機会はやっぱり無い
家計簿をコンビニ別に統計を出したいとか、そんなことは思わないし、
そうできるようにデータ入力するのが面倒すぎて挫折する
いろんな属性がいっぱいくっついてて、それらが相互に関連してるようなデータを
テキストベースで作るのはなかなか大変
で、個人でそんなデータを扱う機会はやっぱり無い
家計簿をコンビニ別に統計を出したいとか、そんなことは思わないし、
そうできるようにデータ入力するのが面倒すぎて挫折する
583デフォルトの名無しさん
2018/04/17(火) 20:55:41.70ID:jy0h/NRq こんな単純なデータ構造のものをDBにしたら遅くなるのは目に見えてる
単純に2つの配列か、独立してるのが嫌なら、2つの要素を持つオブジェクトの配列でいいだろ
単純に2つの配列か、独立してるのが嫌なら、2つの要素を持つオブジェクトの配列でいいだろ
584デフォルトの名無しさん
2018/04/17(火) 21:07:35.33ID:O41FhP2w しまうのはそれでいいけど、検索できんだろ
数が莫大になっても短時間で検索できるようにしまっといてくれるのがDBのいいところ
でも高々1万とかならリニアで十分
100万とかあると探索アルゴリズムが威力が効いてくる
数が莫大になっても短時間で検索できるようにしまっといてくれるのがDBのいいところ
でも高々1万とかならリニアで十分
100万とかあると探索アルゴリズムが威力が効いてくる
585デフォルトの名無しさん
2018/04/17(火) 21:08:16.86ID:IUYvc0m6 小規模だと遅くなるだろうな。
586デフォルトの名無しさん
2018/04/17(火) 21:19:21.97ID:O41FhP2w 小規模だとどちらも体感0秒だから変わらない
587デフォルトの名無しさん
2018/04/18(水) 02:06:34.84ID:yJ81KmRv >>586
DB使って、どういうキーでクエリー出すの?
俺は詳しくないから考え方だけでいいので教えて
・x>=キーのものの中からMINを取って、それのyを出力?
・x>=キー and 次のレコードのx<キー?(次のレコードって見れるのかは知らんけど)
・x,yの他にx2として範囲の最後をデータとして追加しておき、x<=キー and x2<キー?
何かベストマッチな方法がありそうだけどね
(上記の方法ではとてもDBの検索が効率よくいけるとは思えんので)
DB使って、どういうキーでクエリー出すの?
俺は詳しくないから考え方だけでいいので教えて
・x>=キーのものの中からMINを取って、それのyを出力?
・x>=キー and 次のレコードのx<キー?(次のレコードって見れるのかは知らんけど)
・x,yの他にx2として範囲の最後をデータとして追加しておき、x<=キー and x2<キー?
何かベストマッチな方法がありそうだけどね
(上記の方法ではとてもDBの検索が効率よくいけるとは思えんので)
588デフォルトの名無しさん
2018/04/18(水) 03:06:20.17ID:kaO6I25j 単純にSELECT y FROM hoge WHERE x BETWEEN a AND bで
実態はSQL側で最適化してくれるよ
データを扱うことに特化した高級言語な訳だし
個人的にはDB使うかどうかって、
データの流動性(?)がポイントな気がする
弄る機会が多ければ多いほど恩恵受けられる訳だから
実態はSQL側で最適化してくれるよ
データを扱うことに特化した高級言語な訳だし
個人的にはDB使うかどうかって、
データの流動性(?)がポイントな気がする
弄る機会が多ければ多いほど恩恵受けられる訳だから
589デフォルトの名無しさん
2018/04/18(水) 03:22:30.21ID:yJ81KmRv >>588
BETWEEN a AND bって、aからbの間ってことじゃなかったっけ?
x=100502の場合のyを求めるのにどう書くの?
BETWEEN 100502 AND 100502でいいんだっけ?
BETWEEN a AND bって、aからbの間ってことじゃなかったっけ?
x=100502の場合のyを求めるのにどう書くの?
BETWEEN 100502 AND 100502でいいんだっけ?
590デフォルトの名無しさん
2018/04/18(水) 03:27:30.58ID:yJ81KmRv これって例えば、10000から11000の間にあるデータxを全部抽出したい場合とかに使うものなのでは?
591デフォルトの名無しさん
2018/04/18(水) 03:58:19.16ID:yJ81KmRv >>587の例って全部おかしかったので書き直しとく
・MAX(x<=100502)
・x<=100502 and (次のレコードのx)?>100502
・x<=100502 and x2>=100502
・MAX(x<=100502)
・x<=100502 and (次のレコードのx)?>100502
・x<=100502 and x2>=100502
592デフォルトの名無しさん
2018/04/18(水) 11:34:48.13ID:gg2GabAw 表は x の最大と最小(xmin,xmax)と y をただ入れといて select y from xytbl where x between xmin and xmax みたいにすればいいじゃん。
xmin + 1 が次の xmax と一致するので無駄があるが xmin, xmax にインデックス作っておけば多分速くはなるだろう。
どうしても無駄をなくしたい場合は xmin と y だけにして xmax はビュー作ってそちらであるかのように見せかけておくか、または複雑になるが一つのSQL文にするかだ。
xmin + 1 が次の xmax と一致するので無駄があるが xmin, xmax にインデックス作っておけば多分速くはなるだろう。
どうしても無駄をなくしたい場合は xmin と y だけにして xmax はビュー作ってそちらであるかのように見せかけておくか、または複雑になるが一つのSQL文にするかだ。
593デフォルトの名無しさん
2018/04/19(木) 02:32:23.49ID:h5gs+kbl >>592
何を言ってるのか不明
表にxminとyしかないのなら、xは使えないだろ
また、[x,y,xmin,xmax]=
([100000,1000,100000,100500], [100501,1001,100501,100700], [100701,1002,100701,120000],…)
ってことで
select y from xytbl where x between xmin and xmax
なら全レコードがマッチするよ
何を言ってるのか不明
表にxminとyしかないのなら、xは使えないだろ
また、[x,y,xmin,xmax]=
([100000,1000,100000,100500], [100501,1001,100501,100700], [100701,1002,100701,120000],…)
ってことで
select y from xytbl where x between xmin and xmax
なら全レコードがマッチするよ
594デフォルトの名無しさん
2018/04/19(木) 03:01:26.91ID:h5gs+kbl between句は、
SELECT カラム名 , ... FROM テーブル名 WHERE カラム BETWEEN 値1 AND 値2;
で
SELECT カラム名 , ... FROM テーブル名 WHERE カラム >= 値1 AND カラム <= 値2;
と書くのと同等の機能
select y from tbl01 where x between 100000 and 110000
なら
select y from tbl01 where x >= 100000 and x<=110000
と同じってこと
SELECT カラム名 , ... FROM テーブル名 WHERE カラム BETWEEN 値1 AND 値2;
で
SELECT カラム名 , ... FROM テーブル名 WHERE カラム >= 値1 AND カラム <= 値2;
と書くのと同等の機能
select y from tbl01 where x between 100000 and 110000
なら
select y from tbl01 where x >= 100000 and x<=110000
と同じってこと
595デフォルトの名無しさん
2018/04/19(木) 10:18:42.11ID:XRkJ53+o >>593
うまく伝わらなかったかな?考えてることは多分同じだよ。
例えば以下のようにするの(以下はSQLiteでのSQL)。
create table xytbl (xmin, xmax, y);
insert into xytbl (xmin, xmax, y)
values (100000, 100500, 1000), (100501, 100700, 1001), (100701, 120000, 1002);
create table xtbl (x);
insert into xtbl (x) values (9999), (100300), (100502), (118000), (120100);
select x, y from xytbl, xtbl where x between xmin and xmax;
ここでは xtbl に x の値だけ並べて入れておいて後でまとめて selectして x, y 両方出している。
うまく伝わらなかったかな?考えてることは多分同じだよ。
例えば以下のようにするの(以下はSQLiteでのSQL)。
create table xytbl (xmin, xmax, y);
insert into xytbl (xmin, xmax, y)
values (100000, 100500, 1000), (100501, 100700, 1001), (100701, 120000, 1002);
create table xtbl (x);
insert into xtbl (x) values (9999), (100300), (100502), (118000), (120100);
select x, y from xytbl, xtbl where x between xmin and xmax;
ここでは xtbl に x の値だけ並べて入れておいて後でまとめて selectして x, y 両方出している。
596デフォルトの名無しさん
2018/04/19(木) 10:19:56.20ID:T9/zIgZR ごめんびとうぃーん言い出しっぺだけどダメだね
感覚と言うかノリだけで書いてしまった
実際書くと即だめじゃんってなるやつ
感覚と言うかノリだけで書いてしまった
実際書くと即だめじゃんってなるやつ
597デフォルトの名無しさん
2018/04/19(木) 10:22:29.59ID:XRkJ53+o PerlからDBI経由でDBアクセスするならxtbl不要でxの部分はprepareで'?'にしておいてexecuteで実際の値を渡せば良い。
598デフォルトの名無しさん
2018/04/19(木) 10:28:26.42ID:T9/zIgZR 真面目に今考えた結果
Select y From hoge Where ? < x Order by x Desc Limit 1;
で多分取れる
Select y From hoge Where ? < x Order by x Desc Limit 1;
で多分取れる
599デフォルトの名無しさん
2018/04/23(月) 17:03:26.38ID:YcjqEwjB $$で取得するプロセスIDはどんな環境でも最大4桁までですか?
600デフォルトの名無しさん
2018/04/23(月) 17:19:28.43ID:AJxfAl3T >>599
んなこたなかろう。Linuxで ps -fe とかやれば5桁ぐらいのが沢山出てくるぞ。
かといって最大5桁で作って安心してはいけない。
将来的に変わるかも知れないしLinux以外ではもっと桁数あるかも知れないからな。
んなこたなかろう。Linuxで ps -fe とかやれば5桁ぐらいのが沢山出てくるぞ。
かといって最大5桁で作って安心してはいけない。
将来的に変わるかも知れないしLinux以外ではもっと桁数あるかも知れないからな。
601デフォルトの名無しさん
2018/05/01(火) 17:33:53.54ID:Jzi33zXB 全く初歩的な質問ですいません
ググってみたのですがそのものズバリの例を見つけることができませんでした。
やりたいことは、連装配列に配列を入れて取り出すことです。
最後の出力行が [2] となることを意図していますが、出力は
[] となり、ワーニングもでています。
配列を入れたつもりの連装配列の要素が配列とは認識されていないようです。
この場合どのように書けば、所期の結果が得られるでしょうか?
$ perl -v
This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi
(with 46 registered patches, see perl -V for more detail)
〜後半略〜
$ cat sample.pl
my %hasy01;
my @array01;
@array01=(2,4,6,8);
$hash01{"name"}=@array01;
printf( "[%s]\n", $array01[0] );
printf( "[%s]\n", $hash01{"name"}[0] );
$ perl -w sample.pl
[2]
Use of uninitialized value in printf at sample.pl line 9.
[]
ググってみたのですがそのものズバリの例を見つけることができませんでした。
やりたいことは、連装配列に配列を入れて取り出すことです。
最後の出力行が [2] となることを意図していますが、出力は
[] となり、ワーニングもでています。
配列を入れたつもりの連装配列の要素が配列とは認識されていないようです。
この場合どのように書けば、所期の結果が得られるでしょうか?
$ perl -v
This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi
(with 46 registered patches, see perl -V for more detail)
〜後半略〜
$ cat sample.pl
my %hasy01;
my @array01;
@array01=(2,4,6,8);
$hash01{"name"}=@array01;
printf( "[%s]\n", $array01[0] );
printf( "[%s]\n", $hash01{"name"}[0] );
$ perl -w sample.pl
[2]
Use of uninitialized value in printf at sample.pl line 9.
[]
602デフォルトの名無しさん
2018/05/01(火) 17:45:53.43ID:4WtZiQYp $hash01{"name"}=\@array01;
こうやるんだよ
こうやるんだよ
603デフォルトの名無しさん
2018/05/01(火) 17:54:36.04ID:tWpDsj7U604デフォルトの名無しさん
2018/05/01(火) 17:57:41.47ID:Jzi33zXB605デフォルトの名無しさん
2018/05/01(火) 21:28:23.40ID:J+iCny9E >>603
リストのリファレンスかコピーかでまったく別物なので注意。
リストのリファレンスかコピーかでまったく別物なので注意。
606デフォルトの名無しさん
2018/05/01(火) 21:42:46.89ID:4WtZiQYp デリファレンス側もちょっと不満があるな
printf( "[%s]\n", ${$hash01{"name"}}[0] );
こうか
printf( "[%s]\n", $hash01{"name"}->[0] );
こうがいい
printf( "[%s]\n", ${$hash01{"name"}}[0] );
こうか
printf( "[%s]\n", $hash01{"name"}->[0] );
こうがいい
607デフォルトの名無しさん
2018/05/02(水) 02:19:06.16ID:bQ3xZw0Z608デフォルトの名無しさん
2018/05/02(水) 08:00:00.39ID:lnsF+QsJ #自分ならこうするかな
my $hash01;
my @array01;
@array01=(2,4,6,8);
$hash01 = {
name => \@array01 ,
foo => \@array01 ,
bar => \@array01 ,
# .... 多分こういうふうに増えるだろうし
};
printf( "[%s]\n", $h->{name}->[0] ); # -> があると目が滑りにくい!
my $hash01;
my @array01;
@array01=(2,4,6,8);
$hash01 = {
name => \@array01 ,
foo => \@array01 ,
bar => \@array01 ,
# .... 多分こういうふうに増えるだろうし
};
printf( "[%s]\n", $h->{name}->[0] ); # -> があると目が滑りにくい!
609デフォルトの名無しさん
2018/05/05(土) 20:27:28.60ID:yJAqb+uF 正規表現でマッチした部分を$1,$2などで取り出すけど
$いくつまであるかわからない場合$1,$2...$nをまとめて配列に入れる方法ってどうやるんですか?
$いくつまであるかわからない場合$1,$2...$nをまとめて配列に入れる方法ってどうやるんですか?
610デフォルトの名無しさん
2018/05/05(土) 21:54:57.88ID:ddSxgz72 >>609
ttp://perldoc.jp/docs/perl/5.22.1/perlrequick.pod#Extracting32matches
>リストコンテキストでは、グループ化付きのマッチング /regex/ は マッチングした値のリスト ($1,$2,...) を返します。 従ってこれは以下のように書き換えられます
> ($hours, $minutes, $second) = ($time =~ /(\d\d):(\d\d):(\d\d)/);
ttp://perldoc.jp/docs/perl/5.22.1/perlrequick.pod#More32matching
>リストコンテキストでは、//g はマッチングしたグループのリストを返します; グループ化の指定がなければ、正規表現全体にマッチングするリストを返します。 従って
> @words = ($x =~ /(\w+)/g);
ttp://perldoc.jp/docs/perl/5.22.1/perlrequick.pod#Extracting32matches
>リストコンテキストでは、グループ化付きのマッチング /regex/ は マッチングした値のリスト ($1,$2,...) を返します。 従ってこれは以下のように書き換えられます
> ($hours, $minutes, $second) = ($time =~ /(\d\d):(\d\d):(\d\d)/);
ttp://perldoc.jp/docs/perl/5.22.1/perlrequick.pod#More32matching
>リストコンテキストでは、//g はマッチングしたグループのリストを返します; グループ化の指定がなければ、正規表現全体にマッチングするリストを返します。 従って
> @words = ($x =~ /(\w+)/g);
611デフォルトの名無しさん
2018/05/05(土) 22:30:46.21ID:BVQmyJFO そういえば$10まで行って困ったこと一度もないな
612デフォルトの名無しさん
2018/05/06(日) 12:36:15.67ID:Bse1bLkg >>611
え?困らんだろ。普通に $10 とか $11 とか書けば良いだけだし。
え?困らんだろ。普通に $10 とか $11 とか書けば良いだけだし。
613デフォルトの名無しさん
2018/05/06(日) 13:41:43.10ID:1K09Bg92 Perl のことだとは言ってないな。正規表現の話なら 9 までしか使えない方が多数派だ。Perl でさえ昔はそうだった。
まあ、そういう話なら $10 ではなく \10 と書くべきかもしれないが。
まあ、そういう話なら $10 ではなく \10 と書くべきかもしれないが。
614デフォルトの名無しさん
2018/05/06(日) 18:20:08.93ID:Bse1bLkg いやこのスレは「Perl についての質問箱」なわけで・・・
615デフォルトの名無しさん
2018/05/15(火) 01:25:39.67ID:bz5cqKe9 ユーザ定義関数のリファレンスを変数に代入しておき、そのリファレンス変数を
参照することによって関数を呼び出すことができます。たとえばこんな感じに。
sub s { $_[0]+1 }
$r = \&s;
print $r->(1)."\n";
$ perl usr.pl
2
それでは、popやshift、printなどの組み込み関数についても、リファレンスを変数に代入しておき、変数を参照することによって組み込み関数を呼び出すことができないか方法を探しています。
しかしCOREやCORE::GLOBAL名前空間を使ってできないか、ためしてみましたがうまくいきません。たとえば
$r = \CORE::print;
#print "$r\n";
print $r->(3.14, "\n");
を実行すると
Not a CODE reference at 〜.pl line 3.
となります。
$r = \CORE::GLOBAL::print;
#print "$r\n";
print $r->(3.14, "\n");
を実行しても
Not a CODE reference at 〜.pl line 3.
となってしまします。何かいい方法をご存知でしたら教えてくださいませ。
参照することによって関数を呼び出すことができます。たとえばこんな感じに。
sub s { $_[0]+1 }
$r = \&s;
print $r->(1)."\n";
$ perl usr.pl
2
それでは、popやshift、printなどの組み込み関数についても、リファレンスを変数に代入しておき、変数を参照することによって組み込み関数を呼び出すことができないか方法を探しています。
しかしCOREやCORE::GLOBAL名前空間を使ってできないか、ためしてみましたがうまくいきません。たとえば
$r = \CORE::print;
#print "$r\n";
print $r->(3.14, "\n");
を実行すると
Not a CODE reference at 〜.pl line 3.
となります。
$r = \CORE::GLOBAL::print;
#print "$r\n";
print $r->(3.14, "\n");
を実行しても
Not a CODE reference at 〜.pl line 3.
となってしまします。何かいい方法をご存知でしたら教えてくださいませ。
616デフォルトの名無しさん
2018/05/15(火) 07:18:03.41ID:PvTz5h0y ユーザー定義関数だと\&でやってるのにCOREは\&でやってないのはなんで?
617615
2018/05/15(火) 23:35:25.73ID:fP8R1+3G >>616
\&CORE もためしたけれど
$r = \&CORE::print;
print "$r\n";
$r->(3.14, "\n");
実行すると
Undefined subroutine &CORE::print called at 〜.pl line 3.
CODE(0x3919c)
となるのよ。
できなことなのかね…
\&CORE もためしたけれど
$r = \&CORE::print;
print "$r\n";
$r->(3.14, "\n");
実行すると
Undefined subroutine &CORE::print called at 〜.pl line 3.
CODE(0x3919c)
となるのよ。
できなことなのかね…
618デフォルトの名無しさん
2018/05/16(水) 00:12:42.68ID:uHifQt6J ttps://perldoc.perl.org/CORE.html
COREパッケージの関数もリファレンスを取得したり別名を定義することができる(pushなど)
ただし一部はベアワードでしか呼び出せない(printなど)
>組み込み関数についても、リファレンスを変数に代入しておき、変数を参照することによって組み込み関数を呼び出すことができないか
結論: ものによる
COREパッケージの関数もリファレンスを取得したり別名を定義することができる(pushなど)
ただし一部はベアワードでしか呼び出せない(printなど)
>組み込み関数についても、リファレンスを変数に代入しておき、変数を参照することによって組み込み関数を呼び出すことができないか
結論: ものによる
620デフォルトの名無しさん
2018/05/16(水) 04:01:32.31ID:5FKSCtlR 無名関数のリファレンスを使えば。
621615
2018/05/16(水) 07:58:19.21ID:lqxKAjJz >>620
そうすれば機能的に可能だけれど、
ユーザ関数のコードがワンクッション間に入るので
パーフォマンス的にみて、
できれば組み込み関数を直接、第一級関数としてクロージャーなどに
使えないか調べていた、ってわけですのよ
そうすれば機能的に可能だけれど、
ユーザ関数のコードがワンクッション間に入るので
パーフォマンス的にみて、
できれば組み込み関数を直接、第一級関数としてクロージャーなどに
使えないか調べていた、ってわけですのよ
622デフォルトの名無しさん
2018/05/20(日) 02:13:22.75ID:QVTwsNDJ https://log.perl.org/2018/05/goodbye-search-dot-cpan-dot-org.html
search.cpan.orgが6月に終了だと。
mcpan使ってねってことだけど、終焉を感じるなぁ…
search.cpan.orgが6月に終了だと。
mcpan使ってねってことだけど、終焉を感じるなぁ…
623デフォルトの名無しさん
2018/05/23(水) 19:29:13.97ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
U85LY
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
U85LY
624デフォルトの名無しさん
2018/05/23(水) 21:28:50.98ID:/p8qS87L 意味もなく、関係ない変数を bless
625デフォルトの名無しさん
2018/05/24(木) 12:17:56.05ID:62mXzMMG bless
それは祝福
それは祝福
626デフォルトの名無しさん
2018/05/26(土) 02:04:34.60ID:NxLTutQ0 God bless you!
627デフォルトの名無しさん
2018/05/26(土) 06:15:15.44ID:qdFYQfps さすがにリファレンスですらない変数だと怒られた
でも、勝手に作った偽オブジェクトを食わせたりはできる
他の言語はそのへんの安全装置はどうなってるんだろう
でも、勝手に作った偽オブジェクトを食わせたりはできる
他の言語はそのへんの安全装置はどうなってるんだろう
628デフォルトの名無しさん
2018/05/26(土) 11:44:11.22ID:nibGH99w blessは、オブジェクトにパッケージを関連付けるだけだろ。
どんな「安全装置」が必要なのか?
ちなみに、RubyもJavaScriptも、動的に後からメソッドとか足し放題だな。
まあ、スクリプト言語としては残念でもないし当然。
どんな「安全装置」が必要なのか?
ちなみに、RubyもJavaScriptも、動的に後からメソッドとか足し放題だな。
まあ、スクリプト言語としては残念でもないし当然。
629デフォルトの名無しさん
2018/05/26(土) 11:59:50.95ID:qdFYQfps メソッドを足すのと、コンストラクタが生成してないものを使うのは全然違うだろ
630デフォルトの名無しさん
2018/05/26(土) 15:30:59.65ID:NxLTutQ0 Pod::PerldocJp という日本語 perldoc を cpanm 使ってインストールしてみたが、root でないとエラーが出て動かない(Linux 環境ね)。
$ perldocjp perldocjp
Error stat on '/tmp/.perldocjp/perldocjp.pod': そのようなファイルやディレクトリはありません at /usr/local/share/perl5/Pod/PerldocJp.pm line 78.
$
root になるとちゃんと出てくる。ただし sudo perldocjp perldocjp ではダメで、 sudo su - とかで root でログインした状態で perldocjp perldocjp とするとちゃんと動く。
実行時の環境変数 LANG は一般ユーザもroootも ja_JP.UTF-8 になっている。
これ Linux でインストールしてみてうまく行った人いる?
Pod::PerldocJpとperldocjpコマンドについての日本語での説明はここね。
http://search.cpan.org/~ishigaki/Pod-PerldocJp-0.18/perldocjp
$ perldocjp perldocjp
Error stat on '/tmp/.perldocjp/perldocjp.pod': そのようなファイルやディレクトリはありません at /usr/local/share/perl5/Pod/PerldocJp.pm line 78.
$
root になるとちゃんと出てくる。ただし sudo perldocjp perldocjp ではダメで、 sudo su - とかで root でログインした状態で perldocjp perldocjp とするとちゃんと動く。
実行時の環境変数 LANG は一般ユーザもroootも ja_JP.UTF-8 になっている。
これ Linux でインストールしてみてうまく行った人いる?
Pod::PerldocJpとperldocjpコマンドについての日本語での説明はここね。
http://search.cpan.org/~ishigaki/Pod-PerldocJp-0.18/perldocjp
631デフォルトの名無しさん
2018/06/03(日) 15:51:19.96ID:F3uiBXX1 5.28まだ?
632デフォルトの名無しさん
2018/06/08(金) 21:09:03.47ID:JtDK6GNM 例えばファイル名を入れて関数を呼んで、
処理結果を入れた配列なりのリファレンスを戻り値で返す
別のファイル名で同じ関数を呼んで、結果のリファレンスを別の変数で受ける
それで普通に動くんだけど、
なぜ同じ関数のmyで宣言した変数が違うオブジェクトを指しているのか、
なぜ古い方は消えてしまわないのか、
そもそもいつまで残ってるのか、
みたいな部分が何となく不安
参照カウントの仕組みを理解しても、やっぱり不安
処理結果を入れた配列なりのリファレンスを戻り値で返す
別のファイル名で同じ関数を呼んで、結果のリファレンスを別の変数で受ける
それで普通に動くんだけど、
なぜ同じ関数のmyで宣言した変数が違うオブジェクトを指しているのか、
なぜ古い方は消えてしまわないのか、
そもそもいつまで残ってるのか、
みたいな部分が何となく不安
参照カウントの仕組みを理解しても、やっぱり不安
633615
2018/06/09(土) 01:53:50.05ID:dh6JCgcP634デフォルトの名無しさん
2018/06/09(土) 05:26:23.38ID:uYb8xFM5 大丈夫。参照されなくなったやつは自動で消える。
635デフォルトの名無しさん
2018/06/09(土) 08:22:42.99ID:VVS81UdD 消えないことに対する不安じゃないんだよな
肉体は既に滅びているけど、どこかにある名簿にまだ名前があるお陰で、
辛うじて魂だけまだ現世に留まってる感じ
リファレンスを戻り値で受けるんじゃなくて、
自分で宣言した変数のリファレンスを引数で渡して、
そこに入れて貰う方式なら安心できる
意味は同じなんだけど
肉体は既に滅びているけど、どこかにある名簿にまだ名前があるお陰で、
辛うじて魂だけまだ現世に留まってる感じ
リファレンスを戻り値で受けるんじゃなくて、
自分で宣言した変数のリファレンスを引数で渡して、
そこに入れて貰う方式なら安心できる
意味は同じなんだけど
636デフォルトの名無しさん
2018/06/09(土) 08:45:10.02ID:ngqKHOqq strdupの仕様の気持ち悪さ
無名関数のリファレンスの気持ち悪さ
みたいなやつなら、俺も感じる
無名関数のリファレンスの気持ち悪さ
みたいなやつなら、俺も感じる
637デフォルトの名無しさん
2018/06/09(土) 17:49:06.89ID:uYb8xFM5 うーん。しかし、そういうのは言語を実現する環境の実装にバグがあるかどうかの問題だよなあ。
そのバグを気にするならどんな言語も使えなくなるのでは?コンパイルする言語でもバグってて
変なコード作られたら終わりだしなあ。
そのバグを気にするならどんな言語も使えなくなるのでは?コンパイルする言語でもバグってて
変なコード作られたら終わりだしなあ。
638デフォルトの名無しさん
2018/06/09(土) 19:13:31.22ID:sS73Mbwb 信頼性の話じゃないだろ。
言ってしまえば、リファレンスとかオブジェクトとか、なんかふわふわしてて、なんとなく納得がいかん、てだけ。
感覚的には慣れの話でしかないと思うけど、どうしてもというなら、C++でもやってみればいいのでは。
newとかヒープとかを把握できれば、実はぜんぜんふわふわしてないことが理解できるはず。
余計に混乱するかもしらんけども。w
言ってしまえば、リファレンスとかオブジェクトとか、なんかふわふわしてて、なんとなく納得がいかん、てだけ。
感覚的には慣れの話でしかないと思うけど、どうしてもというなら、C++でもやってみればいいのでは。
newとかヒープとかを把握できれば、実はぜんぜんふわふわしてないことが理解できるはず。
余計に混乱するかもしらんけども。w
639デフォルトの名無しさん
2018/06/09(土) 19:58:15.52ID:VVS81UdD C言語で関数内にstatic変数を持ってて、
そこに何か格納してそのポインタを返す、みたいな仕組みなら安心する
何回呼んでも同じポインタが返ってきて、前回の内容は保存されていない
だから必要なら呼んだ側の責任で保存しとかないといけない
家がない子はいない
perlのsub内のmy変数のリファレンスも見かけはそれと似てるけど、
実際の動作が全然違って、実体は動的に生成される
じゃあC言語のauto変数みたいなもんかというと、関数が終わってもスコープを抜けない
かといってずっと存在する訳でもなくて「要らなくなったら消える」というルールが人智を超える
うまく動くように出来てるんだから、怖がらずに飛んでみろ的な
そこに何か格納してそのポインタを返す、みたいな仕組みなら安心する
何回呼んでも同じポインタが返ってきて、前回の内容は保存されていない
だから必要なら呼んだ側の責任で保存しとかないといけない
家がない子はいない
perlのsub内のmy変数のリファレンスも見かけはそれと似てるけど、
実際の動作が全然違って、実体は動的に生成される
じゃあC言語のauto変数みたいなもんかというと、関数が終わってもスコープを抜けない
かといってずっと存在する訳でもなくて「要らなくなったら消える」というルールが人智を超える
うまく動くように出来てるんだから、怖がらずに飛んでみろ的な
640デフォルトの名無しさん
2018/06/09(土) 20:16:55.67ID:vLAdQtfD もはや信じるか否かという宗教的問題か?
641デフォルトの名無しさん
2018/06/09(土) 20:29:44.29ID:VVS81UdD 変数の寿命なんて本来はコードから静的に判るものだったのに、
それを動的にする代わりに管理を手放して機械に任せることにした
それはなかなかのパラダイムシフトである筈なのに、
オブジェクト指向のデータ隠蔽とセットで隠蔽されてあんまり気にしてない
コンストラクタさんに任せとけば全部うまくやってくれるから
それを動的にする代わりに管理を手放して機械に任せることにした
それはなかなかのパラダイムシフトである筈なのに、
オブジェクト指向のデータ隠蔽とセットで隠蔽されてあんまり気にしてない
コンストラクタさんに任せとけば全部うまくやってくれるから
642デフォルトの名無しさん
2018/06/10(日) 02:37:37.78ID:3IVbSRGy >>639
人智は超えないだろ…
人智は超えないだろ…
643デフォルトの名無しさん
2018/06/10(日) 05:50:21.80ID:eOmqsLdO >>639
それだとマルチスレッドの時に困るわけだな。呼び出し側でバッファ作ってそのポインタを渡すという手もあるが、
量が動的に変化する場合はそれだけでは実現できない。で、malloc() 使うわけだが、そうするとどこかで必ず
free() する必要が出てくる。これが煩わしいので自動でなんとかならないかと色々やってるのが今時の言語。
とはいっても Perl は30年以上前に作られた言語だけどね。
それだとマルチスレッドの時に困るわけだな。呼び出し側でバッファ作ってそのポインタを渡すという手もあるが、
量が動的に変化する場合はそれだけでは実現できない。で、malloc() 使うわけだが、そうするとどこかで必ず
free() する必要が出てくる。これが煩わしいので自動でなんとかならないかと色々やってるのが今時の言語。
とはいっても Perl は30年以上前に作られた言語だけどね。
644デフォルトの名無しさん
2018/06/10(日) 18:45:28.50ID:vU7l4ry5 Perl++
645デフォルトの名無しさん
2018/06/10(日) 18:52:31.32ID:7xflXXzg 個人環境をMariaDBに代えてみたけど
DBD::MariaDBがgithubにしかなくてMySQLに戻したわ(´・ω・`)
こういうとこ困るなー枯れてると
DBD::MariaDBがgithubにしかなくてMySQLに戻したわ(´・ω・`)
こういうとこ困るなー枯れてると
646デフォルトの名無しさん
2018/06/10(日) 23:05:19.73ID:A0irmCxf MySQL用で動きそうなもんだが。
実際、数年前だけどRubyでは使えた。
実際、数年前だけどRubyでは使えた。
647デフォルトの名無しさん
2018/06/11(月) 00:28:21.09ID:giD/kjqV それは枯れてないのでは
648デフォルトの名無しさん
2018/06/11(月) 13:01:10.20ID:FLjqN/A3 枯れてるって、不具合とか掘り尽くされて安定してるって言ういい意味と
動きが無いって言う悪い意味の両面がある気が
動きが無いって言う悪い意味の両面がある気が
649デフォルトの名無しさん
2018/06/11(月) 13:04:00.52ID:FLjqN/A3 >>646
my.conf的な(my.confではない)、恐らくMySQLにあってまりあDBに無いファイル読みにいってこける。
たぶん簡単に修正できるけど、CPAN取得ファイルは弄りたくないから様子見にしたわ
my.conf的な(my.confではない)、恐らくMySQLにあってまりあDBに無いファイル読みにいってこける。
たぶん簡単に修正できるけど、CPAN取得ファイルは弄りたくないから様子見にしたわ
650デフォルトの名無しさん
2018/06/11(月) 17:12:02.09ID:ah84zYcK651デフォルトの名無しさん
2018/06/11(月) 17:21:23.85ID:FLjqN/A3652デフォルトの名無しさん
2018/06/11(月) 19:02:34.25ID:HvQh9O78 不具合が枯れたなら分かるけど、動きがないはよくわからん。
ユーザー数は関係ないってこと?C言語はどっち?
ユーザー数は関係ないってこと?C言語はどっち?
653デフォルトの名無しさん
2018/06/11(月) 19:30:59.90ID:giD/kjqV %cat = (%hash1, %hash2);
みたいにするとハッシュが結合できる
keys %cat でkeyの配列が取得できる
でも、keys (%hash1, %hash2)
とすると怒られる
keys {%hash1, %hash2}
ならいけるけど、5.12では通らない
どうすれば
みたいにするとハッシュが結合できる
keys %cat でkeyの配列が取得できる
でも、keys (%hash1, %hash2)
とすると怒られる
keys {%hash1, %hash2}
ならいけるけど、5.12では通らない
どうすれば
654デフォルトの名無しさん
2018/06/11(月) 21:05:27.50ID:HvQh9O78 (keys %hash1, keys %hash2)かなあ
655デフォルトの名無しさん
2018/06/11(月) 21:25:55.72ID:C5cAV0Rs それだけだと同じキーがあった場合に2つ出て来るのでもう一捻り必要ということになるんだろうな。
こうかねえ?
keys map { $_ => 1 } keys %hash1, keys %hash2
こうかねえ?
keys map { $_ => 1 } keys %hash1, keys %hash2
656デフォルトの名無しさん
2018/06/11(月) 21:27:28.65ID:bgvsbZyV >>653
$cat a.pl
use strict;
my %h0 = ( a => 1, b => 2);
my %h1 = ( b => 3, c => 4);
print( keys( %{ +{ %h0 , %h1 }}),"\n");
$perl a.pl
acb
$
$# できるといえばできるけど、君がやってるやり方をおすすめするよ。その方が余計なバグを防止できる。
$cat a.pl
use strict;
my %h0 = ( a => 1, b => 2);
my %h1 = ( b => 3, c => 4);
print( keys( %{ +{ %h0 , %h1 }}),"\n");
$perl a.pl
acb
$
$# できるといえばできるけど、君がやってるやり方をおすすめするよ。その方が余計なバグを防止できる。
657デフォルトの名無しさん
2018/06/11(月) 21:37:24.11ID:giD/kjqV 怒られる方法が何故悪いのかがよく判らんのだよな
普通に無名のハッシュになるんじゃないのかと思うんだけど、
> Type of argument to keys on reference must be unblessed hashref or arrayref
hashでもarrayでもない何かのリファレンスになってる?
普通に無名のハッシュになるんじゃないのかと思うんだけど、
> Type of argument to keys on reference must be unblessed hashref or arrayref
hashでもarrayでもない何かのリファレンスになってる?
658デフォルトの名無しさん
2018/06/11(月) 21:46:36.09ID:C5cAV0Rs {}で括ってるからhashrefと思ったとか
659デフォルトの名無しさん
2018/06/11(月) 23:58:04.20ID:kxBy2s6A keys()が引数にリファレンスをとれるようになったのは最近(でもないけど)だから、曽野せいなんでは。
>>657
>>657
660デフォルトの名無しさん
2018/06/11(月) 23:59:00.05ID:kxBy2s6A >>656は、わざわざデリファレンスしてるし。
661デフォルトの名無しさん
2018/06/12(火) 00:01:02.77ID:DCSlzX2w %hash1 = (a => 1, b => 2);
%hash2 = (c => 3, d => 4);
$ref = (%hash1, %hash2);
print $ref;
さて、何が表示されるでしょう?
%hash2 = (c => 3, d => 4);
$ref = (%hash1, %hash2);
print $ref;
さて、何が表示されるでしょう?
662デフォルトの名無しさん
2018/06/12(火) 02:21:03.71ID:zyhS8Ljg perl -e "use Data::Dumper; %hash1 = (a => 1, b => 2); %hash2 = (c => 3, d => 4); $ref = (\%hash1, \%hash2); print Dumper($ref);"
663656
2018/06/12(火) 13:02:00.90ID:0nDO7HX7 >>660
つっこみありがとう。もう長いこと Perl 使ってるからね、そこはデリファレンスしたいんだよ。
そもそも Perl4 にはリファレンスが無かったんだ。
C でも関数ポインタ使うときは (*p)() みたいな書き方してるよ。
つっこみありがとう。もう長いこと Perl 使ってるからね、そこはデリファレンスしたいんだよ。
そもそも Perl4 にはリファレンスが無かったんだ。
C でも関数ポインタ使うときは (*p)() みたいな書き方してるよ。
664デフォルトの名無しさん
2018/06/13(水) 02:19:57.94ID:mK+NhzCY >>661
2/8 と出た。何が出てるんだこれ?
2/8 と出た。何が出てるんだこれ?
665デフォルトの名無しさん
2018/06/13(水) 06:32:37.33ID:a9+2+9qX >>661
通常はそこはリスト値に展開されて %hash2 の要素のどれかが全体のスカラ値になるはずだけど、そうなってないね。
その仕様は公式ドキュメントのどこに書かれてるの?
通常の評価をしてもらうにはどう書けばいいの?
通常はそこはリスト値に展開されて %hash2 の要素のどれかが全体のスカラ値になるはずだけど、そうなってないね。
その仕様は公式ドキュメントのどこに書かれてるの?
通常の評価をしてもらうにはどう書けばいいの?
666デフォルトの名無しさん
2018/06/13(水) 07:40:41.18ID:3GuASBgR667デフォルトの名無しさん
2018/06/13(水) 10:44:03.43ID:a9+2+9qX ありがとう。perldata は読んでたけど理解できてなかった。
668デフォルトの名無しさん
2018/06/15(金) 22:18:58.35ID:Cep0TxDe 正規表現のマッチ結果って、どこかのデフォルト変数に入ってないの?
($match1, $match2) = ($1, $2);
とやる代わりに、
($match1, $match2) = @_;
みたいにやりたい
($match1, $match2) = ($1, $2);
とやる代わりに、
($match1, $match2) = @_;
みたいにやりたい
669デフォルトの名無しさん
2018/06/15(金) 22:34:53.18ID:+TY+tyj1 リストコンテキストで評価すれば$1とか使わず代入できる
($hours, $minutes, $second) = ($time =~ /(\d\d):(\d\d):(\d\d)/);
ttp://perldoc.jp/docs/perl/5.22.1/perlretut.pod#Extracting32matches
($hours, $minutes, $second) = ($time =~ /(\d\d):(\d\d):(\d\d)/);
ttp://perldoc.jp/docs/perl/5.22.1/perlretut.pod#Extracting32matches
670デフォルトの名無しさん
2018/06/16(土) 06:32:34.79ID:CnQY4Co9671デフォルトの名無しさん
2018/06/16(土) 06:48:42.62ID:QsFR7Mzm インデックスだけ渡されてもなー
672デフォルトの名無しさん
2018/06/16(土) 13:31:25.59ID:CnQY4Co9673デフォルトの名無しさん
2018/06/16(土) 14:40:46.76ID:QsFR7Mzm どうやっても、($1, $2)に相当するような配列は、自分で作らないと無いんだけど、
そもそもそのやり方は便利なのか? という問題があって
括弧の数を左から数えて、挿入したら間違えずにずらして、というやり方は、
どう考えても避けるべきテクニックなので、わざわざ改良版でそんな方法を
準備したりはしない
そもそもそのやり方は便利なのか? という問題があって
括弧の数を左から数えて、挿入したら間違えずにずらして、というやり方は、
どう考えても避けるべきテクニックなので、わざわざ改良版でそんな方法を
準備したりはしない
674デフォルトの名無しさん
2018/06/17(日) 02:57:43.02ID:rS3/QTqY >>669
ちょっと捻ってこうすると配列に入るね。
@t = ($time =~ /(\d\d):(\d\d):(\d\d)/);
で、マッチしなければ @t には何も入らないので if (@t) { マッチした時の処理 } のように書ける。
ちょっと捻ってこうすると配列に入るね。
@t = ($time =~ /(\d\d):(\d\d):(\d\d)/);
で、マッチしなければ @t には何も入らないので if (@t) { マッチした時の処理 } のように書ける。
675デフォルトの名無しさん
2018/06/17(日) 04:40:03.87ID:rS3/QTqY if の中に突っ込んじゃえば見た目が元とあまり変わらなくなるな。
if (my @t = $time =~ /(\d\d):(\d\d):(\d\d)/) {
# このブロックに入った場合は @t[0..2] に値が入っている。
}
if (my @t = $time =~ /(\d\d):(\d\d):(\d\d)/) {
# このブロックに入った場合は @t[0..2] に値が入っている。
}
676デフォルトの名無しさん
2018/06/17(日) 09:21:55.81ID:jBtDb+3n それが常套手段
でも、次の行で使うためだけにテンポラリの変数を命名して、
ということを避ける手段が大抵はあるのに、この場合は無さそうなのが気になる
でも、次の行で使うためだけにテンポラリの変数を命名して、
ということを避ける手段が大抵はあるのに、この場合は無さそうなのが気になる
677デフォルトの名無しさん
2018/06/17(日) 16:50:23.88ID:YZJ2jt3n 気にするな。
678デフォルトの名無しさん
2018/06/17(日) 17:15:26.48ID:1gNDCUDy リストのスライスを使えばいいんじゃないかなあ。
679デフォルトの名無しさん
2018/06/17(日) 17:43:24.21ID:jBtDb+3n もう括弧を数えるのはやめようぜ、ということなのだろう
$1, $2 の代わりの配列があったとしても、数えないといけないのは同じなので、
明示的にラベルを付けて書くのが人間的
$1, $2 の代わりの配列があったとしても、数えないといけないのは同じなので、
明示的にラベルを付けて書くのが人間的
680デフォルトの名無しさん
2018/06/17(日) 21:23:30.12ID:hnLcPBvl あー。まあそうかな。
681デフォルトの名無しさん
2018/07/04(水) 17:49:09.45ID:XD9RzW/r 使ってる Perl が 24.1 になったんだけど、どこかで do の仕様変わった?
do('.state')
がエラーになるんだが。
@INC に '.' を加えれば見つけてくれるけど
do('./.state')
と書いとくべきだったよ。
do('.state')
がエラーになるんだが。
@INC に '.' を加えれば見つけてくれるけど
do('./.state')
と書いとくべきだったよ。
682デフォルトの名無しさん
2018/07/04(水) 21:00:50.16ID:pO2eBJuX それは do の仕様が変わったんではなく、@INC の仕様が変わったんだな。
683デフォルトの名無しさん
2018/07/04(水) 21:36:23.59ID:k7IkWFxo @_ とタイプしようとしても必ずミスする
下手すると、`\ になる
下手すると、`\ になる
684デフォルトの名無しさん
2018/07/04(水) 22:16:13.94ID:gFgZc5FG WCG
685デフォルトの名無しさん
2018/07/04(水) 23:54:26.65ID:pO2eBJuX >>683
いっそ `\ とタイプするよう心がけたらミスで @_ となる率が上がったりして。
いっそ `\ とタイプするよう心がけたらミスで @_ となる率が上がったりして。
686681
2018/07/05(木) 06:47:48.29ID:xxuahHpW688デフォルトの名無しさん
2018/07/06(金) 00:12:17.27ID:sx2dCES6 質問じゃないけど、愚痴なんで聞き流してください。
Perlが好きなんですが、モジュールを使って実践サンプルが多いんが、つくって覚えるだけなんで
すごいさみしいです。
Perlのモジュールプログラムは最高に面白いのに、なんであの本だけなんですかね?
あと、PythonのTKinterも好きだけど、全然出てない。
Perlが好きなんですが、モジュールを使って実践サンプルが多いんが、つくって覚えるだけなんで
すごいさみしいです。
Perlのモジュールプログラムは最高に面白いのに、なんであの本だけなんですかね?
あと、PythonのTKinterも好きだけど、全然出てない。
689デフォルトの名無しさん
2018/07/06(金) 08:01:08.76ID:MZPdd74D 今回のプロジェクトは大掛かりだったので、
自分で使う用のツールを大量に作った
こういうの好き
自分で使う用のツールを大量に作った
こういうの好き
690デフォルトの名無しさん
2018/08/11(土) 13:47:45.26ID:DaBLZ7U5 perlの話でもなんでもないけど、再帰呼び出しの話
あるディレクトリから下の階層構造について、再帰的に調べたい
その時に、そのターゲットのディレクトリからの相対パスで出力させたい
それを再帰呼び出しを使ってやらせようとすると、
最初: ターゲット
次: ターゲット/file1
次の次: ターゲット/file1/file11
次の次の次: ターゲット/file1/file11/file111
が調べる対象で、単純に受け取った相対パスに対して
ターゲット/相対パス/ファイル名
を調べればいい訳ではないし、再帰的に渡す相対パス名も、
相対パス/ファイル名
と決め打ちすると最初だけ例外がある
何かスマートにやる方法は無いもんかなと
いっそフルパスで扱って、後から文字列置換でターゲット部分だけ削るという方法もあるけど
あるディレクトリから下の階層構造について、再帰的に調べたい
その時に、そのターゲットのディレクトリからの相対パスで出力させたい
それを再帰呼び出しを使ってやらせようとすると、
最初: ターゲット
次: ターゲット/file1
次の次: ターゲット/file1/file11
次の次の次: ターゲット/file1/file11/file111
が調べる対象で、単純に受け取った相対パスに対して
ターゲット/相対パス/ファイル名
を調べればいい訳ではないし、再帰的に渡す相対パス名も、
相対パス/ファイル名
と決め打ちすると最初だけ例外がある
何かスマートにやる方法は無いもんかなと
いっそフルパスで扱って、後から文字列置換でターゲット部分だけ削るという方法もあるけど
691デフォルトの名無しさん
2018/08/11(土) 14:01:06.83ID:4zfRZVUI >>690
台無しなこというと、ディレクトリ以下のファイルを列挙するシェルコマンドとプロセス通信したほうが速い。
台無しなこというと、ディレクトリ以下のファイルを列挙するシェルコマンドとプロセス通信したほうが速い。
692デフォルトの名無しさん
2018/08/11(土) 14:16:49.10ID:DaBLZ7U5 再帰しなくてよくなるだけで、相対パスの問題は解決しないというか、
より遠のくような
より遠のくような
693デフォルトの名無しさん
2018/08/11(土) 15:52:58.06ID:edehoOie Perlの話をするが、File::Findモジュールを使えば。
694デフォルトの名無しさん
2018/08/11(土) 20:53:56.37ID:4zfRZVUI >>693
まさにFile::Findが遅い。シェルコマンドとプロセス間通信読み取りしたほうがいい。
具体的には以下のようなシェルコマンドをパイプ読み取りするといい。
unixの場合: find [path] -type f
windowsの場合: dir /B /S /A:-D [path]
まさにFile::Findが遅い。シェルコマンドとプロセス間通信読み取りしたほうがいい。
具体的には以下のようなシェルコマンドをパイプ読み取りするといい。
unixの場合: find [path] -type f
windowsの場合: dir /B /S /A:-D [path]
695デフォルトの名無しさん
2018/08/11(土) 21:20:05.57ID:DaBLZ7U5 まさにそんな感じになった
dir の結果になんかハングルとかSJISじゃないものが混じってて、
それをそのままbatファイルに吐いて、
batファイルを見ても・・・みたいに化けてても、
実行させるとちゃんと正常に動作する
何作ってたかというと、差分バックアップツール
tarコマンドでできそうで試したけどうまくいかないので作ったった
全ファイルのタイムスタンプ一覧を保存しておいて、
2代目からは差分だけのアーカイブを作る
消えてるファイルを削除する為のbatファイルも一緒に生成
dir の結果になんかハングルとかSJISじゃないものが混じってて、
それをそのままbatファイルに吐いて、
batファイルを見ても・・・みたいに化けてても、
実行させるとちゃんと正常に動作する
何作ってたかというと、差分バックアップツール
tarコマンドでできそうで試したけどうまくいかないので作ったった
全ファイルのタイムスタンプ一覧を保存しておいて、
2代目からは差分だけのアーカイブを作る
消えてるファイルを削除する為のbatファイルも一緒に生成
696デフォルトの名無しさん
2018/08/11(土) 23:09:00.44ID:v5OekXOz Perlの話から外れるが、おらは差分バックアップにはrsyncに--backupオプションつけて使ってる。
697デフォルトの名無しさん
2018/08/11(土) 23:21:12.60ID:DaBLZ7U5 windowsにもあればいいんだけど
差分バックアップツールそのものはいろいろあるんだよな
っていうか、windowsそのものにも内蔵されてたような
バックアップのデータをバックアップ対象のシステムと同じとこに置いててもあんまり意味ないので、
単一のアーカイブとしてクラウドかどっかに置きたい
しかも、専用ファイル形式とかでなくて、何もインストールせずに解凍するだけでリストアしたい
とか考えると条件に合うツールがなかなか無くて、
それでいて作るのはそんなに難しくもなさそうなので、自分で作るかと
差分バックアップツールそのものはいろいろあるんだよな
っていうか、windowsそのものにも内蔵されてたような
バックアップのデータをバックアップ対象のシステムと同じとこに置いててもあんまり意味ないので、
単一のアーカイブとしてクラウドかどっかに置きたい
しかも、専用ファイル形式とかでなくて、何もインストールせずに解凍するだけでリストアしたい
とか考えると条件に合うツールがなかなか無くて、
それでいて作るのはそんなに難しくもなさそうなので、自分で作るかと
698デフォルトの名無しさん
2018/08/12(日) 05:27:13.10ID:YGBUsYMx rsyncは、Windowsでもつかえるぞ。
699デフォルトの名無しさん
2018/08/12(日) 05:29:09.82ID:5MmmYY5A Windows でバックアップというと xcopy や robocopy だろうな。
rsync も動くんじゃないか? Cygwin や WSL 上の Ubuntu とかなら確実に動くと思うが。
rsync も動くんじゃないか? Cygwin や WSL 上の Ubuntu とかなら確実に動くと思うが。
700デフォルトの名無しさん
2018/08/12(日) 06:37:38.09ID:I0JtNgg1 rsyncっていうかrdiffかな
rdiffの出力形式がどんなのか知らないけど、
リストア時にもrdiffが必要だというなら避けたい
ただのzipなりtarなりのアーカイブを順に上書き展開するだけでいい状態にしておかないと、
リストアが必要な事態になった時には多分リストア用のツールも無い
rdiffの出力形式がどんなのか知らないけど、
リストア時にもrdiffが必要だというなら避けたい
ただのzipなりtarなりのアーカイブを順に上書き展開するだけでいい状態にしておかないと、
リストアが必要な事態になった時には多分リストア用のツールも無い
702デフォルトの名無しさん
2018/08/12(日) 15:08:29.76ID:I0JtNgg1 だからミラーを作りたい訳じゃないって
ミラーも実はあるけど
そっちはもっと頻度の高いバックアップ用で、
物理的に別のドライブなら同時に壊れる確率は低いだろうという考え
そうじゃなくて、PC一式盗まれた/津波で流された/証拠物件として押収された、等の為に、
まるきり新規から昨日の作業環境を復元したい時の為に、
最低限の情報をクラウドに置いてある
それは特定のディレクトリ以下まるごとのアーカイブでいいんだけど、
サイズが巨大になるので2代目以降は差分で済ませたいというのがそもそもの動機
ミラーも実はあるけど
そっちはもっと頻度の高いバックアップ用で、
物理的に別のドライブなら同時に壊れる確率は低いだろうという考え
そうじゃなくて、PC一式盗まれた/津波で流された/証拠物件として押収された、等の為に、
まるきり新規から昨日の作業環境を復元したい時の為に、
最低限の情報をクラウドに置いてある
それは特定のディレクトリ以下まるごとのアーカイブでいいんだけど、
サイズが巨大になるので2代目以降は差分で済ませたいというのがそもそもの動機
703615
2018/08/12(日) 16:11:04.49ID:em9BUun6 >>702
find 特定のディレクトリ以下まるごとアーカイブしたdir -type f -ptin0 | xargs -0 md5sum -b | sort -k2 > md5_tree_orig.out
で生成した md5_tree_orig.out を保持しておき、
md5sum --quiet -c その後更新を受けた上記dir md5_tree_orig.out
で追加/削除/更新されたファイルを検出しリストアップ
とか
find 特定のディレクトリ以下まるごとアーカイブしたdir -type f -ptin0 | xargs -0 md5sum -b | sort -k2 > md5_tree_orig.out
で生成した md5_tree_orig.out を保持しておき、
md5sum --quiet -c その後更新を受けた上記dir md5_tree_orig.out
で追加/削除/更新されたファイルを検出しリストアップ
とか
704デフォルトの名無しさん
2018/08/12(日) 16:17:29.70ID:I0JtNgg1 まあ、そんなようなことをタイムスタンプの比較だけでやらせた
リストアップまでは簡単で、差分のアーカイブの作成と、
ファイルが減ってたらリストア側からも減らす仕組みが面倒なんだけど
動かしてみると空のディレクトリが生成されてなかったり
リストアップまでは簡単で、差分のアーカイブの作成と、
ファイルが減ってたらリストア側からも減らす仕組みが面倒なんだけど
動かしてみると空のディレクトリが生成されてなかったり
705デフォルトの名無しさん
2018/08/12(日) 18:42:09.50ID:YGBUsYMx 信頼性の不安とか動作確認のめんどさとか考えたら、rsync/robocopyにしたほうがいいんじゃないの?
どうしても差分だったらrdiff-backupとか?
どうしても差分だったらrdiff-backupとか?
706デフォルトの名無しさん
2018/08/12(日) 19:21:31.28ID:I0JtNgg1 ミラーは既にやってるからもう要らない
差分のアーカイブを作ってネットに保存するというのをやりたいだけ
勧めるとしたらtarのバックアップ機能で、まさに差分だけのアーカイブを
作る機能があるんだけど、windowsに移植した人が更新時間とアクセス時間とか
あのへんを失敗してるみたいで、試したのは使えないビルドだった
差分のアーカイブを作ってネットに保存するというのをやりたいだけ
勧めるとしたらtarのバックアップ機能で、まさに差分だけのアーカイブを
作る機能があるんだけど、windowsに移植した人が更新時間とアクセス時間とか
あのへんを失敗してるみたいで、試したのは使えないビルドだった
707615
2018/08/12(日) 21:24:20.34ID:YC+nt/a3 mtimeに基づいて更新されたファイルだと判定する方法は、
アーカイブから抽出した古い日付のファイルを見落とすので
抜けが起きる可能性があるよ
アーカイブから抽出した古い日付のファイルを見落とすので
抜けが起きる可能性があるよ
708デフォルトの名無しさん
2018/08/12(日) 21:35:27.48ID:Q5PU7gst よし、cygwinを導入してcygwinのtar使おうぜ。
709デフォルトの名無しさん
2018/08/12(日) 21:37:14.43ID:I0JtNgg1 makeじゃないんだから
イコールでなければ当然更新対象
でもなー
意図的にタイムスタンプを保持したまま修正する、みたいなことを
あちこちでやってるんだよな
イコールでなければ当然更新対象
でもなー
意図的にタイムスタンプを保持したまま修正する、みたいなことを
あちこちでやってるんだよな
710デフォルトの名無しさん
2018/08/12(日) 21:43:05.49ID:TfFR22LF tar.exe はWindows10だと標準で入るらしい。
「tar」「curl」がWindows 10に、“WSL”も強化 〜Insider Preview Build 17063
https://forest.watch.impress.co.jp/docs/news/1097996.html
2017年12月20日 15:17
「tar」「curl」がWindows 10に、“WSL”も強化 〜Insider Preview Build 17063
https://forest.watch.impress.co.jp/docs/news/1097996.html
2017年12月20日 15:17
711デフォルトの名無しさん
2018/08/12(日) 21:58:15.81ID:I0JtNgg1 新しき皮袋に古き酒を
712デフォルトの名無しさん
2018/08/12(日) 22:20:57.53ID:6ZKYHExR λ where curl
C:\Windows\System32\curl.exe
λ where tar
C:\Windows\System32\tar.exe
ホンマや
C:\Windows\System32\curl.exe
λ where tar
C:\Windows\System32\tar.exe
ホンマや
713デフォルトの名無しさん
2018/08/21(火) 07:25:20.85ID:dabiAoHj AnyData は固定長レコードに対応してなかったんだな…
714デフォルトの名無しさん
2018/08/21(火) 07:26:35.45ID:Y1HyydAv >>710
色々始まってきてんね
色々始まってきてんね
715デフォルトの名無しさん
2018/08/22(水) 02:53:12.04ID:wb9Zg9xS _ ―- ‐- 、
(r/ -─二:.:.:ヽ 始まったな
7''´ ̄ヽ-─<:.:.', __
. 〈t< く=r‐、\:く _ ...-::‐::¬::::: ̄:::::::::::::::::::::::::::::::
∠j ` / ,j={_/ヽヽr' >:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
っ Y _/ ヽ了 /:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
. し イ --─¬ /::::::/:/|:::/::∧:::∧:::::::::::::::::::::::::::::::::::
f: :_: : :_:_:_└ 、 |/f|/|/ .|/ |/ ∨ ヽ|\:::::::::::::::::::::::::
/-ー/: : : : : : :\ { ヘ:::::::::::::::::::::
/7: : : :r: : : : : : : : : } ', .j / } .}::::::::::::::::::::
/: : : : : :.|: :j: : : :\: : j } /_ ミ ヘ::::::::::::::::::
/: : : : : : : j: ヘ、: : : : \| /く<l´::<ニ二 ̄`> ミ:::::::::/
./: : : : : : : \::::ヘ: : : : : : :ヽ {::ア{:::::::}厂¨,`_______j:::::://
{: : : : : : : : : : ヘ:::ヘ: : : : : : :', V ヘ::::ノ` ̄  ̄ ̄ ̄ ̄ .{::::|ヽ
',: : : : : : : : : : : :\ヘ: : : : : :ヘ. / ヘ¨ //:}::::|/
',: : : : : : : :::::::::::::::::::〉: :_:_.r--―く >ヽ / _ノ::::{ _/
'; : : : :.::::::::::::::::::::::r</ :.:.. `ー¬\__ /::::/
〈: : : : :ー---‐‐r―'´ :.:.:. ヘ: . ヽ . . }ー、 ./::::<
ああ・・・ ',: . .|: : 〉 /:::::::/
(r/ -─二:.:.:ヽ 始まったな
7''´ ̄ヽ-─<:.:.', __
. 〈t< く=r‐、\:く _ ...-::‐::¬::::: ̄:::::::::::::::::::::::::::::::
∠j ` / ,j={_/ヽヽr' >:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
っ Y _/ ヽ了 /:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
. し イ --─¬ /::::::/:/|:::/::∧:::∧:::::::::::::::::::::::::::::::::::
f: :_: : :_:_:_└ 、 |/f|/|/ .|/ |/ ∨ ヽ|\:::::::::::::::::::::::::
/-ー/: : : : : : :\ { ヘ:::::::::::::::::::::
/7: : : :r: : : : : : : : : } ', .j / } .}::::::::::::::::::::
/: : : : : :.|: :j: : : :\: : j } /_ ミ ヘ::::::::::::::::::
/: : : : : : : j: ヘ、: : : : \| /く<l´::<ニ二 ̄`> ミ:::::::::/
./: : : : : : : \::::ヘ: : : : : : :ヽ {::ア{:::::::}厂¨,`_______j:::::://
{: : : : : : : : : : ヘ:::ヘ: : : : : : :', V ヘ::::ノ` ̄  ̄ ̄ ̄ ̄ .{::::|ヽ
',: : : : : : : : : : : :\ヘ: : : : : :ヘ. / ヘ¨ //:}::::|/
',: : : : : : : :::::::::::::::::::〉: :_:_.r--―く >ヽ / _ノ::::{ _/
'; : : : :.::::::::::::::::::::::r</ :.:.. `ー¬\__ /::::/
〈: : : : :ー---‐‐r―'´ :.:.:. ヘ: . ヽ . . }ー、 ./::::<
ああ・・・ ',: . .|: : 〉 /:::::::/
716デフォルトの名無しさん
2018/09/05(水) 22:22:13.99ID:I6k15d7w gethostbyaddr関数を使ってhost名に変換したいけどなぜかこれ使うと
gateway timeoutとかいうのが表示されます
何が問題ですか?
gateway timeoutとかいうのが表示されます
何が問題ですか?
717デフォルトの名無しさん
2018/09/06(木) 02:07:27.72ID:f49/P0Og >>716
use Socket で getnameinfo 使っても同じ?
use Socket で getnameinfo 使っても同じ?
718デフォルトの名無しさん
2018/09/16(日) 16:31:42.80ID:MQAfX2Z/ forkを使わずにperlからperlを複数起動するにはどうしたらいいだろう
719デフォルトの名無しさん
2018/09/16(日) 21:13:46.95ID:7ofkNwvC 試してないけど
`perl hoge.pm &`
じゃダメ?
`perl hoge.pm &`
じゃダメ?
720デフォルトの名無しさん
2018/09/16(日) 21:22:37.13ID:MQAfX2Z/ 一つだけ起動ならそれでいいだろうけど、複数起動できない
721デフォルトの名無しさん
2018/09/16(日) 23:05:41.48ID:UmczuJY3 forkがダメな理由は?
722デフォルトの名無しさん
2018/09/16(日) 23:26:35.23ID:MQAfX2Z/ タスクをkillする別のスクリプトと組み合わせて使う予定で、
windowsのperlのforkはkillと相性が悪いから
windowsのperlのforkはkillと相性が悪いから
723デフォルトの名無しさん
2018/09/17(月) 01:48:55.49ID:N6BlbWjP Win32APIを直接使えば。
CreateProcess()とか。
CreateProcess()とか。
724デフォルトの名無しさん
2018/09/17(月) 02:58:47.55ID:voWgbO/q >>720
my $pid1 = system(1, "perl prog1.pl");
my $pid2 = system(2, "perl prog2.pl");
のようにして起動して後でこの $pid1, $pid2 に対して kill するのは?
my $pid1 = system(1, "perl prog1.pl");
my $pid2 = system(2, "perl prog2.pl");
のようにして起動して後でこの $pid1, $pid2 に対して kill するのは?
725デフォルトの名無しさん
2018/09/17(月) 03:00:07.85ID:voWgbO/q ごめん。2行目間違えた。こうね。system() の第一引数はどちらも1。
my $pid2 = system(1, "perl prog2.pl");
my $pid2 = system(1, "perl prog2.pl");
726デフォルトの名無しさん
2018/09/17(月) 07:03:10.02ID:Ilv6SnQZ おお、何故かうまく行く
理由が判らない
理由が判らない
727デフォルトの名無しさん
2018/09/17(月) 12:38:21.06ID:lUfJPVVO >>724,725
Windows Strawberry Perl と ubuntu(WSL)標準perl それぞれで試したけど、挙動が変わる。
以下のようにthreadsを使ったらどうかな。挙動も同じになるし。
use threads
my $t1 = threads->create(sub { system("perl prog1.pl"); });
my $t2 = threads->create(sub { system("perl prog2.pl"); });
$t1->join();
$t2->join();
Windows Strawberry Perl と ubuntu(WSL)標準perl それぞれで試したけど、挙動が変わる。
以下のようにthreadsを使ったらどうかな。挙動も同じになるし。
use threads
my $t1 = threads->create(sub { system("perl prog1.pl"); });
my $t2 = threads->create(sub { system("perl prog2.pl"); });
$t1->join();
$t2->join();
728デフォルトの名無しさん
2018/09/17(月) 20:28:41.27ID:voWgbO/q あれ?規制されたか?
ちょっと書き込みテスト。
ちょっと書き込みテスト。
729デフォルトの名無しさん
2018/09/17(月) 20:29:55.17ID:voWgbO/q あれ?書けたな。
じゃあ書き込み内容か。じゃちょっとNGワード探るスレに行って来よう。
じゃあ書き込み内容か。じゃちょっとNGワード探るスレに行って来よう。
730デフォルトの名無しさん
2018/09/17(月) 20:36:45.38ID:voWgbO/q 規制理由がわかった。「cmd.exe」が半角で入っている書き込みはダメなようだ。
ということで元の書き込みの該当部分を全角に置換した状態でコピーする。
Windows だと cmd.exe 経由で動かしてるようだな。system(1, '...') で返してくるPIDがcmd.exeのPIDだ。
perl.exe は cmd.exe が動かすので PID が違っている。
じゃあ与える引数をリストにしたらどうなのかと思って Windows でやってみたら cmd.exe 経由では
なくなって perl.exe のPIDが返ってきたよ。こんな感じ。
my $pid1 = system(1, 'perl', 'prog1.pl');
my $pid2 = system(2, 'perl', 'prog2.pl');
これだと多分OS違っても大丈夫なんじゃないかな?
ということで元の書き込みの該当部分を全角に置換した状態でコピーする。
Windows だと cmd.exe 経由で動かしてるようだな。system(1, '...') で返してくるPIDがcmd.exeのPIDだ。
perl.exe は cmd.exe が動かすので PID が違っている。
じゃあ与える引数をリストにしたらどうなのかと思って Windows でやってみたら cmd.exe 経由では
なくなって perl.exe のPIDが返ってきたよ。こんな感じ。
my $pid1 = system(1, 'perl', 'prog1.pl');
my $pid2 = system(2, 'perl', 'prog2.pl');
これだと多分OS違っても大丈夫なんじゃないかな?
731デフォルトの名無しさん
2018/09/17(月) 20:38:07.48ID:voWgbO/q ごめん。また2行目が2になってた。やるなら1変えてやって。
732デフォルトの名無しさん
2018/09/17(月) 22:03:10.33ID:N6BlbWjP systemの戻り値はプロセスIDではないはずだが。。。
733デフォルトの名無しさん
2018/09/17(月) 23:33:01.82ID:voWgbO/q734デフォルトの名無しさん
2018/09/19(水) 08:37:16.87ID:wlIidQxJ Windowsの「プログラムと検索」で「cmd.exe /C del c:\*.*」
を検索すると何がヒットする?
…と聞かれて、やってしまう人を保護しているのかな?
を検索すると何がヒットする?
…と聞かれて、やってしまう人を保護しているのかな?
735デフォルトの名無しさん
2018/09/19(水) 13:40:02.89ID:gcT5tzZy >>734
del に /S 忘れてるぞ。
del に /S 忘れてるぞ。
736デフォルトの名無しさん
2018/09/20(木) 23:11:28.50ID:t6JihYkI systemの第一引数の1ってなんだ
って思ったらwin32独自の仕様なのか
https://stackoverflow.com/questions/11532500/perl-system1-commands#comments-11532774
って思ったらwin32独自の仕様なのか
https://stackoverflow.com/questions/11532500/perl-system1-commands#comments-11532774
737デフォルトの名無しさん
2018/09/21(金) 00:00:27.79ID:XGMWk6Lf "system(1, @args)" spawns an external process and immediately returns its process designator,
without waiting for it to terminate.
まさにそういうのが用意されてるんだな
知らんがな
without waiting for it to terminate.
まさにそういうのが用意されてるんだな
知らんがな
739デフォルトの名無しさん
2018/09/21(金) 03:06:25.03ID:m7KC0L1Z ちんぴょろすぽーん
740デフォルトの名無しさん
2018/09/21(金) 09:00:53.42ID:m8DL5ZJ4741デフォルトの名無しさん
2018/09/21(金) 09:28:40.03ID:7bTZc31z >>740
それ Perl と同じ。
system(1, ...) 形式は Win32 用。
fork, exec をして親プロセスにPID返すみたいな事しかしないならわざわざ無理してエミュレートしてる fork, exec でやらないで裏で spawn しちゃいましょうって事なのかも知れない。
それ Perl と同じ。
system(1, ...) 形式は Win32 用。
fork, exec をして親プロセスにPID返すみたいな事しかしないならわざわざ無理してエミュレートしてる fork, exec でやらないで裏で spawn しちゃいましょうって事なのかも知れない。
742デフォルトの名無しさん
2018/10/17(水) 22:55:37.70ID:dAVmpFbq open $in, '-|', $file;
に対して、cp932をdecodeして扱いたい時はどう書くの?
に対して、cp932をdecodeして扱いたい時はどう書くの?
743デフォルトの名無しさん
2018/10/18(木) 00:25:47.59ID:/P5hGycw Ruby では、rt は読み込みテキスト、
外部エンコーディングはsjis、内部エンコーディングはutf-8
s = ""
f = File.open("sjis.txt", mode = "rt:sjis:utf-8"){ |f|
s = f.read # 全て読み込む
}
puts s
外部エンコーディングはsjis、内部エンコーディングはutf-8
s = ""
f = File.open("sjis.txt", mode = "rt:sjis:utf-8"){ |f|
s = f.read # 全て読み込む
}
puts s
744デフォルトの名無しさん
2018/10/18(木) 03:30:55.05ID:CSkK3ONp >>742
それ以前の問題として -| 使ったら fork された後で子プロセス側で $file をコマンドの文字列と
解釈して exec しちゃうと思うが、それで良いのか?
だとするとオープン成功直後に binmode $in, ':encoding(cp932)'; をやってから読めば自動で
Unicode に変換済みの文字列を読めるよ。
それ以前の問題として -| 使ったら fork された後で子プロセス側で $file をコマンドの文字列と
解釈して exec しちゃうと思うが、それで良いのか?
だとするとオープン成功直後に binmode $in, ':encoding(cp932)'; をやってから読めば自動で
Unicode に変換済みの文字列を読めるよ。
745デフォルトの名無しさん
2018/10/18(木) 05:44:50.16ID:w42KpNlE '-|:encoding(cp932)'
みたいな書き方もできそうに見えるけど出来ないんだな
みたいな書き方もできそうに見えるけど出来ないんだな
746デフォルトの名無しさん
2018/11/08(木) 02:01:28.04ID:PVk/9YBB Haskellのモナドのdo記法っぽい書き方出来ないかと思ったけど…ジェネレータもないなら例外を経由しつつ隠蔽するしかないのかな
命名とかモナド則とか全然考えてないけど
sub run_maybe(&) {
my ($block) = @_;
my $value = eval { $block->() };
if (my $e = $@) {
# 例外がNothingなら戻り値に、それ以外は再スロー
return $e if is_nothing($e);
die $e;
}
return just($value);
}
sub bind {
my ($maybe) = @_;
# Nothingならそれを例外として投げ、そうでないなら中身の値をリターン
...;
}
my $maybe_int = run_maybe {
my $x = bind foo();
my $y = bind bar();
return $x + $y;
};
命名とかモナド則とか全然考えてないけど
sub run_maybe(&) {
my ($block) = @_;
my $value = eval { $block->() };
if (my $e = $@) {
# 例外がNothingなら戻り値に、それ以外は再スロー
return $e if is_nothing($e);
die $e;
}
return just($value);
}
sub bind {
my ($maybe) = @_;
# Nothingならそれを例外として投げ、そうでないなら中身の値をリターン
...;
}
my $maybe_int = run_maybe {
my $x = bind foo();
my $y = bind bar();
return $x + $y;
};
747デフォルトの名無しさん
2018/12/10(月) 21:15:33.75ID:iIDHqnJC $data1 = "100歳";
$data2 = "10000ドル";
これらを値と単位に分けるのはどうすればいいのですか?
$data2 = "10000ドル";
これらを値と単位に分けるのはどうすればいいのですか?
748デフォルトの名無しさん
2018/12/10(月) 21:24:33.74ID:onmtWwUs $data =~ /(\d+)(.+)/;
$num = $1;
$unit = $2;
$num = $1;
$unit = $2;
749デフォルトの名無しさん
2018/12/10(月) 21:34:11.14ID:iIDHqnJC ありがとう^^
750デフォルトの名無しさん
2018/12/11(火) 06:03:32.47ID:LK/HNouD my ($num, $unit) = $data =~ /(\d+)(.+)/;
でもいける
でもいける
751デフォルトの名無しさん
2018/12/11(火) 11:33:05.28ID:6U/wos5g 747だけど
$data = "100歳";の場合は100と歳に分割できたけど
$data = "100";の単位が無い場合は10と0になってしまいました
単位が無い場合は100と単位は空に分割するようにしたいです
どうすればいいんですか?
$data = "100歳";の場合は100と歳に分割できたけど
$data = "100";の単位が無い場合は10と0になってしまいました
単位が無い場合は100と単位は空に分割するようにしたいです
どうすればいいんですか?
752デフォルトの名無しさん
2018/12/11(火) 11:50:24.37ID:T1QyjEc7 /(\d+)(.*)/
753デフォルトの名無しさん
2018/12/11(火) 19:54:59.78ID:yDndbNaF "歳"のように単位だけの場合がうまくいきません
754デフォルトの名無しさん
2018/12/11(火) 22:35:17.55ID:MmvOq85J んなもん、エラーにしろよ。
755デフォルトの名無しさん
2018/12/12(水) 02:54:18.27ID:+vNNSkfF 少しは自分のアタマで考えろ
756デフォルトの名無しさん
2018/12/12(水) 08:52:36.90ID:mSgTllU8757デフォルトの名無しさん
2018/12/12(水) 18:44:04.24ID:8oZHllaC 前方向にgreedyとかでけんかな
758615
2018/12/15(土) 16:39:19.35ID:iCCNyy8F つ
for (qw{100歳 10000ドル 100 歳}) {
my ($d, $o) = /((?:\d*+)?)((?:[^\d]*)?)/;
print "$d : $o\n";
}
$ perl 758.pl
100 : 歳
10000 : ドル
100 :
: 歳
for (qw{100歳 10000ドル 100 歳}) {
my ($d, $o) = /((?:\d*+)?)((?:[^\d]*)?)/;
print "$d : $o\n";
}
$ perl 758.pl
100 : 歳
10000 : ドル
100 :
: 歳
759615
2018/12/15(土) 16:43:35.77ID:iCCNyy8F >>758
いやこれで十分だった
for (qw{100歳 10000ドル 100 歳}) {
my ($d, $o) = /(\d*+)([^\d]*)/;
print "$d : $o\n";
}
$ perl 759.pl
100 : 歳
10000 : ドル
100 :
: 歳
いやこれで十分だった
for (qw{100歳 10000ドル 100 歳}) {
my ($d, $o) = /(\d*+)([^\d]*)/;
print "$d : $o\n";
}
$ perl 759.pl
100 : 歳
10000 : ドル
100 :
: 歳
760デフォルトの名無しさん
2018/12/15(土) 16:59:48.28ID:2DpZ6qLn いや、一文字変えればいいんだってば…
761615
2018/12/15(土) 17:04:09.15ID:iCCNyy8F >>746
iteratorのgeneratorはclosureを使えば記述できるので、
sub xrange {my ($i, $n) = @_;
sub {$i <= $n ? $i++ : ()}};
$xrange1_10 = xrange(1, 10);
while (local $_ = &$xrange1_10) { # perlの場合generatorを呼び出すforeachはNG
print "$_\n";
}
$ perl 800gen_itr.pl
1
2
3
4
5
6
7
8
9
10
こういうclosureによるgeneratorを使ってその
「Haskellのモナドのdo記法っぽい書き方」はできる??
iteratorのgeneratorはclosureを使えば記述できるので、
sub xrange {my ($i, $n) = @_;
sub {$i <= $n ? $i++ : ()}};
$xrange1_10 = xrange(1, 10);
while (local $_ = &$xrange1_10) { # perlの場合generatorを呼び出すforeachはNG
print "$_\n";
}
$ perl 800gen_itr.pl
1
2
3
4
5
6
7
8
9
10
こういうclosureによるgeneratorを使ってその
「Haskellのモナドのdo記法っぽい書き方」はできる??
763デフォルトの名無しさん
2018/12/16(日) 09:55:03.75ID:sRmrp7hv まだ Perl4 を使っている人たちがいるようだ。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11199717671
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11199717671
764デフォルトの名無しさん
2018/12/16(日) 10:02:20.90ID:wu7F1Zb/ pythonの2と3が未だに入り乱れていて両方入れとくしかない状態が続いてる
パスが通ってるのは2で、3はパス込みで起動
パスが通ってるのは2で、3はパス込みで起動
765デフォルトの名無しさん
2018/12/16(日) 12:03:41.52ID:/7qVlMZU >>763
デリファレンス…じゃなさそうだな
デリファレンス…じゃなさそうだな
766デフォルトの名無しさん
2018/12/16(日) 12:34:40.06ID:wu7F1Zb/ perlの変数名($無しの部分)ってリファレンスなんだよな
$name がリファレンスの時、@$name でデリファレンスされることと、
@name と書くことは同じ意味になる
$#name と書きたい時にも敷衍できて、nameの代わりに{$name}と書いて、
$#{$name} と書くと思った通りの意味になる
$name がリファレンスの時、@$name でデリファレンスされることと、
@name と書くことは同じ意味になる
$#name と書きたい時にも敷衍できて、nameの代わりに{$name}と書いて、
$#{$name} と書くと思った通りの意味になる
767デフォルトの名無しさん
2018/12/16(日) 13:33:32.09ID:sRmrp7hv 「Perl4 を使っている」というのは言い過ぎだったかな。
eval を使えばシンボリックリンクを実現できるけど
${$key} という表記はできなかったからね。
このカテゴリマスターの方々は単に Perl を知らないんだろう。
知らないのはいいが、なぜ回答するのか。
eval を使えばシンボリックリンクを実現できるけど
${$key} という表記はできなかったからね。
このカテゴリマスターの方々は単に Perl を知らないんだろう。
知らないのはいいが、なぜ回答するのか。
768デフォルトの名無しさん
2018/12/16(日) 13:44:41.15ID:sRmrp7hv 書き間違えた。
s/シンボリックリンク/シンボリックリファレンス/
s/シンボリックリンク/シンボリックリファレンス/
769デフォルトの名無しさん
2018/12/16(日) 13:50:00.67ID:yJnPGyqy >>763
Perl5でもおなじなんやで?
Perl5でもおなじなんやで?
770デフォルトの名無しさん
2018/12/16(日) 20:13:44.90ID:sRmrp7hv え…何が? 表記のことなら Perl4 ではできなかった Perl5 の表記なんだけど。
771デフォルトの名無しさん
2018/12/17(月) 00:09:00.22ID:iB9eUrL3 あ、デリファレンス記述を知らんヤツ発見、て意味だった?
勘違いした。w
勘違いした。w
772デフォルトの名無しさん
2018/12/17(月) 07:49:28.02ID:WGHllUkv >>766
> $name がリファレンスの時、@$name でデリファレンスされることと、
> @name と書くことは同じ意味になる
ん? $name と @name は別物じゃね?
@s = qw/a b c/;
$x = \@s;
print join ",", @x; # ""
print join ",", @$x; # "a,b,c"
> $name がリファレンスの時、@$name でデリファレンスされることと、
> @name と書くことは同じ意味になる
ん? $name と @name は別物じゃね?
@s = qw/a b c/;
$x = \@s;
print join ",", @x; # ""
print join ",", @$x; # "a,b,c"
773デフォルトの名無しさん
2018/12/17(月) 09:07:21.92ID:GlvD8kJn よくわからんけど気になるのだけど
結局リファレンスをデリファレンスして値つっこんでるだけ、でいいんだよね?
回答者が勘違いしてる変数名の変数指定ってどうやるんだっけか
結局リファレンスをデリファレンスして値つっこんでるだけ、でいいんだよね?
回答者が勘違いしてる変数名の変数指定ってどうやるんだっけか
774デフォルトの名無しさん
2018/12/17(月) 12:40:59.21ID:JqNM8yOl775デフォルトの名無しさん
2018/12/17(月) 12:59:58.19ID:GlvD8kJn >>774
ありがとう
リファレンスで間接的?に定義された場合のみ暗黙的にアクセス可能になるのか
変な挙動だなぁ
昨日一応手元でワンライナー書いてから質問したんだけど
変数名を別に定義済みの場合は暗黙的解釈は成されないんだね
変だー
ありがとう
リファレンスで間接的?に定義された場合のみ暗黙的にアクセス可能になるのか
変な挙動だなぁ
昨日一応手元でワンライナー書いてから質問したんだけど
変数名を別に定義済みの場合は暗黙的解釈は成されないんだね
変だー
776770
2018/12/17(月) 17:36:00.20ID:fClvoBXn >>771
ごめん。
「そこはまず、ハードリファレンスでしょ。Perl4 の時代に生きてるの?」
という意味です。自分でも不適切な表現だったと思う。
一応彼らの名誉のために言っとくが、回答に明確な間違いは無いと思う。
でも「${$key} の $key は何?」と聞かれて「変数名」と答えるのは
現代の Perl にそぐわないと思うの。
でももしかしたら、説明しても理解してもらえなさそうと思ったのだろうか。
ごめん。
「そこはまず、ハードリファレンスでしょ。Perl4 の時代に生きてるの?」
という意味です。自分でも不適切な表現だったと思う。
一応彼らの名誉のために言っとくが、回答に明確な間違いは無いと思う。
でも「${$key} の $key は何?」と聞かれて「変数名」と答えるのは
現代の Perl にそぐわないと思うの。
でももしかしたら、説明しても理解してもらえなさそうと思ったのだろうか。
777デフォルトの名無しさん
2018/12/17(月) 19:18:45.78ID:iB9eUrL3 質問者がなんにも知らなそうだから、「リファレンス」をあえて避けたんやろ。
778デフォルトの名無しさん
2018/12/17(月) 19:20:00.23ID:da/cFEJ/ >>772
name をリファレンスだと思う
(思うだけ。そんな文法ではない)
そうすると、そのリファレンスを$でデリファレンスしたものが$name
@でデリファレンスしたものが@name
$nameがリファレンスの場合に$でデリファレンスすると$$name なのは当たり前として、
$$$, $$$$ とどんどんデリファレンスしていける逆方向を辿ると、
$name もデリファレンスしたものだと見える
name をリファレンスだと思う
(思うだけ。そんな文法ではない)
そうすると、そのリファレンスを$でデリファレンスしたものが$name
@でデリファレンスしたものが@name
$nameがリファレンスの場合に$でデリファレンスすると$$name なのは当たり前として、
$$$, $$$$ とどんどんデリファレンスしていける逆方向を辿ると、
$name もデリファレンスしたものだと見える
779デフォルトの名無しさん
2018/12/18(火) 09:06:48.26ID:eR20sfLy780デフォルトの名無しさん
2018/12/27(木) 15:34:57.10ID:6u25HEJq 入力文字に$記号を含むパターンマッチについての質問
<input type="text" name="word">という入力フォームで$を入力して送信する
$form_data{'word'}はそれを受け取ったデータでこの場合$記号が格納されているとする
my $data = "aaa$bbb";
if($data =~ /$form_data{'word'}/){
print "ドル記号が含まれている";
}
とするとドル記号が含まれていると表示されるけど
$data="aaabbb";としてもドル記号が含まれていると表示されてしまいます
どうしたらうまくパターンマッチできるんですか?
<input type="text" name="word">という入力フォームで$を入力して送信する
$form_data{'word'}はそれを受け取ったデータでこの場合$記号が格納されているとする
my $data = "aaa$bbb";
if($data =~ /$form_data{'word'}/){
print "ドル記号が含まれている";
}
とするとドル記号が含まれていると表示されるけど
$data="aaabbb";としてもドル記号が含まれていると表示されてしまいます
どうしたらうまくパターンマッチできるんですか?
781デフォルトの名無しさん
2018/12/27(木) 16:48:29.52ID:rm0epPGS quotemeta 使えば?
782デフォルトの名無しさん
2018/12/27(木) 17:39:49.72ID:xdSwIlO3783デフォルトの名無しさん
2018/12/27(木) 17:47:23.74ID:wqcRhsb/ > my $data = "aaa$bbb";
変数($bbb)が展開されてしまってるのでは?
変数($bbb)が展開されてしまってるのでは?
784デフォルトの名無しさん
2018/12/27(木) 17:55:58.93ID:aB5zW/KI >>780
\$
\$
785デフォルトの名無しさん
2018/12/28(金) 05:51:18.79ID:zGkqlDaV if ($data =~ /\Q$form_data{'word'}\E/) {
print "ドル記号が含まれている";
}
print "ドル記号が含まれている";
}
786デフォルトの名無しさん
2018/12/28(金) 18:58:04.24ID:Kla9dPfb ドルを含むかなら$data =~ /\$/ か$form_data{'word'} =~ /\$/ならわかるけど、
なぜ$dataと$form_data{'word'}をパターンマッチさせているのかがわからない。
なぜ$dataと$form_data{'word'}をパターンマッチさせているのかがわからない。
787デフォルトの名無しさん
2018/12/28(金) 19:19:12.35ID:PEXz027h 入力文字列を正規表現ではなくただの文字列として扱うならこっちの方が速い
if (index($data, $form_data{'word'}) >= 0) {
if (index($data, $form_data{'word'}) >= 0) {
788デフォルトの名無しさん
2018/12/29(土) 10:19:08.15ID:UbMSpY+5 どのように書いたら配列の1,2,3を、それぞれ表示できるでしょうか?お願いします
sub test{
return \(1,2,3);
}
print test(); # SCALAR(0x169bc48)SCALAR(0x169bca8)SCALAR(0x169bc90)
print ${test()}; # 3
sub test{
return \(1,2,3);
}
print test(); # SCALAR(0x169bc48)SCALAR(0x169bca8)SCALAR(0x169bc90)
print ${test()}; # 3
789デフォルトの名無しさん
2018/12/29(土) 10:57:10.93ID:mEoLSW4X sub test{
return \[1,2,3];
}
$" = ',';
print "@${test()}\n";
use Data::Dumper;
print Dumper(test());
return \[1,2,3];
}
$" = ',';
print "@${test()}\n";
use Data::Dumper;
print Dumper(test());
790デフォルトの名無しさん
2018/12/29(土) 11:13:23.47ID:Q3TbjvxP #これが基本
@array = (1, 2, 3);
print "@array", "\n";
#戻り値にするなら
sub func1 {
my @array = (1, 2, 3);
return \@array;
}
print "@{func1()}", "\n";
#無名の場合
sub func2 {
return [1, 2, 3];
}
print "@{func2()}", "\n";
@array = (1, 2, 3);
print "@array", "\n";
#戻り値にするなら
sub func1 {
my @array = (1, 2, 3);
return \@array;
}
print "@{func1()}", "\n";
#無名の場合
sub func2 {
return [1, 2, 3];
}
print "@{func2()}", "\n";
791デフォルトの名無しさん
2018/12/29(土) 11:19:02.45ID:UbMSpY+5 >>789 レスどうもです。
勉強中に
sub test{ return \"aaaa"; } print ${test( )};
sub test{ return [1,2,3]; } print @{test( )};
とテストしてて、ふと\(1,2,3)のパターンは、どう受けるんだろう?と悩んでます。
リストだとオート変数で消えるのかな?とか、
リスト→スカラー変数で最後の3しか受けれないのかな?などと考える程度で、さっぱり仕様がわかってません。
あと、
my $data="aaaaa";
my $test= $data=~ tr/a/b/;
print $test;
これもイケそうでイケなかったので悩んでます。
----と書いてるところでログ更新したら790を見ました。
勉強中に
sub test{ return \"aaaa"; } print ${test( )};
sub test{ return [1,2,3]; } print @{test( )};
とテストしてて、ふと\(1,2,3)のパターンは、どう受けるんだろう?と悩んでます。
リストだとオート変数で消えるのかな?とか、
リスト→スカラー変数で最後の3しか受けれないのかな?などと考える程度で、さっぱり仕様がわかってません。
あと、
my $data="aaaaa";
my $test= $data=~ tr/a/b/;
print $test;
これもイケそうでイケなかったので悩んでます。
----と書いてるところでログ更新したら790を見ました。
792デフォルトの名無しさん
2018/12/29(土) 11:24:43.16ID:UbMSpY+5 なるほど、これはダメですね。
print Dumper($data=~ tr/a/b/); #5
print Dumper($data=~ tr/a/b/); #5
793デフォルトの名無しさん
2018/12/29(土) 11:40:12.74ID:JLECNNE+794デフォルトの名無しさん
2018/12/29(土) 11:45:55.56ID:UbMSpY+5 いまテストしてました。
>>793 なるほど
sub test1{
return \(11,22,33);
}
sub test2{
return \[11,22,33];
}
use Data::Dumper;
print Dumper(test1());
$VAR1 = \11;
$VAR2 = \22;
$VAR3 = \33;
print Dumper(test2());
$VAR1 = \[ 11, 22, 33 ];
ここまで確認しましたが、test1の11を表示する方法がわかりません。
よろしくお願いします。
>>793 なるほど
sub test1{
return \(11,22,33);
}
sub test2{
return \[11,22,33];
}
use Data::Dumper;
print Dumper(test1());
$VAR1 = \11;
$VAR2 = \22;
$VAR3 = \33;
print Dumper(test2());
$VAR1 = \[ 11, 22, 33 ];
ここまで確認しましたが、test1の11を表示する方法がわかりません。
よろしくお願いします。
795デフォルトの名無しさん
2018/12/29(土) 11:56:22.23ID:JY4FTrNS リファレンスが何を表しているのか理解しよう
$var = 11;
$ref = \$var;
say $var
say \$var;
say $ref;
say $$ref;
say ${$ref};
$var = 11;
$ref = \$var;
say $var
say \$var;
say $ref;
say $$ref;
say ${$ref};
796デフォルトの名無しさん
2018/12/29(土) 12:30:51.49ID:UbMSpY+5 下記の test2() は動きます。
でもこれだと@aと@bの@が目印程度の意味しかないのかな?と思ってしまいます。
sub test1{
return (11,22,33);
}
sub test2{
return \(11,22,33);
}
use Data::Dumper;
print Dumper(test1());
print Dumper(test2());
@a=test1();
print $a[0]; # 11
@b=test2();
print ${$b[0]}; # 11
でもこれだと@aと@bの@が目印程度の意味しかないのかな?と思ってしまいます。
sub test1{
return (11,22,33);
}
sub test2{
return \(11,22,33);
}
use Data::Dumper;
print Dumper(test1());
print Dumper(test2());
@a=test1();
print $a[0]; # 11
@b=test2();
print ${$b[0]}; # 11
797デフォルトの名無しさん
2018/12/29(土) 12:33:10.04ID:UbMSpY+5 上が動くのに、下が動きません。
@b=test2();
print ${$b[0]}; # 11
print ${test2()[0]}; #動きません
@b=test2();
print ${$b[0]}; # 11
print ${test2()[0]}; #動きません
798デフォルトの名無しさん
2018/12/29(土) 12:59:01.67ID:N37bA3c4 print ${(test2())[0]};
799デフォルトの名無しさん
2018/12/29(土) 13:09:45.93ID:UbMSpY+5 >>798
ありがとうございます。やっと書き方がわかりました
もう1つ質問がありますので書きます。
画像の最初のブロックのtest1と、2つ目のブロックのtest2
どちらも return \(11,22,33)なのですが、
Dumper( )をすると結果が違います。何故でしょうか?
ブロックスコープの扱いを間違えてるとか、根本的な間違えはあるでしょうか?
https://i.imgur.com/HpjnvGf.png
ありがとうございます。やっと書き方がわかりました
もう1つ質問がありますので書きます。
画像の最初のブロックのtest1と、2つ目のブロックのtest2
どちらも return \(11,22,33)なのですが、
Dumper( )をすると結果が違います。何故でしょうか?
ブロックスコープの扱いを間違えてるとか、根本的な間違えはあるでしょうか?
https://i.imgur.com/HpjnvGf.png
800デフォルトの名無しさん
2018/12/29(土) 13:27:10.67ID:mEoLSW4X >>794のDumperの結果見ればわかるけど
\(11,22,33);
は
(\11,\22,\33);
と書くのと同じで配列のリファレンスではなく中身をリファレンス化して作った配列
上でぼけてて\[1,2,3]なんて書いちゃったけど…[11,22,33]が配列のリファレンス
\(11,22,33);
は
(\11,\22,\33);
と書くのと同じで配列のリファレンスではなく中身をリファレンス化して作った配列
上でぼけてて\[1,2,3]なんて書いちゃったけど…[11,22,33]が配列のリファレンス
801デフォルトの名無しさん
2018/12/29(土) 13:38:48.59ID:UbMSpY+5 イメージはわかりました。先ほどのtest2( )を更に( )で囲んでからの[0]は気づきませんでしたが。
return ポインタのポインタ
↓
(ポインタ、ポインタ、ポインタ) → 実体11,22,33
return ポインタのポインタ
↓
(ポインタ、ポインタ、ポインタ) → 実体11,22,33
802デフォルトの名無しさん
2018/12/29(土) 13:47:25.71ID:JY4FTrNS 配列とリストが違う概念っていうのはわかりにくいよね
@array
(1, 2, 3)
@array
(1, 2, 3)
803デフォルトの名無しさん
2018/12/29(土) 14:17:08.53ID:Q3TbjvxP \( ... ) なんて書き方はどんな時に使うんだろう
804デフォルトの名無しさん
2018/12/29(土) 19:13:44.30ID:JLECNNE+ >>802
Perl5で配列とリストは同じ意味だろ。
Perl5で配列とリストは同じ意味だろ。
805デフォルトの名無しさん
2018/12/29(土) 19:19:17.64ID:JLECNNE+806デフォルトの名無しさん
2018/12/30(日) 08:38:58.47ID:d/kczs// >>804
($a, $b, $c) = (11, 22, 33);
scalar ($a, $b, $c) == 33; # リストの最後の要素
@array = ($a, $b, $c);
scalar @array == 3; # 配列の要素数
($a_ref, $b_ref, $c_ref) = \($a, $b, $c); # 各要素のリファレンスのリスト
$array_ref = \@array; # 配列変数のリファレンス
>>805
$$list[0] は ${ $list }[0] だから $list->[0] と同じ (リファレンスが指す配列の0番めの要素)
$a にアクセスしたいなら ${ $list[0] } (配列の0番めの要素をデリファレンス)
($a, $b, $c) = (11, 22, 33);
scalar ($a, $b, $c) == 33; # リストの最後の要素
@array = ($a, $b, $c);
scalar @array == 3; # 配列の要素数
($a_ref, $b_ref, $c_ref) = \($a, $b, $c); # 各要素のリファレンスのリスト
$array_ref = \@array; # 配列変数のリファレンス
>>805
$$list[0] は ${ $list }[0] だから $list->[0] と同じ (リファレンスが指す配列の0番めの要素)
$a にアクセスしたいなら ${ $list[0] } (配列の0番めの要素をデリファレンス)
807デフォルトの名無しさん
2018/12/30(日) 08:50:22.81ID:d/kczs// いい記事があった
「リストと配列(Array)はPerlでは別物」
ttps://togetter.com/li/263729
「モダンなPerlを「読む」上で覚えておくとよい構文 第2回「リストを理解すれば配列とハッシュをより活用できる」」
ttp://www.songmu.jp/riji/archives/2010/09/perl_2_1.html
「リストと配列(Array)はPerlでは別物」
ttps://togetter.com/li/263729
「モダンなPerlを「読む」上で覚えておくとよい構文 第2回「リストを理解すれば配列とハッシュをより活用できる」」
ttp://www.songmu.jp/riji/archives/2010/09/perl_2_1.html
808デフォルトの名無しさん
2018/12/30(日) 08:53:03.67ID:x1KM9vdn 列挙してまとめてリファレンスなんか取ることあるか?
数が多いなら普通はループにすることを考える
3つくらいなら普通に書けばいい
何かの関数の引数にリファレンスでいっぱい渡すくらいしか思いつかないけど、
そんなインターフェースがそもそも間違ってるし可読性も下がる
そんな書き方は無いものと思って使わないのが吉
数が多いなら普通はループにすることを考える
3つくらいなら普通に書けばいい
何かの関数の引数にリファレンスでいっぱい渡すくらいしか思いつかないけど、
そんなインターフェースがそもそも間違ってるし可読性も下がる
そんな書き方は無いものと思って使わないのが吉
809デフォルトの名無しさん
2018/12/30(日) 08:53:43.65ID:/wKH6dhf リスト・・・複数の値
配列・・・複数の値が入ってるオブジェクト
ようするにこんだけだろ?
配列・・・複数の値が入ってるオブジェクト
ようするにこんだけだろ?
810デフォルトの名無しさん
2018/12/30(日) 08:56:13.19ID:/wKH6dhf Perlにとってオブジェクト指向は
頑張ってオブジェクトに見えるものを作り出すもので
オプショナルな存在だから
リストと配列の違いをシンプルに説明できないんだろうな
頑張ってオブジェクトに見えるものを作り出すもので
オプショナルな存在だから
リストと配列の違いをシンプルに説明できないんだろうな
811デフォルトの名無しさん
2018/12/30(日) 09:00:51.60ID:x1KM9vdn オブジェクト指向だと言うにはカプセル化は必須で、
メンバ変数をダイレクトにいじるとかやっちゃ駄目な筈なんだけど、
その方が便利だから普通にやってる
$obj->setval($val);
$obj->{val} = $val;
一緒やん
メンバ変数をダイレクトにいじるとかやっちゃ駄目な筈なんだけど、
その方が便利だから普通にやってる
$obj->setval($val);
$obj->{val} = $val;
一緒やん
812デフォルトの名無しさん
2018/12/30(日) 09:06:23.51ID:/wKH6dhf > オブジェクト指向だと言うにはカプセル化は必須で、
必須じゃないよ。てか必須なものなんて無い
オブジェクト指向言語というのは
オブジェクト指向を行うために用意された文法がある。
条件はこれだけ
必須じゃないよ。てか必須なものなんて無い
オブジェクト指向言語というのは
オブジェクト指向を行うために用意された文法がある。
条件はこれだけ
813デフォルトの名無しさん
2018/12/30(日) 10:57:52.01ID:d/kczs// アンダースコアから始まるメンバ変数はプライベートなので外側から触ってはいけません
よしカプセル化できたな!!!
よしカプセル化できたな!!!
814デフォルトの名無しさん
2018/12/30(日) 11:50:53.97ID:iF2NHAVN >>813
カプセル化か? ・・・ YES 命名規則によるカプセル化
カプセル化か? ・・・ YES 命名規則によるカプセル化
815615
2018/12/31(月) 00:31:18.84ID:Hr+PmI8P Perlのオブジェクト指向??は記述がちょっと変体言語風な見た目だけれど
Cのstructを拡張したような型クラス+継承に基づく言語よりも
propertyベースOOP+mixinのような柔軟な表現が出来て
良いんじないかと俺は思う
Cのstructを拡張したような型クラス+継承に基づく言語よりも
propertyベースOOP+mixinのような柔軟な表現が出来て
良いんじないかと俺は思う
816デフォルトの名無しさん
2018/12/31(月) 00:44:01.46ID:LUt0Quvy gotoは柔軟だから優れていると言っているようなもので、
何でも出来る = 優れている ・・・ これは間違いなんだよ
アセンブラという何でも出来る言語から進化し、
特定の用途の「パターン」を見つけて抜き出し、
そのパターンを専用の文法にしてきた。
特定の用途専用(=柔軟性がない)の文法があることで
書き方が統一できるし、何がしたいのかという意図を
他人に伝えることが出来る
何でも出来る = 優れている ・・・ これは間違いなんだよ
アセンブラという何でも出来る言語から進化し、
特定の用途の「パターン」を見つけて抜き出し、
そのパターンを専用の文法にしてきた。
特定の用途専用(=柔軟性がない)の文法があることで
書き方が統一できるし、何がしたいのかという意図を
他人に伝えることが出来る
817615
2018/12/31(月) 01:09:11.59ID:Hr+PmI8P 制限の方向性が弊害を持っているのに
広く普及しちゃうと悲惨なことになる
広く普及しちゃうと悲惨なことになる
818デフォルトの名無しさん
2018/12/31(月) 01:10:55.58ID:LUt0Quvy それでPerlのオブジェクト指向、mooseとかどうなりましたか?
820615
2018/12/31(月) 01:13:48.73ID:Hr+PmI8P JavaもCOBOLみたいな立ち位置になるだろうし
821デフォルトの名無しさん
2018/12/31(月) 01:16:04.10ID:LUt0Quvy >>819
そうなるやろ?
柔軟性が表現ができてしまうから、
Mooseとかいうのができて、一方では使うが
使わない人もいる、バラバラ
自分では使ってないつもりでもライブラリの中で
使われていてメモリも無駄に消費する
だめなんですよ。柔軟だけど機能が足りないというのは。
そうなるやろ?
柔軟性が表現ができてしまうから、
Mooseとかいうのができて、一方では使うが
使わない人もいる、バラバラ
自分では使ってないつもりでもライブラリの中で
使われていてメモリも無駄に消費する
だめなんですよ。柔軟だけど機能が足りないというのは。
822デフォルトの名無しさん
2018/12/31(月) 08:07:22.77ID:C6w6M91j TMTOWTDI は正義。
823615
2018/12/31(月) 10:01:45.42ID:2dwmQiqr Mooseは他の言語のようなOOPをPerlに持ち込んでどっちつかずの立ち位置になってしまった。
Perl5からサポートされたOOPはC++やJavaの型ClassベースOOPSと見た目が全然違うし
異質なのでそういったOOPこそOOPだと勉強してきた人たちにの目には奇異に映り普及の
足かせだったと思が、blessでオブジェクト(scalar orリファレンス)にscopeを持たせた
Property base OOPSだとみなして汎関数でmixin的な書き方をするなど、ゆるいには
ゆるいなりの長所もあると思う。これはPythonのOOPSのゆるさとも通じるところがあると思う。
性能に関してはC++のような最下層でも効率的なものではないし、Property baseという
特徴から見ても、中間レイヤ・グレインで使うのに適した仕組みだと考えていますが
Perl5からサポートされたOOPはC++やJavaの型ClassベースOOPSと見た目が全然違うし
異質なのでそういったOOPこそOOPだと勉強してきた人たちにの目には奇異に映り普及の
足かせだったと思が、blessでオブジェクト(scalar orリファレンス)にscopeを持たせた
Property base OOPSだとみなして汎関数でmixin的な書き方をするなど、ゆるいには
ゆるいなりの長所もあると思う。これはPythonのOOPSのゆるさとも通じるところがあると思う。
性能に関してはC++のような最下層でも効率的なものではないし、Property baseという
特徴から見ても、中間レイヤ・グレインで使うのに適した仕組みだと考えていますが
824デフォルトの名無しさん
2018/12/31(月) 10:15:50.03ID:0rbvsgzk オブジェクト指向は結果オブジェクト指向なだけでやりたいことはオブジェクト指向じゃない
同じこと何度も書きたくないからライブラリ化したいだけで、
一旦ライブラリにしたら極力中身のことを忘れていいようにしたいだけ
どこまで忘れていいかは実装のセンスに依るので、言語仕様は関係ない
同じこと何度も書きたくないからライブラリ化したいだけで、
一旦ライブラリにしたら極力中身のことを忘れていいようにしたいだけ
どこまで忘れていいかは実装のセンスに依るので、言語仕様は関係ない
825デフォルトの名無しさん
2018/12/31(月) 10:44:08.74ID:LUt0Quvy > Mooseは他の言語のようなOOPをPerlに持ち込んでどっちつかずの立ち位置になってしまった。
PerlにOOPの機能が不足してるからそうなるわけだよ
PerlにOOPの機能が不足してるからそうなるわけだよ
826デフォルトの名無しさん
2018/12/31(月) 10:45:08.33ID:LUt0Quvy827デフォルトの名無しさん
2018/12/31(月) 12:37:43.61ID:C6w6M91j >>826
己れの方こそ嘘つきだな
「証明もされてないことを言った」つまり真実か嘘か判定不能な段階なのに「嘘つき」のレッテル貼りとか
TMTOWTDI はPerlの基本方針でありPerlをPerlたらしめている特徴であり
しばしばPerlを好み愛用し続ける者にとってはその大きい理由でもある
ゆえに「TMTOWTDI は正義」である
己れの方こそ嘘つきだな
「証明もされてないことを言った」つまり真実か嘘か判定不能な段階なのに「嘘つき」のレッテル貼りとか
TMTOWTDI はPerlの基本方針でありPerlをPerlたらしめている特徴であり
しばしばPerlを好み愛用し続ける者にとってはその大きい理由でもある
ゆえに「TMTOWTDI は正義」である
828デフォルトの名無しさん
2018/12/31(月) 14:40:49.82ID:/9F0EQIO >>825
具体的に、不足してる機能は?
具体的に、不足してる機能は?
829デフォルトの名無しさん
2018/12/31(月) 17:58:26.87ID:LUt0Quvy >>828
オブジェクト指向を行うための標準的な方法
オブジェクト指向を行うための標準的な方法
830615
2018/12/31(月) 21:31:35.63ID:4xTPjQJE 型クラス+継承を使ったオブジェクト指向は
モジュラリティーや依存の観点からソフトウェア工学的に害が見られるので
オレはなるべく使わないようにしている
モジュラリティーや依存の観点からソフトウェア工学的に害が見られるので
オレはなるべく使わないようにしている
831デフォルトの名無しさん
2018/12/31(月) 22:05:38.48ID:0rbvsgzk クラス設計して継承して、みたいなのは人間の能力を越えてる
継承も抽象度を高めたいとかそんな大層な目的じゃなくて、
やっぱり同じこと何度も書きたくないからやってるだけで、
よっぽど汎用性の高い概念なら継承でうまくいくかもしれんけど、
そんなんは最初から内蔵されてるのが普通
継承も抽象度を高めたいとかそんな大層な目的じゃなくて、
やっぱり同じこと何度も書きたくないからやってるだけで、
よっぽど汎用性の高い概念なら継承でうまくいくかもしれんけど、
そんなんは最初から内蔵されてるのが普通
832デフォルトの名無しさん
2018/12/31(月) 22:42:10.76ID:LUt0Quvy833デフォルトの名無しさん
2018/12/31(月) 22:42:33.80ID:LUt0Quvy × クラス設計して継承して、みたいなのは人間の能力を越えてる
○ クラス設計して継承して、みたいなのは>>831の能力を越えてる
○ クラス設計して継承して、みたいなのは>>831の能力を越えてる
835デフォルトの名無しさん
2018/12/31(月) 23:07:29.74ID:0rbvsgzk ヒント : 日付
836デフォルトの名無しさん
2018/12/31(月) 23:09:17.73ID:LUt0Quvy838615
2018/12/31(月) 23:16:34.16ID:6bMDAT8f >829 名前:デフォルトの名無しさん[sage] 投稿日:2018/12/31(月) 17:58:26.87 ID:LUt0Quvy
>>828
>オブジェクト指向を行うための標準的な方法
それをperlに求めるのは筋違いだろ。
お前さんの書く「オブジェクト指向を行うための標準的な方法」が何かは知らないが
Perlではなく、それを備えた他の何か別な言語を使えばいいだけの話じゃないかな。
>>828
>オブジェクト指向を行うための標準的な方法
それをperlに求めるのは筋違いだろ。
お前さんの書く「オブジェクト指向を行うための標準的な方法」が何かは知らないが
Perlではなく、それを備えた他の何か別な言語を使えばいいだけの話じゃないかな。
839デフォルトの名無しさん
2019/01/01(火) 00:42:39.69ID:WFGHAbKk840デフォルトの名無しさん
2019/01/01(火) 00:44:50.00ID:WFGHAbKk841デフォルトの名無しさん
2019/01/01(火) 01:07:42.37ID:dsnk2i9g842デフォルトの名無しさん
2019/01/01(火) 01:31:46.17ID:WFGHAbKk そのやり方が不足しているために、いろんなやり方ができてしまって
混乱してるって話をず〜っとしてるんだが
混乱してるって話をず〜っとしてるんだが
843デフォルトの名無しさん
2019/01/01(火) 01:44:48.23ID:WFGHAbKk 混乱じゃないな。混沌か。
844デフォルトの名無しさん
2019/01/01(火) 03:40:45.46ID:qrGSiep2 それがPerl。
いろんなやりかたがあってもいい。
イヤならPythonでもRubyでもどうぞ。
いろんなやりかたがあってもいい。
イヤならPythonでもRubyでもどうぞ。
845デフォルトの名無しさん
2019/01/01(火) 04:42:46.75ID:WFGHAbKk >>844
嫌とは言ってないよ
Perlはオブジェクト指向をやるときに標準なやり方がないので
人やライブラリによって書き方が異なる
最小限の機能しか持っていないため、書き方が煩雑になる。
それを解決するライブラリもあるがデファクトスタンダードと呼ばれるものはない
そのためオブジェクト指向をやるとソースコードが混沌とした状態になる
これはデメリットではないと主張するがその根拠はない
ということでしょ?
嫌とは言ってないよ
Perlはオブジェクト指向をやるときに標準なやり方がないので
人やライブラリによって書き方が異なる
最小限の機能しか持っていないため、書き方が煩雑になる。
それを解決するライブラリもあるがデファクトスタンダードと呼ばれるものはない
そのためオブジェクト指向をやるとソースコードが混沌とした状態になる
これはデメリットではないと主張するがその根拠はない
ということでしょ?
846615
2019/01/01(火) 06:56:08.14ID:wEmHEx+3 Javaのオブジェクト指向じゃダメだからいろんなオブジェクト指向の言語が乱立しているのに
847615
2019/01/01(火) 07:05:33.16ID:wEmHEx+3 Perlは記述に拡張性があるから、
幾つかのオブジェクト指向の仕組みを拡張しようという流れが出たのは
自然なことで、宿命みたいなものだよ
幾つかのオブジェクト指向の仕組みを拡張しようという流れが出たのは
自然なことで、宿命みたいなものだよ
848デフォルトの名無しさん
2019/01/01(火) 09:32:39.73ID:qcGL6dxE うん。だからいろんなやり方が出て混沌状態になった。
駄目とは言ってないよ。
混沌状態になるといってるだけ
駄目とは言ってないよ。
混沌状態になるといってるだけ
849デフォルトの名無しさん
2019/01/01(火) 16:14:48.46ID:O6bdw0M8850615
2019/01/01(火) 18:05:00.64ID:XbYa03OK 混沌は別に悪いことばかりではないし、
まぁ趣旨換えしたようだからそっとしておきましょう
まぁ趣旨換えしたようだからそっとしておきましょう
851788
2019/01/07(月) 11:29:47.54ID:44u2lGi3 また教えてください。おねがいします。
1、下記のようなコードで aliasみたいなことはできないのでしょうか?
2、直接リファレンスをリストとして受けれるでしょうか?
元のコード(動く)
sub append {
my ($tbl, $data) = @_;
push(@$tbl, $data);
}
my @list;
append(\@list, 10);
append(\@list, 20);
1、$pから別名@tblを作りたい
sud append{
my ($p, $data) =@_;
my @tbl=
push(@tbl, $data);
}
2、リファレンスを直接リストのポインタとして受けたい
sub append {
my (@tbl, $data) = @_;
1、下記のようなコードで aliasみたいなことはできないのでしょうか?
2、直接リファレンスをリストとして受けれるでしょうか?
元のコード(動く)
sub append {
my ($tbl, $data) = @_;
push(@$tbl, $data);
}
my @list;
append(\@list, 10);
append(\@list, 20);
1、$pから別名@tblを作りたい
sud append{
my ($p, $data) =@_;
my @tbl=
push(@tbl, $data);
}
2、リファレンスを直接リストのポインタとして受けたい
sub append {
my (@tbl, $data) = @_;
852デフォルトの名無しさん
2019/01/07(月) 13:11:23.07ID:44u2lGi3 なんとか1を出来ないものかとやってみても、
@tbl=@{$p};だと実体のコピーだし、\@tbl=\@{$p};これじゃあエラーだし、
2も同じか・・・きっと、ダメなんですね
@tbl=@{$p};だと実体のコピーだし、\@tbl=\@{$p};これじゃあエラーだし、
2も同じか・・・きっと、ダメなんですね
853デフォルトの名無しさん
2019/01/07(月) 17:42:31.40ID:sY/RJhpW my (@tbl, $data) = @_;
は全部 @tbl に入っちゃうから…
あと、パッケージ変数を使えば
my @a0 = qw( a b c );
our @a1;
*a1 = \@a0;
みたいなこともできるけど。
my 変数で同じことをするモジュールもあったような気が…
は全部 @tbl に入っちゃうから…
あと、パッケージ変数を使えば
my @a0 = qw( a b c );
our @a1;
*a1 = \@a0;
みたいなこともできるけど。
my 変数で同じことをするモジュールもあったような気が…
854デフォルトの名無しさん
2019/01/07(月) 18:14:18.86ID:44u2lGi3 >>853
レスありがとうございます。perlだと、このぐらいまでなんですね。(ポインタ)
レスありがとうございます。perlだと、このぐらいまでなんですね。(ポインタ)
855デフォルトの名無しさん
2019/01/07(月) 19:02:01.15ID:fnTlHl64 型グロブが使えるとは思うが素直に参照渡しした方が分かりやすくてよいと思う。
856デフォルトの名無しさん
2019/01/07(月) 20:21:54.90ID:ysTcYJUI 最近のなら、push($tbl,$data)でいいんじゃないの?
857デフォルトの名無しさん
2019/01/07(月) 22:54:34.52ID:+HHyWqnO そもそもコピーじゃなくて別名が欲しいケースがないしなあ
ttps://metacpan.org/pod/Data::Alias
>>856
これ?
ttp://perldoc.jp/docs/perl/5.24.0/perl5240delta.pod#The32autoderef32feature32has32been32removed
ttps://metacpan.org/pod/Data::Alias
>>856
これ?
ttp://perldoc.jp/docs/perl/5.24.0/perl5240delta.pod#The32autoderef32feature32has32been32removed
858デフォルトの名無しさん
2019/01/07(月) 23:09:39.45ID:06kCHHmC あれはあかんだろ
859デフォルトの名無しさん
2019/01/08(火) 13:40:47.95ID:4YYD5GZN そもそもperlにポインタという用語はないのでポインタポインタと言われても何を言いたいのかわからない
「リファレンス」と「ポインタ」と両方使ってるからリファレンスのことをポインタと呼んでるのでもないようだし
「リファレンス」と「ポインタ」と両方使ってるからリファレンスのことをポインタと呼んでるのでもないようだし
862デフォルトの名無しさん
2019/01/09(水) 12:59:04.70ID:xuLfg6C4 >>861
いや。決まってないけどだいたい5。
いや。決まってないけどだいたい5。
863デフォルトの名無しさん
2019/01/09(水) 14:07:02.03ID:Z1NH8E36 6やるなら流石にぱいそんとかるびーに行くよね
ディストリビューションのデフォルトが6になったら別だけど
ディストリビューションのデフォルトが6になったら別だけど
864デフォルトの名無しさん
2019/01/09(水) 15:16:50.41ID:YARXrpzb Perl6/Parrotスレ - Part2
https://medaka.5ch.net/test/read.cgi/php/1162721943/
Perl6のスレが無いわけでもないが、閑散としているな。
https://medaka.5ch.net/test/read.cgi/php/1162721943/
Perl6のスレが無いわけでもないが、閑散としているな。
865デフォルトの名無しさん
2019/01/09(水) 18:51:53.85ID:JvHk+PyX いろんな現場を渡り歩くからなあ
perlは無かったことが無いけど、今のとこにpythonは無い
rubyは何故かある
perlは無かったことが無いけど、今のとこにpythonは無い
rubyは何故かある
866デフォルトの名無しさん
2019/01/09(水) 22:57:14.81ID:bKnxXw4g perl はすでにGit for Windowsの一部だし。
867デフォルトの名無しさん
2019/01/13(日) 23:01:19.72ID:V4Yo7Lhe スレタイのモダンってなに?
868デフォルトの名無しさん
2019/01/13(日) 23:21:10.89ID:WrQFCZ8r >>859
当時の流行。
当時の流行。
869デフォルトの名無しさん
2019/01/13(日) 23:21:52.81ID:WrQFCZ8r ↑アンカミスorz
870デフォルトの名無しさん
2019/01/14(月) 07:44:40.25ID:E5iBbbFr 近代のことで、日本史的には明治維新から終戦まで
871デフォルトの名無しさん
2019/01/15(火) 08:57:17.72ID:G1ZK+rbt この↓本スレが去年の2月に終わったけれど、誰も新スレを立てられなかったみたいなんだよ。
Perlについての質問箱 63箱目
https://mevius.5ch.net/test/read.cgi/tech/1392820583/
そこで、「モダン推奨」な人が立てたこの隔離スレが本スレの代わりになっている。
本当に誰か「モダン推奨」が無い新スレ立てられない?
Perlについての質問箱 63箱目
https://mevius.5ch.net/test/read.cgi/tech/1392820583/
そこで、「モダン推奨」な人が立てたこの隔離スレが本スレの代わりになっている。
本当に誰か「モダン推奨」が無い新スレ立てられない?
872デフォルトの名無しさん
2019/01/15(火) 10:20:42.87ID:weoqLEpo 今となってはPerl自体レガシーだし、
そのモダンの人とやらもいないんじゃね?
確かに一時期「これからはモダンが〜」みたいなのあったなぁ
そのモダンの人とやらもいないんじゃね?
確かに一時期「これからはモダンが〜」みたいなのあったなぁ
873デフォルトの名無しさん
2019/01/23(水) 20:18:11.02ID:VQOsz2i7 喪男推奨
874デフォルトの名無しさん
2019/02/01(金) 22:10:39.60ID:1/Kr4Qjk Perlについての質問箱 64箱目
https://mevius.5ch.net/test/read.cgi/tech/1548981877/
https://mevius.5ch.net/test/read.cgi/tech/1548981877/
875デフォルトの名無しさん
2019/06/19(水) 04:59:38.60ID:tVNS+22r 【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
876デフォルトの名無しさん
2019/11/02(土) 13:46:26.21ID:smHgTNTv package文で宣言するパッケージ名の階層と、
当該パッケージの置き場所のディレクトリの階層って
一致させねばいけないもの?それとも不一致でも無問題?
当該パッケージの置き場所のディレクトリの階層って
一致させねばいけないもの?それとも不一致でも無問題?
877デフォルトの名無しさん
2019/11/02(土) 14:00:04.49ID:smHgTNTv 標準モジュールのソースコードを見ると、ディレクトリの階層とパッケージの宣言が一致している
(例えばTest::More.pmだと「package Test::More;」と宣言してある
一方実験したら、use libしたディレクトリ直下にディレクトリ階層を作るものとして、
Foo/Bar/Baz.pm
の冒頭において
package X::Baz.pm
と宣言したら、次のようにしてX::修飾つきでパッケージを呼び出せた:
use Foo::Bar::Baz;
my $obj = X::Baz->new(); // OK
どういうこっちゃ…
(例えばTest::More.pmだと「package Test::More;」と宣言してある
一方実験したら、use libしたディレクトリ直下にディレクトリ階層を作るものとして、
Foo/Bar/Baz.pm
の冒頭において
package X::Baz.pm
と宣言したら、次のようにしてX::修飾つきでパッケージを呼び出せた:
use Foo::Bar::Baz;
my $obj = X::Baz->new(); // OK
どういうこっちゃ…
878デフォルトの名無しさん
2019/11/02(土) 16:01:49.62ID:i/sKHoLN 慣習として一致させるものだけど、不一致にするような正当な理由があればそうしてもいい
879デフォルトの名無しさん
2019/11/02(土) 17:25:05.95ID:gW/EBDV5 Perlの文脈としてわかりにくくなるだけで
なんのメリットも無い気がする
なんのメリットも無い気がする
880デフォルトの名無しさん
2019/11/23(土) 11:23:39.89ID:r11kVh6u 複数行からなるJSONファイルの読み込みって普通どうやるの?
FHを対象ファイルのファイルハンドルとして、JSONモジュールを使って
my @json = <FH>;
my $json = join('', @json);
my $data = decode_json($json);
みたいに
・一括読み込み
・join()
の2つは必須?
これだと機械生成されたJSONファイルがたまたま数ギガバイトあったりしたらどうするんじゃ…
というわけでエラーケースも考えたら1行づつ読み込みたいのですが、
FHを対象ファイルのファイルハンドルとして、JSONモジュールを使って
my @json = <FH>;
my $json = join('', @json);
my $data = decode_json($json);
みたいに
・一括読み込み
・join()
の2つは必須?
これだと機械生成されたJSONファイルがたまたま数ギガバイトあったりしたらどうするんじゃ…
というわけでエラーケースも考えたら1行づつ読み込みたいのですが、
881デフォルトの名無しさん
2019/11/23(土) 11:26:07.48ID:r11kVh6u 自己解決しますたスマン、
ドキュメントを読んだら
INCREMENTAL PARSING
というのセクションがあったわ;
ドキュメントを読んだら
INCREMENTAL PARSING
というのセクションがあったわ;
882デフォルトの名無しさん
2019/12/10(火) 20:50:10.71ID:1a1TW34R pushする時に重複してたらpushしない拡張pushを作りたいとする
配列のリファレンスと値を渡す
普通に作って動くんだけど、渡したリファレンスがundefだった時は動かない
pushならundefでも動くのに
これを何とかundefも受け付けるようにできないもんか
普通に考えるとできないんだけど
配列のリファレンスと値を渡す
普通に作って動くんだけど、渡したリファレンスがundefだった時は動かない
pushならundefでも動くのに
これを何とかundefも受け付けるようにできないもんか
普通に考えるとできないんだけど
883デフォルトの名無しさん
2019/12/11(水) 10:26:34.70ID:dG8VWZ74 >>882
undefの時にどのように動いて欲しいのか?
undefの時にどのように動いて欲しいのか?
884デフォルトの名無しさん
2019/12/11(水) 20:22:08.85ID:xy3VmN4D 自作関数の中でリファレンスに[]宣言すればいいだけじゃねーの
# 俺と同じ発想なら、だけど。
sub pushn {
$_[0] = [] if ! defined $_[0] ;
my $arr = shift ;
my %h = map { $_, 1 } @{$arr} ;
push @{$arr}, grep { ! $h{$_} ++ } @_ ;
}
my $arr ;
pushn $arr, '1' ;
# $arr = [ 1 ] ;
pushn $arr, '2', '1', '9' ;
# $arr = [ 1, 2, 9 ] ;
# 俺と同じ発想なら、だけど。
sub pushn {
$_[0] = [] if ! defined $_[0] ;
my $arr = shift ;
my %h = map { $_, 1 } @{$arr} ;
push @{$arr}, grep { ! $h{$_} ++ } @_ ;
}
my $arr ;
pushn $arr, '1' ;
# $arr = [ 1 ] ;
pushn $arr, '2', '1', '9' ;
# $arr = [ 1, 2, 9 ] ;
885デフォルトの名無しさん
2019/12/11(水) 20:35:25.81ID:xy3VmN4D ×リファレンスに[]宣言
○元の変数にリファレンス宣言
○元の変数にリファレンス宣言
886デフォルトの名無しさん
2019/12/12(木) 18:58:31.26ID:3Xh4/du7 $_ がエイリアスだからできるのか
普通は危ないから左辺値にしないよな
普通は危ないから左辺値にしないよな
887デフォルトの名無しさん
2019/12/12(木) 21:46:01.56ID:8fLoSBsV my @tmp = map { hogehoge } ( (ref $_[0]) ? @$_[0] : () );
こんなんで動かないかね?
こんなんで動かないかね?
888デフォルトの名無しさん
2019/12/12(木) 21:56:12.99ID:3Xh4/du7 読みにくく書いても得しないからなあ
$_ を使わずに実現する方法があればそうしたい
$_ を使わずに実現する方法があればそうしたい
889デフォルトの名無しさん
2019/12/12(木) 22:06:26.14ID:V4YdibXT >普通は危ないから左辺値にしないよな
理解してりゃ、危なくもなんともないと思うが、、、
理解してりゃ、危なくもなんともないと思うが、、、
890デフォルトの名無しさん
2019/12/12(木) 22:25:24.61ID:V4YdibXT >>888
だったらコンセプト変えて普通にプロトタイプ使え
sub pushm (¥@@){
my $arr = shift ;
my %h ;
push @{$arr}, grep { ! $h{$_} ++ } @{$arr} , @_ ;
}
my $arr ;
pushm @{$arr}, 1, 2, 3, 4 ;
コードの変更は殆どいらなくて、且つ自作変数の外側で、
(暗黙の)初期化をせざるを得ないから、$_[0] への初期化は
しなくてすむ。
だったらコンセプト変えて普通にプロトタイプ使え
sub pushm (¥@@){
my $arr = shift ;
my %h ;
push @{$arr}, grep { ! $h{$_} ++ } @{$arr} , @_ ;
}
my $arr ;
pushm @{$arr}, 1, 2, 3, 4 ;
コードの変更は殆どいらなくて、且つ自作変数の外側で、
(暗黙の)初期化をせざるを得ないから、$_[0] への初期化は
しなくてすむ。
891デフォルトの名無しさん
2019/12/12(木) 22:28:33.66ID:V4YdibXT ああ、コード間違えてるけど、>>884のコード流用してくれ
892デフォルトの名無しさん
2019/12/13(金) 00:04:09.33ID:Oz2tw7ml $_と@_の区別すら付いてない奴に教える必要なんかねえよ
893デフォルトの名無しさん
2019/12/13(金) 18:59:29.78ID:xux/XkmF こういう時にプロトタイプが役立つのか
sub func(\@@);
とプロトタイプが書いてあって、perlは使えるけどプロトタイプ知らない人に、
この関数呼び出してみろって言ったら、10人が10人
func(\@array1, @array2);
って書くと思うな
sub func(\@@);
とプロトタイプが書いてあって、perlは使えるけどプロトタイプ知らない人に、
この関数呼び出してみろって言ったら、10人が10人
func(\@array1, @array2);
って書くと思うな
894デフォルトの名無しさん
2019/12/13(金) 23:43:34.11ID:tge0kpAy それでもちゃんと呼び出せるからべつにいいやん。
895デフォルトの名無しさん
2019/12/13(金) 23:53:07.48ID:Roals1MV (\@∀@)
896デフォルトの名無しさん
2019/12/14(土) 00:01:01.77ID:C/H6m2n1 配列をコンマで区切って並べると、多次元配列にならずに配列が繋がるだけ
というシンプルな仕様が仇になってるんだよな
どうあがいても、引数に配列が現れると、その後の引数と合体してしまうので、
リファレンスで渡すしか無い
だからって、push(\@array, $var) みたい使い方を強いるのは不格好過ぎる
ということで、呼び出し側では実引数を渡しているように見えて、
裏ではリファレンスで受け取るというねじれが生じていて、
プロトタイプでそのねじれを吸収している
というシンプルな仕様が仇になってるんだよな
どうあがいても、引数に配列が現れると、その後の引数と合体してしまうので、
リファレンスで渡すしか無い
だからって、push(\@array, $var) みたい使い方を強いるのは不格好過ぎる
ということで、呼び出し側では実引数を渡しているように見えて、
裏ではリファレンスで受け取るというねじれが生じていて、
プロトタイプでそのねじれを吸収している
897デフォルトの名無しさん
2019/12/14(土) 08:31:07.01ID:tdigeeoh898デフォルトの名無しさん
2019/12/14(土) 08:37:29.90ID:tdigeeoh 通常は、プロトタイプ使ったサブルーチンはモジュールの中に隔離して
perldocだけ読ませて使わせるから、>>893の問題は生じないんだけどなw
個人のコードでどう扱うかは知らん。
代表的なプロトタイプのコードの例↓(List::MoreUtilsの古いバージョン)
https://fastapi.metacpan.org/source/ADAMK/List-MoreUtils-0.33/lib/List/MoreUtils.pm
perldocだけ読ませて使わせるから、>>893の問題は生じないんだけどなw
個人のコードでどう扱うかは知らん。
代表的なプロトタイプのコードの例↓(List::MoreUtilsの古いバージョン)
https://fastapi.metacpan.org/source/ADAMK/List-MoreUtils-0.33/lib/List/MoreUtils.pm
899デフォルトの名無しさん
2019/12/14(土) 09:03:25.68ID:C/H6m2n1 >>897
それエラーになるだけ
それエラーになるだけ
900デフォルトの名無しさん
2019/12/14(土) 09:22:43.70ID:tdigeeoh901デフォルトの名無しさん
2019/12/14(土) 10:07:00.59ID:tdigeeoh 暇だったから、plenv に 5.30.1 突っ込んで確認したが、エラーにならん
もちろんuse strict; use warnings; 効かせて
# ストロベリーとかの環境は知らん
sub pusht (¥@@){ my $c = shift ; push @{$c}, @_ ; }
my @arr ;
my $arr ;
pusht @arr, 1, 2, 3, 4 ;
&pusht( $arr, 1, 2, 3, 4 ) ;
# @arr => ( 1, 2, 3, 4 )
# $arr => undef
もちろんuse strict; use warnings; 効かせて
# ストロベリーとかの環境は知らん
sub pusht (¥@@){ my $c = shift ; push @{$c}, @_ ; }
my @arr ;
my $arr ;
pusht @arr, 1, 2, 3, 4 ;
&pusht( $arr, 1, 2, 3, 4 ) ;
# @arr => ( 1, 2, 3, 4 )
# $arr => undef
902デフォルトの名無しさん
2019/12/14(土) 11:03:07.43ID:6h9Np3wz ふつうに関数を呼び出すのにわざわざ&をつけるようなヤツは、10人に1人もいねえよ。w
903デフォルトの名無しさん
2019/12/14(土) 11:20:47.16ID:FPT3g5nH いないとどれだけ楽か(泣)
「KENT-webに書いてありましたよ」
「」
「KENT-webに書いてありましたよ」
「」
904デフォルトの名無しさん
2019/12/14(土) 11:36:46.61ID:tdigeeoh905デフォルトの名無しさん
2019/12/15(日) 00:13:17.48ID:uHh4aFtn &つけるのって少数派なのか
俺絶対つけてるけど
ある現場で「え、今そんなのつけませんよ…」ってちょっと引いてすらいる感じで言われたことある
まあもうその現場もrailsになったはずだけど
俺絶対つけてるけど
ある現場で「え、今そんなのつけませんよ…」ってちょっと引いてすらいる感じで言われたことある
まあもうその現場もrailsになったはずだけど
906デフォルトの名無しさん
2019/12/15(日) 00:30:38.21ID:gPijPjuC C言語でもautoって書いてそうだ
907デフォルトの名無しさん
2019/12/15(日) 01:55:45.57ID:EMEs5NEs908デフォルトの名無しさん
2019/12/15(日) 02:19:39.95ID:uHh4aFtn これは関数であるって目印としてつけてる
俺の中では可読性の為
つけないのはData::Dumper()とかモジュールから直で呼ぶ場合だけかな
俺の中では可読性の為
つけないのはData::Dumper()とかモジュールから直で呼ぶ場合だけかな
909デフォルトの名無しさん
2019/12/15(日) 07:37:43.49ID:R35TvKP/ 呼出で挙動がかわるの、充分に分ってるなら「個人で使うなら」いいんじゃねーの?
910デフォルトの名無しさん
2019/12/15(日) 07:43:22.45ID:R35TvKP/ プロトタイプの呼出以外にも
@_ = (1,2,3,4) ; &func ;
で特殊挙動するし、地雷だらけだよXXルーチン
なんでXXがNGワードになってんの?
北島三郎のことXXちゃんって書き込めないの?
俺の環境だけ?
>>907
「perl, XXルーチン」でググると検索上位に来るんだよ、今でも
@_ = (1,2,3,4) ; &func ;
で特殊挙動するし、地雷だらけだよXXルーチン
なんでXXがNGワードになってんの?
北島三郎のことXXちゃんって書き込めないの?
俺の環境だけ?
>>907
「perl, XXルーチン」でググると検索上位に来るんだよ、今でも
911デフォルトの名無しさん
2019/12/15(日) 07:46:10.55ID:gPijPjuC サブルーチン
912デフォルトの名無しさん
2019/12/15(日) 07:47:19.44ID:KI19HfKk teratailのサブルーチン絡みの質問斜め見て、頭痛くなったわ。
質問者はしょうがないとしても、回答で&付けるってどういう了見だ?
質問者はしょうがないとしても、回答で&付けるってどういう了見だ?
913デフォルトの名無しさん
2019/12/15(日) 07:48:41.86ID:R35TvKP/ 俺の環境だけかよorz…
914デフォルトの名無しさん
2019/12/15(日) 08:32:32.51ID:KI19HfKk >>904
お作法本全盛期(2010年代前半)なら、相手はお作法本を読んでる可能性がある。
引いてる程度じゃなくて、どん引きされたのかもよ
# お作法本: Perl ベストプラクティス、Effective Perl etc.
KENT-webもだけど、お作法本インスパイヤで、オレオレお作法のページが
山程あるのも滅んで欲しいわ。
お作法本全盛期(2010年代前半)なら、相手はお作法本を読んでる可能性がある。
引いてる程度じゃなくて、どん引きされたのかもよ
# お作法本: Perl ベストプラクティス、Effective Perl etc.
KENT-webもだけど、お作法本インスパイヤで、オレオレお作法のページが
山程あるのも滅んで欲しいわ。
915デフォルトの名無しさん
2019/12/15(日) 08:34:58.76ID:KI19HfKk916デフォルトの名無しさん
2019/12/15(日) 08:46:16.32ID:gPijPjuC 作法は一つではない
917デフォルトの名無しさん
2019/12/15(日) 08:51:11.22ID:KI19HfKk 一つじゃないのは当たり前
けど、オレオレお作法のページはいらない
けど、オレオレお作法のページはいらない
918デフォルトの名無しさん
2019/12/20(金) 00:38:27.17ID:nzfj8t5I919デフォルトの名無しさん
2019/12/20(金) 00:57:05.41ID:cphYS5E7 YAPC が YARC になって ヤラしい
920デフォルトの名無しさん
2019/12/20(金) 06:50:52.69ID:GiJ3WKor keysがスカラを引数に取れるせいで、なんか間違った書き方してる所があちこちある
どっちでも大抵は動くけど、エラーで止まりやすい
明示的にデリファレンスしてればエラーにはならない
どっちでも大抵は動くけど、エラーで止まりやすい
明示的にデリファレンスしてればエラーにはならない
921デフォルトの名無しさん
2019/12/20(金) 07:10:52.86ID:8NcASRwh それ、実験的に5.14から搭載されて、5.24で削除された機能
エラーで止るのは環境依存か、書き手がヘボか
そもそも使うんじゃねー、ってのが主旨なら、同意
エラーで止るのは環境依存か、書き手がヘボか
そもそも使うんじゃねー、ってのが主旨なら、同意
922デフォルトの名無しさん
2020/02/14(金) 23:14:26.30ID:x2wQj3nb 配列があって、条件に合わないものを削りたい
0 .. $#array に対してループしながらspliceすると、
$i-- でも redo でもなんか不安がある
どうするのが定番なんだろう
0 .. $#array に対してループしながらspliceすると、
$i-- でも redo でもなんか不安がある
どうするのが定番なんだろう
923デフォルトの名無しさん
2020/02/15(土) 13:11:27.84ID:Slu9Ub4W grep { $_ > 0 } @array
924デフォルトの名無しさん
2020/02/15(土) 18:06:37.80ID:jU+J++ht @array = grep { $_ > 0 } @array
とやって平気な気がしない
別の配列を用意していいなら既に出来ていて、
それを何とかすっきりできないかと
とやって平気な気がしない
別の配列を用意していいなら既に出来ていて、
それを何とかすっきりできないかと
925デフォルトの名無しさん
2020/02/15(土) 19:06:58.27ID:Slu9Ub4W (平気な気がしないとか言われても知らんがな)
まず「すっきりできる」を定義してください
まず「すっきりできる」を定義してください
926デフォルトの名無しさん
2020/02/15(土) 19:20:44.91ID:jU+J++ht ああー
逃げに入っちゃった
逃げに入っちゃった
927デフォルトの名無しさん
2020/02/15(土) 23:03:36.63ID:pIpzwBTs spliceするのはよくない気がする→何が定番なんだろうって話だと
grepが定番でしょ
別に結果配列用意するのでもいいんじゃないの
grepが定番でしょ
別に結果配列用意するのでもいいんじゃないの
928デフォルトの名無しさん
2020/02/15(土) 23:40:20.22ID:KTVOtCHP spliceの、僕が考えた最強関数的な仕様はイヤかも。
もっと構文レベルで同じことができると良かった。
もっと構文レベルで同じことができると良かった。
929デフォルトの名無しさん
2020/05/09(土) 14:56:48.37ID:KF1jgHuK WindowsでPerlを使いたいんですが、どれが良いですか。
ActivePerlはアンインストールしてもゴミが残るそうなので避けたいのですが。
ActivePerlはアンインストールしてもゴミが残るそうなので避けたいのですが。
930デフォルトの名無しさん
2020/05/09(土) 18:21:47.00ID:HzJsK433 ストロベリーパニック
931デフォルトの名無しさん
2020/05/09(土) 18:51:24.57ID:/Z4Vk9Yy Windows10, WSL, Ubuntu 18.04 なら、最初から入っているけど
file `which perl`
/usr/bin/perl: ELF 64-bit LSB shared object 以下省略
file `which perl`
/usr/bin/perl: ELF 64-bit LSB shared object 以下省略
932デフォルトの名無しさん
2020/05/27(水) 01:20:04.31ID:VqjzWrQC Perlを勉強しています。
「use constant」で定義したハッシュのキーを
keys関数で取り出したいのですが出来ません。
どのような方法で取り出せますか?
use constant H => { a=>'AAA', b=>'BBB' };
foreach ( keys H ) #エラー。「keys %H」とするとエラーにならないが何も得られない。
{
print $_, "\n";
}
宜しくお願いします。
「use constant」で定義したハッシュのキーを
keys関数で取り出したいのですが出来ません。
どのような方法で取り出せますか?
use constant H => { a=>'AAA', b=>'BBB' };
foreach ( keys H ) #エラー。「keys %H」とするとエラーにならないが何も得られない。
{
print $_, "\n";
}
宜しくお願いします。
933デフォルトの名無しさん
2020/05/27(水) 01:33:03.79ID:h9Mc4KsU use constant H => { a=>'AAA', b=>'BBB' };
foreach (keys %{H()}) {
print $_, "\n";
}
foreach (keys %{H()}) {
print $_, "\n";
}
934デフォルトの名無しさん
2020/05/27(水) 02:12:19.49ID:VqjzWrQC936デフォルトの名無しさん
2020/05/27(水) 05:13:22.61ID:ISGE1WR5 Perl は難しすぎる。
Ruby では、
hash = { a: 1, b: 2 }
hash.each_key { |key| p key }
出力。:a などはシンボル
:a
:b
Ruby では、
hash = { a: 1, b: 2 }
hash.each_key { |key| p key }
出力。:a などはシンボル
:a
:b
937デフォルトの名無しさん
2020/05/27(水) 06:47:35.32ID:VqjzWrQC938615
2020/05/27(水) 08:50:36.01ID:Bt/CFCtA constantの実体は値を返すsubなので、%{}でデリファレンスしてね
939デフォルトの名無しさん
2020/09/28(月) 17:41:16.96ID:7jydyBLu (?:)
をいつも忘れるんだが、何かいい覚え方は無いだろうか
をいつも忘れるんだが、何かいい覚え方は無いだろうか
940デフォルトの名無しさん
2020/09/28(月) 19:13:20.83ID:SgTMPvZg941デフォルトの名無しさん
2020/10/04(日) 23:18:25.80ID:4IGvE5yV >>939
いいじゃんべつに。気にせず普通の括弧にして捨てろ。
いいじゃんべつに。気にせず普通の括弧にして捨てろ。
942デフォルトの名無しさん
2020/10/05(月) 07:42:46.02ID:c4eZ6okl ずれるやん
943デフォルトの名無しさん
2020/10/07(水) 12:09:24.93ID:70BaWviw944デフォルトの名無しさん
2020/10/07(水) 13:37:28.91ID:TO7pfOqH945デフォルトの名無しさん
2020/10/07(水) 15:33:40.38ID:GbKtGfRD あと、マッチングのオプションのsとmも毎回検索してる
最初に思うのは大抵逆
最初に思うのは大抵逆
946デフォルトの名無しさん
2020/10/08(木) 09:33:52.95ID:e3wo1zjN (?シリーズをいろいろ使ってれば、あとは:だけだけど、
そもそも(?:しか使わないんだよな
いろいろ便利そうな拡張ではあるけどこれ以上可読性下げてどうする
そもそも(?:しか使わないんだよな
いろいろ便利そうな拡張ではあるけどこれ以上可読性下げてどうする
947デフォルトの名無しさん
2020/10/09(金) 14:54:01.89ID:JXQ8Trls TABをデリミタにしてデータが1行に並んでいる
但し、""で囲まれていれば内部にTABを使ってもよい
というルールのデータに対して、""に囲まれているTABをスペースで置換したい
どう書けばいい?
但し、""で囲まれていれば内部にTABを使ってもよい
というルールのデータに対して、""に囲まれているTABをスペースで置換したい
どう書けばいい?
948デフォルトの名無しさん
2020/10/11(日) 19:55:14.93ID:LEwrAD/J 多分、これでいけると思う。
while(s{(".*?)\t(.*?")}{$1 $2}){}
while(s{(".*?)\t(.*?")}{$1 $2}){}
949デフォルトの名無しさん
2020/10/11(日) 21:05:02.09ID:OOWRCRR6 どうやって使うかすら判らん
950デフォルトの名無しさん
2020/10/11(日) 22:14:06.89ID:LEwrAD/J while(<>){
while(s{(".*?)\t(.*?")}{$1 $2}){}
print;
}
これで解らないなら、「Perlの入門書をよく読みましょう」
としか言えないのだが。
while(s{(".*?)\t(.*?")}{$1 $2}){}
print;
}
これで解らないなら、「Perlの入門書をよく読みましょう」
としか言えないのだが。
951デフォルトの名無しさん
2020/10/11(日) 22:42:11.43ID:OOWRCRR6 せめて入力が$strとかになってないと
952デフォルトの名無しさん
2020/10/11(日) 23:29:39.25ID:LEwrAD/J while($str =~ s{(".*?)\t(.*?")}{$1 $2}){}
しかし、Perlを使うなら、文中で省略されている$_ のことは
知っておかないといけない。
しかし、Perlを使うなら、文中で省略されている$_ のことは
知っておかないといけない。
953デフォルトの名無しさん
2020/10/11(日) 23:56:48.98ID:LtBR6JI3 タブ文字が複数あったら?とかダブルクォートが含まれてたら?とか、不安もいろいろ。
いわゆるExcelCSVなら、置換一発とはイカンやろな。
CSVモジュールでも探すか、マジメに自作するかして、セルごとに置換しないと個人的には落ち着かないな。
いわゆるExcelCSVなら、置換一発とはイカンやろな。
CSVモジュールでも探すか、マジメに自作するかして、セルごとに置換しないと個人的には落ち着かないな。
954デフォルトの名無しさん
2021/03/25(木) 23:19:00.52ID:BFmdRR/m $_ などの特殊変数に依存したコードを書くと移植性と可読性が著しく低下する。
正規表現にまつわる特殊変数も厄介。別の正規表現が呼ばれて上書きされてしまうからすぐにコピーしないといけない。
正規表現にまつわる特殊変数も厄介。別の正規表現が呼ばれて上書きされてしまうからすぐにコピーしないといけない。
955デフォルトの名無しさん
2021/04/28(水) 14:52:38.35ID:RETJLOh2 ビットシフト演算の挙動の違いが表面化した
32bitと64bitのビルドの違いにより、1 << 32の結果が変わる
32bitのperlが2^32以上の整数を扱えない訳ではないので、
ビットシフト演算子を使わずにビットシフト演算子と同じことをやらないといけない
何か抜け道は無いもんか
32bitと64bitのビルドの違いにより、1 << 32の結果が変わる
32bitのperlが2^32以上の整数を扱えない訳ではないので、
ビットシフト演算子を使わずにビットシフト演算子と同じことをやらないといけない
何か抜け道は無いもんか
956デフォルトの名無しさん
2021/04/30(金) 18:29:08.85ID:m/tHuDzV957デフォルトの名無しさん
2021/04/30(金) 19:23:07.21ID:vAph35tm もっそい遅いんだっけ
958デフォルトの名無しさん
2021/04/30(金) 19:31:00.11ID:m/tHuDzV use bigint だと透過的にできることがわかった。
こんなのできたし。
$ perl -e 'use bigint; my $x = 1; $x <<= 256; print "$x\n"; if ($x & (1 << 256)){print "OK\n";}'
115792089237316195423570985008687907853269984665640564039457584007913129639936
OK
$
日本語訳された bigint のマニュアル
https://perldoc.jp/docs/modules/bignum-0.23/bigint.pod
こんなのできたし。
$ perl -e 'use bigint; my $x = 1; $x <<= 256; print "$x\n"; if ($x & (1 << 256)){print "OK\n";}'
115792089237316195423570985008687907853269984665640564039457584007913129639936
OK
$
日本語訳された bigint のマニュアル
https://perldoc.jp/docs/modules/bignum-0.23/bigint.pod
959デフォルトの名無しさん
2021/04/30(金) 19:43:01.50ID:vAph35tm 何をしたいかというと、8byte単位の送信データがあって、
実際にはそれを64bitと見ていて、あるレコードは何bit目から何bit長、みたいに詰め込まれている
byte間とか平気でまたぐ
そういう64bitにデータをセットしたり取り出したり、という操作をしようと思うと、
1変数が64bitになっている方が楽に書ける
でも32bitの処理系だとできない
実際にはそれを64bitと見ていて、あるレコードは何bit目から何bit長、みたいに詰め込まれている
byte間とか平気でまたぐ
そういう64bitにデータをセットしたり取り出したり、という操作をしようと思うと、
1変数が64bitになっている方が楽に書ける
でも32bitの処理系だとできない
960デフォルトの名無しさん
2021/05/01(土) 05:00:07.50ID:R5WysE71 ネットワークの通信データの取り出しなら unpack でフォーマットを N2 で配列または変数2個に取り出してからやれば楽なのでは?
961デフォルトの名無しさん
2021/05/01(土) 09:00:30.12ID:/n1q7kUC やれるとすっきりするけど、バイトオーダーやエンディアンがころころ変わるから、
何か落とし穴がありそう
何か落とし穴がありそう
962デフォルトの名無しさん
2021/05/01(土) 09:21:38.72ID:ZNKsJp5F Perl の仕様が邪魔してるということなら Inline::C とかが役に立つかも。
963デフォルトの名無しさん
2021/05/01(土) 16:05:36.08ID:R5WysE71 pack, unpack は互換性重視していると思うが? 少なくともフォーマットの N 等は同じ4バイトだよ。
その辺どうしても信用できないなら自分専用の pack, unpack を作れば良いんじゃないかな。
そうすると pack, unpack と同じ形式である必要もないわけだが。
その辺どうしても信用できないなら自分専用の pack, unpack を作れば良いんじゃないかな。
そうすると pack, unpack と同じ形式である必要もないわけだが。
964デフォルトの名無しさん
2021/05/01(土) 18:01:49.35ID:/n1q7kUC そんなようなことをしてるのが現状の実装
965デフォルトの名無しさん
2021/05/02(日) 17:15:11.59ID:9gapCdI8 そういえば Perl のネイティブな整数のサイズって C のどれなのかな。
perlnumber には「perl をビルドする際に使われた C コンパイラが対応している形式」と
書かれてるけど。
ちなみに今使ってる環境では int ではなく long , long long と同じ 8 バイトのようだ。
perlnumber には「perl をビルドする際に使われた C コンパイラが対応している形式」と
書かれてるけど。
ちなみに今使ってる環境では int ではなく long , long long と同じ 8 バイトのようだ。
966デフォルトの名無しさん
2021/05/03(月) 17:40:45.60ID:UFgXt23Q Perl5のビルドはやった事ないので知らないが、多分デフォルトがCのintと同じで指定すれば変えられるって感じなのではないかな。
perl -V で実行するとそういう設定値が沢山出てくるよね。その中に intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
のようなものが出てくる。
そういや前に整数のバイト数でハマったことあったな。 fcntl() の F_SETLKW の時に渡す flock 構造体のバイナリで
pack('s2l3', F_WRLCK, SEEK_SET, 0, 0, 0) ってやっててうまく行ってたプログラムが別の環境に持って行って動かしたら
ロックが掛かったり掛からなかったりするようになり、良く調べてみたら pack の l は64bit環境でも 32bit 固定だが
struct flock の方は l_start, l_len が32bit OS では 4 バイト、64bit 環境では 8 バイトになっていた。
そもそも pack してバイナリにしなければいけないような引数の渡し方がいけないだけだとは思うが、結局どちらの
環境でも動くプログラムにするために pack('s2l5', F_WRLCK, SEEK_SET, 0, 0, 0, 0, 0) で誤魔化した。
やっぱこういうのは本来ならモジュール作ってそこで吸収した方が良いんだろうな。
と思ったらあった。
https://metacpan.org/pod/File::FcntlLock
是非デフォルトでこういうモジュールも perl と一緒にインストールされて欲しいものだな。
perl -V で実行するとそういう設定値が沢山出てくるよね。その中に intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
のようなものが出てくる。
そういや前に整数のバイト数でハマったことあったな。 fcntl() の F_SETLKW の時に渡す flock 構造体のバイナリで
pack('s2l3', F_WRLCK, SEEK_SET, 0, 0, 0) ってやっててうまく行ってたプログラムが別の環境に持って行って動かしたら
ロックが掛かったり掛からなかったりするようになり、良く調べてみたら pack の l は64bit環境でも 32bit 固定だが
struct flock の方は l_start, l_len が32bit OS では 4 バイト、64bit 環境では 8 バイトになっていた。
そもそも pack してバイナリにしなければいけないような引数の渡し方がいけないだけだとは思うが、結局どちらの
環境でも動くプログラムにするために pack('s2l5', F_WRLCK, SEEK_SET, 0, 0, 0, 0, 0) で誤魔化した。
やっぱこういうのは本来ならモジュール作ってそこで吸収した方が良いんだろうな。
と思ったらあった。
https://metacpan.org/pod/File::FcntlLock
是非デフォルトでこういうモジュールも perl と一緒にインストールされて欲しいものだな。
967デフォルトの名無しさん
2021/05/04(火) 07:28:36.10ID:2rafzDNd ありがとう。たまたま Perl のソースコードをダウンロードしてあるから
INSTALL を読んでみたら (いや、先に読んどけという話だが)
C コンパイラがサポートしてなくても use64bitint というオプションを使えば
整数のサイズが 64 ビットになるらしい。
Debian のパッケージでもこれを使ってるようだ。
C コンパイラの仕様は Config モジュールで得られるから
それを使って環境に合わせた処理が可能になる場合もあるが
Linux の flock 構造体はメンバの順番すら保証されてないようだから無理そう。
INSTALL を読んでみたら (いや、先に読んどけという話だが)
C コンパイラがサポートしてなくても use64bitint というオプションを使えば
整数のサイズが 64 ビットになるらしい。
Debian のパッケージでもこれを使ってるようだ。
C コンパイラの仕様は Config モジュールで得られるから
それを使って環境に合わせた処理が可能になる場合もあるが
Linux の flock 構造体はメンバの順番すら保証されてないようだから無理そう。
968デフォルトの名無しさん
2021/05/04(火) 11:47:57.60ID:2rafzDNd 間違えた。「C コンパイラが」じゃなくて「CPU が」だ。
Configure を見た限りでは、8 バイト整数の型として採用する優先順位は
int, long, long long, int64_t の順で
8 バイトの型が無ければ Configure が失敗するようだ。
あっても CPU が対応してなくてライブラリで実現してるような環境だと
速度のためにあえて使わないという選択もあるかと思うが
long が 8 バイトだと強制的に使わされるようだ。
試せる環境が無いから勘違いしてるかもしれないが。
Configure を見た限りでは、8 バイト整数の型として採用する優先順位は
int, long, long long, int64_t の順で
8 バイトの型が無ければ Configure が失敗するようだ。
あっても CPU が対応してなくてライブラリで実現してるような環境だと
速度のためにあえて使わないという選択もあるかと思うが
long が 8 バイトだと強制的に使わされるようだ。
試せる環境が無いから勘違いしてるかもしれないが。
969デフォルトの名無しさん
2021/05/04(火) 16:45:05.36ID:xGoTe+aq さいですか
970デフォルトの名無しさん
2021/05/04(火) 16:56:22.60ID:1LbVAR3E きりんです
971デフォルトの名無しさん
2021/05/04(火) 16:58:56.75ID:siU8Ev75 なんできりんなんだよ
そこはラクダだろ
そこはラクダだろ
972デフォルトの名無しさん
2021/05/04(火) 17:08:17.38ID:FheU4VJA でも象さんのほうがもっと好きです
973デフォルトの名無しさん
2021/05/05(水) 15:08:24.73ID:CxAIF4J7 テーブルがあってインデックスで取り扱いたい
でもテーブルを作る時にカウンタとか意識したくない
配列なら
push @table, $data;
で済むけど、ハッシュにしたい
$table[$i]->data1 = $data1;
あるいは
$table->[$i]->data1 = $data1;
そんなことできたっけ
でもテーブルを作る時にカウンタとか意識したくない
配列なら
push @table, $data;
で済むけど、ハッシュにしたい
$table[$i]->data1 = $data1;
あるいは
$table->[$i]->data1 = $data1;
そんなことできたっけ
974デフォルトの名無しさん
2021/05/05(水) 15:53:07.29ID:zZpLK+nt 日本語でおk
975デフォルトの名無しさん
2021/05/05(水) 16:00:54.87ID:CxAIF4J7 全部一度に判ってるなら、無名ハッシュをpushすればいいんだけど
ちょびちょび追加していきたい
ちょびちょび追加していきたい
976デフォルトの名無しさん
2021/05/06(木) 21:44:26.70ID:ajjDZVcw 君が何をしたいのかよくわからない。
977デフォルトの名無しさん
2021/05/06(木) 21:49:53.54ID:WUloT9c9 ->data1は->{data1}の間違い
978デフォルトの名無しさん
2021/05/16(日) 14:19:41.36ID:vhU8s59y pontiffがprintfに見える
979デフォルトの名無しさん
2021/05/24(月) 07:52:58.62ID:GjHEXSDD 親の方は無限ループにしておいて、適宜forkしてメインの処理をさせる
終わったら子はexitする
という作りで基本的にうまくいってるのに、たまに親が子だと思ってexitしとる
$pid = fork;
if (!$pid) {
exec($command);
exit;
}
この書き方に何か問題が?
終わったら子はexitする
という作りで基本的にうまくいってるのに、たまに親が子だと思ってexitしとる
$pid = fork;
if (!$pid) {
exec($command);
exit;
}
この書き方に何か問題が?
980デフォルトの名無しさん
2021/05/24(月) 08:16:28.74ID:INcwcLMt 親プロセスがwait $pid しないとゾンビが蓄積される。
それが続くと0ではなくundefを返すと思う。思うとしか言えないのはperldocに書かれてないから。
defined $pid でundefと0を区別する必要あり。
$!にResource temporarily unavailableのようなエラーが渡されるのでたぶんそう。
なのでちゃんと親プロセスがwait $pidすれば回避できる。
それが続くと0ではなくundefを返すと思う。思うとしか言えないのはperldocに書かれてないから。
defined $pid でundefと0を区別する必要あり。
$!にResource temporarily unavailableのようなエラーが渡されるのでたぶんそう。
なのでちゃんと親プロセスがwait $pidすれば回避できる。
981デフォルトの名無しさん
2021/05/24(月) 08:19:17.40ID:INcwcLMt 訂正。
perldoc -f forkにfork失敗時にundefを返すことが書かれてたわ
perldoc -f forkにfork失敗時にundefを返すことが書かれてたわ
982デフォルトの名無しさん
2021/05/24(月) 08:22:50.85ID:GjHEXSDD やっぱり失敗してるんだよな
リトライするように直して試してみてるとこ
どういう理由で失敗するんだ?
activeperl
リトライするように直して試してみてるとこ
どういう理由で失敗するんだ?
activeperl
983デフォルトの名無しさん
2021/05/24(月) 13:11:06.83ID:SHUy6n38 windows版のforkもどきだからじゃないの?
984デフォルトの名無しさん
2021/05/24(月) 13:35:57.27ID:INcwcLMt macOSでも起きるよ
985デフォルトの名無しさん
2021/05/24(月) 13:56:03.81ID:GjHEXSDD 今たまたま何かのリソースが全部埋まってて、一瞬待ってくれたら準備できるよ
なんだったら、リトライは隠蔽してくれて良さそうなもんなのに
IO関係はみんなそうなってる
なんだったら、リトライは隠蔽してくれて良さそうなもんなのに
IO関係はみんなそうなってる
986デフォルトの名無しさん
2021/05/24(月) 16:23:07.38ID:mQhym/iw Perlはかなりの低レイヤーでも使われることがあるからな。
そんな冗長にはできんやろ。
そもそも、ぜんぜんwaitpid()しなかったらいずれ困るんだから、早くエラーになったほうがまし。
そんな冗長にはできんやろ。
そもそも、ぜんぜんwaitpid()しなかったらいずれ困るんだから、早くエラーになったほうがまし。
987デフォルトの名無しさん
2021/05/25(火) 22:10:30.48ID:z8jztsTP activeperlで
forkで返るpidがマイナスの値なんだけど、
Win32::Process::List で GetProcesses して得られるものとは別物なの?
forkで返るpidがマイナスの値なんだけど、
Win32::Process::List で GetProcesses して得られるものとは別物なの?
988デフォルトの名無しさん
2021/05/25(火) 22:38:53.48ID:/Axm+K1V989デフォルトの名無しさん
2021/05/25(火) 22:59:31.10ID:z8jztsTP 疑似プロセスIDは、OSのプロセスIDとは別物なのか
要は、forkで分岐したプロセスがまだ生きてるかどうか親から周期的に監視したいんだけど
waitすると親が止まってしまうのでどうしたもんか
要は、forkで分岐したプロセスがまだ生きてるかどうか親から周期的に監視したいんだけど
waitすると親が止まってしまうのでどうしたもんか
990デフォルトの名無しさん
2021/05/25(火) 23:54:54.75ID:/Axm+K1V 別スレッドでsystem()ではアカンのか?
991デフォルトの名無しさん
2021/05/26(水) 07:17:11.86ID:niBt7hlg スレッド使ったことない
992デフォルトの名無しさん
2021/05/26(水) 08:32:40.50ID:VVGa10VW perlのスレッドは標準IOやパイプの取り扱いが難しい、というか動きが怪しい
993デフォルトの名無しさん
2021/05/26(水) 09:53:00.68ID:+WmbAELr シェルスクリプトではkill -0 PIDでプロセスが生きてるか調べられる!
そういう用途にはシェルスクリプトを使うべき!
そういう用途にはシェルスクリプトを使うべき!
994デフォルトの名無しさん
2021/05/26(水) 09:53:29.06ID:+WmbAELr ユーチューバーのKENTとかも言ってる!
995デフォルトの名無しさん
2021/05/26(水) 10:20:29.11ID:niBt7hlg GetProcessesでpython.exeを見つければだいたい目的は達成するんだけど、
他に使ってる人がいると間違う
他に使ってる人がいると間違う
996デフォルトの名無しさん
2021/05/26(水) 10:37:03.92ID:VVGa10VW 実行バイナリやシェルコマンドをP言語スクリプトから呼び出すソリューションが最も汎用性が高い
古事記にもそう書いてある
古事記にもそう書いてある
997デフォルトの名無しさん
2021/05/26(水) 10:40:21.49ID:+WmbAELr そこもちゃんとユーチューバーのKANTのサロンで言ってる!って
語尾に付けないと
語尾に付けないと
998デフォルトの名無しさん
2021/05/26(水) 10:48:36.67ID:VVGa10VW このスレ、消費に9年以上かかってるとか盛者必衰の理をあらわしてて草
999デフォルトの名無しさん
2021/05/26(水) 11:00:06.47ID:+WmbAELr 9年か・・・。Perlもずいぶんと長生きだね。
次スレ
【古典的モダン】Perlについての質問箱 51箱目
https://mevius.5ch.net/test/read.cgi/tech/1621994129/
次スレ
【古典的モダン】Perlについての質問箱 51箱目
https://mevius.5ch.net/test/read.cgi/tech/1621994129/
1000デフォルトの名無しさん
2021/05/26(水) 11:35:56.72ID:a7TiWa6C 質問してもええか? ええのんか?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 3413日 0時間 39分 17秒
新しいスレッドを立ててください。
life time: 3413日 0時間 39分 17秒
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を超えています。これ以上書き込みはできません。
ニュース
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」★2 [冬月記者★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 「稼ぐのよ!」高市総理が電話ガチャ切りで伝えたこと 鈴木憲和農林水産大臣が国政報告会に出席 自身が目指す農政の方針語る [煮卵★]
- 『しんちゃんと岸田さん』 [175344491]
- 日本株、大暴落!!! [252835186]
- 識者「『フリーパレスチナ』とかイキってる連中が台湾の話になると『中国を怒らせるな!』ってなる。ほんと左翼の正義って薄っぺらい」 [279254606]
- 港区女子「50kg越えちゃった、港区だとデブ界隈だよ(>.<)」🤳パシャッ👉10万いいね [329329848]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- んなっても良いお🏡
