【モダン推奨】Perlについての質問箱 50箱目

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
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辺り


2デフォルトの名無しさん: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/
3デフォルトの名無しさん:2012/01/21(土) 11:39:11.92
4デフォルトの名無しさん: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
5デフォルトの名無しさん:2012/01/21(土) 11:40:18.24
1レスで理解できるutf8フラグ

utf8フラグとい名前がまずかったね。
文字列フラグなどという名前だったらよかった。

文字列フラグはPerl固有のものだから
Perlコード外部から渡されるのは文字列ではない。
文字列でなかったらなにか?それはバイナリ。

バイナリを文字として扱いたければ、文字に変換しないといけない。
それがdecode。

ではソースコードに書いてあるのは、文字かバイナリか。
それはuse utf8を使えば文字で、そうでない場合はバイナリ。

話はこれだけ。
6デフォルトの名無しさん:2012/01/21(土) 13:51:55.46
【プログラミング部】 PHPが100倍速で動くようになったぞー
http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
7デフォルトの名無しさん:2012/01/21(土) 21:49:44.50
あのー、重複スレってことないですか?
8デフォルトの名無しさん:2012/01/29(日) 11:19:25.66
はてなキーワード > モダン
ttp://d.hatena.ne.jp/keyword/%A5%E2%A5%C0%A5%F3

書いているひとは 1. の意味で書いていそうだけど、読む人は(書いた時期
を考慮して) 2. や 3. の意味で解釈している。

よく印刷した資料に「最新版」とか書くひとがいるけどそれと似てるのかも
しれない。たくさんの最新版のうちどれが最新版なのか分からなくなる。
この場合の正解は版数を書くこと。

モダンの場合は、個別の技術の名称を書くことに相当する。

そうしないと「えっ?いまどきモダンPerl使ってるのかよ、お前w」なんて
ことになる。
9デフォルトの名無しさん:2012/01/29(日) 11:38:31.81
個別の技術は是々非々で議論しましょう。
現状は、モダンという名のせいで盥水とともに赤子を流してしまっています。
10デフォルトの名無しさん:2012/02/03(金) 01:55:40.19
モダンPerlと呼ばれているものは、過去の一時期のスタイルと結びついていて
今はもう使われていない。一方、レガシーPerlと呼ばれているものは現在でも
利用されていて、その名とうらはらに全くレガシーな気がしない。

思うにこれらの名称は、実態を正確に示していない点で失敗だと思う。

そういえば、モダンRubyやレガシーRubyという言葉は聞いたことがない。
名前重要っていうのは本当なんだな。
11デフォルトの名無しさん:2012/02/03(金) 07:54:57.41
ルビーはバージョン毎に違うからなあ
新旧をバージョン番号以外で呼ぶ事は今後もないんだろう
12デフォルトの名無しさん:2012/02/04(土) 00:24:55.23
83JISは新JISですね。わかります。
13デフォルトの名無しさん:2012/02/04(土) 10:44:31.66
2012年なんだから、そろそろ新JISキーボード使おうよってスレですね。
わかります。
14デフォルトの名無しさん:2012/02/05(日) 16:28:37.59
問題を解決する方法がモダンかどうか、誰もこだわっていない件
15デフォルトの名無しさん:2012/02/08(水) 01:37:01.27
今はポストモダンの時代
16デフォルトの名無しさん:2012/02/08(水) 01:42:45.73
何がどうなるの?教えて、教えて
17デフォルトの名無しさん:2012/02/08(水) 22:53:51.78
結局、モダンって何だったの?
本を売りたかったとか、会社作ってみたとか、そういうことなの?
失敗だったの?
もうモダンには会えないの?
18デフォルトの名無しさん:2012/02/09(木) 18:46:51.29
         _  , 、
     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
20デフォルトの名無しさん:2012/02/10(金) 00:41:07.42
「モダン、ここはどこ?」
21デフォルトの名無しさん:2012/02/10(金) 04:35:12.65
ネタが古い
22デフォルトの名無しさん:2012/02/11(土) 00:04:56.56
ここはね、パークハイアット東京。
The Perl Confernce Japan の会場だょ。

まもなく、まつもとゆきひろさんのRubyのセッションが始まるょ。

(コーヒーがおいしいょ。)
23デフォルトの名無しさん:2012/02/11(土) 04:05:03.81
ワンライナー [ 一行野郎 OneLiner ]
24デフォルトの名無しさん:2012/02/21(火) 06:43:24.21
書き込みテスト
25デフォルトの名無しさん:2012/02/21(火) 23:13:43.25
結局、モダンPerlって何だったんですかね?
26デフォルトの名無しさん:2012/02/22(水) 14:11:38.18
Perlの長所であり短所であるTMTOWTDIによるコードの難読化を共通ルールっぽいテンプレで改善しようという風潮
27デフォルトの名無しさん:2012/02/22(水) 21:13:46.02
変なこと考えるより、ポータブルCみたいにポータブルPerlで書けばいいと
思うんでそうしてる。書きやすいし読みやすい、おまけに長期的に保守
できる。これもTMTOWTDIのひとつの形態。
28デフォルトの名無しさん:2012/02/23(木) 21:47:31.36
長期的に保守できる=いつまでもモダン。
29デフォルトの名無しさん:2012/02/24(金) 15:24:49.40
>>28
動いているものに手を入れるな。
手を入れるときは該当箇所にだけ入れろ
決して他の部分をいじるな。

ほとんど同じ処理でも既存の部分を
修正するなコピペして作れ。

これこそモダン
30デフォルトの名無しさん:2012/02/25(土) 00:48:11.36
気が合いそうですね
31デフォルトの名無しさん:2012/02/25(土) 00:58:50.25
モダンが嫌いな人って、新しいものが嫌い。
だからデザインパターンもリファクタリングも
アジャイルも嫌い
32デフォルトの名無しさん:2012/02/25(土) 01:20:21.71
そう捉えてるとするならば、ちゃんとコトを理解できていない
33デフォルトの名無しさん:2012/02/25(土) 04:47:56.86
Perlの評価の8割はCPANだよね
Rubyの評価の8割はRailsだよね
34デフォルトの名無しさん:2012/02/25(土) 13:39:26.50
残りの2割はPerl4ですか
35デフォルトの名無しさん:2012/02/25(土) 13:55:49.15
Perl4はマイナス評価だよ。
36デフォルトの名無しさん:2012/02/25(土) 14:20:32.95
加えてPerl6もマイナス評価だからPerlはPerl5が支えているといっても寝言ではない
37デフォルトの名無しさん:2012/02/26(日) 21:09:36.58
「モダンPerl」の"モダン"はあさってな方向に行ってしまっているので、
一般的な単語のモダンとは意味が違っている。だから>>31の言っている
ことは間違い。
38デフォルトの名無しさん:2012/03/02(金) 09:42:04.91
>>35
うそつけ。このスレを潰そうとする連中はみんなPerl4時代のコードしか書かないじゃんか。
39デフォルトの名無しさん:2012/03/03(土) 00:51:07.30
Perl4も現役で使われているのでモダンですよ。
モダンではないのは(らくだ本が出版されていなかった)Perl3以前ですよ。
もちろん異論はありませんね?
40デフォルトの名無しさん:2012/03/03(土) 00:52:39.18
現役でサポートされてるディストリで
Perl4が入っているものを教えて下さいよw
41デフォルトの名無しさん:2012/03/03(土) 04:06:39.76
5.8が出てから今年で10年。
それより前は昔の実装でおk。
42デフォルトの名無しさん:2012/03/03(土) 10:52:44.75
こうして世界は騙された!!
43デフォルトの名無しさん:2012/03/03(土) 11:06:06.57
ディストリインストールできる人はPerlもインストールできるんじゃね?
44デフォルトの名無しさん:2012/03/03(土) 15:18:20.72
まさかオマイラ、ディストリ付属のperlをそのまま使ってる、なんてことないよな?
45デフォルトの名無しさん:2012/03/03(土) 16:17:57.11
ディストリのパッケージ以外からperlとかモジュールとか入れたらシステムの安定性が壊れる
パッケージが提供されてないモジュールを野良ビルドで入れたりしない
cpanm、perlbrew、local::libを使うなどもってのほか

↓のスレ読んで出直せ
http://toro.2ch.net/test/read.cgi/tech/1217851121/544-
46デフォルトの名無しさん:2012/03/03(土) 16:36:36.95
>>45
押すなよ絶対押すなよみたいな言い方ですね。

つまり、それらは便利ってことですね!

47デフォルトの名無しさん:2012/03/03(土) 19:02:12.13
>>45
root管理のパッケージと混ぜないために、cpanmやlocal::libを使うのよ。
ユーザ権限でユーザ領域に突っ込めるから、バックアップも楽だし、
いらなくなったらユーザごと消せばいいし。
Perl自体は、特に必要ない限り、システム付属使ってるけど。
48デフォルトの名無しさん:2012/03/06(火) 23:18:42.91
ユーザが移行するのは、今までよりも分かりやすいもの、使いやすいもの。
今までよりも新しいもの、多機能なもの、ではない。
49デフォルトの名無しさん:2012/03/06(火) 23:35:43.27
モダンなものってたいがいわかりやすくて
使いやすくなってるよね。

Time::Pieceとか。
50デフォルトの名無しさん:2012/03/06(火) 23:43:48.61
でもそうじゃないから、"モダン"っていうラベルを付けて強引に勧めて
いるんだね。分かりやすかったら、使いやすかったら、ほっておいても
自然に使われるだろうから、わざわざ無理強いする必要はないもんね。
51デフォルトの名無しさん:2012/03/06(火) 23:54:43.29
> 分かりやすかったら、使いやすかったら、ほっておいても
> 自然に使われるだろうから

それじゃ時間がかかりすぎる。
ようはオールドタイプはさっさと消えろってこと。

ネットの古い情報もさっさと消えて欲しいし、
今頃古いやり方を教えるやつもさっさと消えて欲しい。

だから俺は古いやり方を教えている奴を見つけたら
今はこうやる。こっちのほうがもっと簡単だと
情報を広めている。
52デフォルトの名無しさん:2012/03/07(水) 02:54:40.01
新しいけど使いづらいって、自分で言っているようなもんだな
53デフォルトの名無しさん:2012/03/07(水) 03:03:09.93
面倒なやつは無視が一番。
54デフォルトの名無しさん:2012/03/07(水) 03:57:57.80
CPANをすべてRubyが補完してくれたらどんなにいいだろう。
55デフォルトの名無しさん:2012/03/07(水) 23:12:02.32
   end
  end
 end
end

あぁ、終わりだもうだめだぁ
56デフォルトの名無しさん:2012/03/08(木) 00:42:07.15
まあモダンなPerlを知らなければ、
Perl使いとみなせない時代にはなってるよね。
57デフォルトの名無しさん:2012/03/08(木) 00:51:37.53
もちろん情報は日々取得してるから知られてはいるんだろうけど、
使いやすくなかったらいつまでたっても使われることはないよね。
58デフォルトの名無しさん:2012/03/08(木) 01:03:50.28
使われてるけどね。
Perlで作られてる他のプロジェクト見たこと有る?
(昔に作られて放置されてるのは除く)

Jcodeとか海外じゃ全く使われてないから。

59デフォルトの名無しさん:2012/03/08(木) 23:37:48.23
60デフォルトの名無しさん:2012/03/09(金) 01:54:01.68
確かに Time::Piece 以外は見たことがないね
61デフォルトの名無しさん:2012/03/09(金) 02:06:51.28
>>58
海外で使われていないと、自分が日本語を処理するときに使っちゃいけないの?
日本では使ってもいいんでしょ?
そもそもモダンっていうのは禁止して不便にすることなの?
それにJcodeはオブジェクト指向なんだし十分モダンだと思うけどな
62デフォルトの名無しさん:2012/03/10(土) 00:38:59.17
モダンPerlでいうところの"モダン"は、
 1.リリース時期のことをいっているのか
 2.実装手法のことをいっているのか
 3.はたまたインタフェースのことをいっているのか
ところで、インタフェースっていうのは
 a.新しければ新しいほど好ましいのか
 b.古ければ古いほど好ましいのか
このあたりの見解が一致しないと、具体的なモノがモダンなのか
そうでないのかが変ってしまうし「これはモダンだ」と言ったか
らって、そのものに価値があるのか無いのかは別問題になる
63デフォルトの名無しさん:2012/03/10(土) 01:24:18.18
1.がモダンでも2.がモダンでも利用者にとって関係なく、単に供給側
の自己満足になってしまう。3.のことだとすると新しいもの好きはa.で、
人柱をかってでることになるわけで、そうでないならb.で問題ない。
64デフォルトの名無しさん:2012/03/10(土) 02:28:05.91
>>62
Rubyはモダンだ。

そこからいえばRubyに近いことを
Perlでやるのがモダンだ。
65デフォルトの名無しさん:2012/03/10(土) 02:38:52.80
モダンの定義は分かったけど、それ価値あんの?
66デフォルトの名無しさん:2012/03/10(土) 02:45:52.84
あるよ。

開発速度が上がった。
少ないコードで、今まで以上のことができる。

なにより、プログラミング一般とPerlに関して
深い知識を手に入れられたのがいいね。

オブジェクト指向言語、関数型言語、
継承。ポリモーフィズム。mixin、
アスペクト指向、O/Rマッパー
フレームワーク、MVC・・・etc

Perlだけじゃ、世界が狭いからほかの言語をやるといい。
そうして戻ってくると、自然とモダンPerlな体になってるよ。
67デフォルトの名無しさん:2012/03/10(土) 02:50:23.82
考え方が間違っていたかもしれない。

モダンPerlとは、Perlがモダンなのではなく
プログラマ的にモダンな開発手法、
それをPerlに取り入れたものではないのか?

よくよく考えたら、最近はやりのほかの言語の機能を
PerlでやれるようにしたがモダンPerlなモジュールではないだろうか。
68デフォルトの名無しさん:2012/03/10(土) 11:58:33.08
モダンPerlはアンチPerlなのか...
それでPerl原理主義者の抵抗にあっているという構図か
69デフォルトの名無しさん:2012/03/10(土) 12:24:09.53
ニーズにマッチしないモダンならいらないよ。
70デフォルトの名無しさん:2012/03/10(土) 12:38:37.16
便利ならそれでよくて、モダンという線引きは要らないってことでおk?
71デフォルトの名無しさん:2012/03/10(土) 12:41:50.76
お好み焼きとの違いがいまだに覚えられない
72デフォルトの名無しさん:2012/03/10(土) 15:44:56.75
どうにも架空臭がするモダンPerlだが最近ますますそう感じている。
(モダンPerlを構成するといわれる)個別の要素の議論で十分だと思う。
ひと括りにしてしまうせいで大事なものまで一緒に捨てられてしまう。
73デフォルトの名無しさん:2012/03/10(土) 23:59:10.17
モダンPerlではなく、
Perlでモダンプログラミングといえば、
面白いように情報弱者が落ちていく。
74デフォルトの名無しさん:2012/03/11(日) 00:48:24.53
モダンっていう言い方が古臭い
75デフォルトの名無しさん:2012/03/11(日) 01:03:16.37
トレンディPerl
76デフォルトの名無しさん:2012/03/11(日) 02:15:55.91
単に"モダンPerl"と言いたいだけにしか思えない
Perlのリリースが予定通りじゃなかったり、らくだ本の改版に10年もかかっ
たりするからって、無理して話題を作る必要はない

5.14.3がリリースされない今はらくだフォーでつなぐのが吉
77デフォルトの名無しさん:2012/03/11(日) 02:21:20.79
普通にPerl5を使えばいいだけ。
78デフォルトの名無しさん:2012/03/11(日) 04:00:30.75
Perlのオブジェクト指向はどう考えてもいびつでおかしいのに
それを主張しても理解できない人の戯言にされてしまう。
79デフォルトの名無しさん:2012/03/11(日) 04:48:04.26
お好み焼きは食えるけど、モダンPerlは食えないね。
80デフォルトの名無しさん:2012/03/11(日) 05:14:03.94
>>73
人間としての品位を疑われるぞ
社会に適合してないんじゃなイカ?
81デフォルトの名無しさん:2012/03/11(日) 08:47:05.63
>>76
らくだフォー?
82デフォルトの名無しさん:2012/03/11(日) 12:35:38.71
らくだフォア
 モダンはとおくに
  なりにけり
83デフォルトの名無しさん:2012/03/11(日) 12:59:34.63
>>78
Perlのオブジェクト指向はいびつ

じゃあいびつじゃない形にしましょう。それができるのがPerlの凄さだ

そうやってできたもの=モダンPerl


>>78
お前はPerlを使いこなせてないだけ。
84デフォルトの名無しさん:2012/03/11(日) 17:32:12.27
またそんな青くさいこといちゃって、このフォーティーンめ
85デフォルトの名無しさん:2012/03/11(日) 19:50:09.03
モダン推奨者は自分が社会に適合しようとするんじゃなくて、社会を
自分に適合させようとしている。

結果、当然うまくいかなくて挫折する。

その繰り返し。
86デフォルトの名無しさん:2012/03/11(日) 20:47:59.28
>>85
そうそう。
CPANモジュールで楽せず全て一から自分でコードを書くのが社会の常識だからね。
87デフォルトの名無しさん:2012/03/11(日) 21:48:16.89
モダン、モダンとか言って周りに合わせられないのは単に能力がないだけでしょ
88デフォルトの名無しさん:2012/03/11(日) 22:00:36.17
>>87
ねぇ。
自分でコードかけないからCPANモジュールなんぞ入れようとするんだよ。
89デフォルトの名無しさん:2012/03/12(月) 00:38:19.94
ググって何も出なかったら「ありません。」で終わりだもの、今のひとは。
90デフォルトの名無しさん:2012/03/12(月) 01:08:30.57
>>89
ばかばかしいよね。
何も出なかったら自分で書けよ、と。
91デフォルトの名無しさん:2012/03/12(月) 12:37:32.86
>>87
モダン、モダン言わなくても、周りに合わせられなければ、単に能力がないだけ。
つまり、モダンプログラミングと、周りに合わせられない事は別問題。

>>90
そこは迷うところだな。別の手を考えるか、そのまま自分で実装するか。
ある意味チャンスだ。
92デフォルトの名無しさん:2012/03/12(月) 23:57:29.35
別の手ってYahoo!か?
93デフォルトの名無しさん:2012/03/13(火) 02:54:48.40
質問箱よりOKWaveがお勧め。
94デフォルトの名無しさん:2012/03/15(木) 23:34:57.79
どうやってCPAN使いこなせるようになるんだよ…。
95デフォルトの名無しさん:2012/03/16(金) 00:44:44.19
今までのインタフェースで実装できなくてだめだめなのをモダンPerlとか
言って取繕ってるだけでしょ
96デフォルトの名無しさん:2012/03/16(金) 01:02:24.92
perl6のコンセプトを先取りしてるものではないの?
97デフォルトの名無しさん:2012/03/16(金) 02:27:51.26
98デフォルトの名無しさん:2012/03/16(金) 08:17:31.69
>>95
なんでそういう悪意のある言い方するの?
99デフォルトの名無しさん:2012/03/16(金) 15:52:29.33
新しい手法・置き換えるモジュールがあれば、それを採用しましょうってのがモダンPerl。
Fatalプラグマよりautodieプラグマ。
switch,caseよりgiven,when。
evalとif($@)よりTry::Tiny。
という感じ。

置き換えられないモジュールを置き換えようとするのは多分違う。
100デフォルトの名無しさん:2012/03/16(金) 15:57:44.21
次スレがあったら、テンプレにこれも追加で
http://perl-users.jp/

で、>>3はこのスレ的には整理した方がいいだろうね
101デフォルトの名無しさん:2012/03/16(金) 15:59:56.20
102デフォルトの名無しさん:2012/03/16(金) 16:35:08.87
103デフォルトの名無しさん:2012/03/16(金) 17:04:15.50
>>102
無料でも読めるのか。トントン
104デフォルトの名無しさん:2012/03/16(金) 21:48:33.88
モダンPerlは無駄なもの
なぜなら業界歴20年の俺が理解できなかったからだ
そこから役に立たないものだと結論づけた
105デフォルトの名無しさん:2012/03/16(金) 23:16:39.05
新しいことについていけない老害の人って。。。
106デフォルトの名無しさん:2012/03/17(土) 00:38:01.50
プログラムはプログラマだけのものじゃなくて、依頼者や使用者のものでも
あって、依頼者視点での保守、使用者視点での保守をしていかないとならない。
その場限りのソフトウェアならモダン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で作ろう。

それが依頼者のためになるんだ。
112デフォルトの名無しさん:2012/03/17(土) 03:00:54.49
当然4.036よりもさらに前だよな?
113デフォルトの名無しさん:2012/03/17(土) 03:04:12.17
>>106
客が要求するのがモダンではないと決めてかかってる。
客がモダンを要求したらどうするつもりだ?
単にお前は、モダンPerlが書けないだけ。
114デフォルトの名無しさん:2012/03/17(土) 16:11:00.12
>>112
はい
115デフォルトの名無しさん:2012/03/18(日) 01:23:00.96
逆になんでモダンにこだわるの?変なとこにこだわって成果がでないんじゃ
本末転倒じゃないの?成果とモダンとどっちが優先なの?
116デフォルトの名無しさん:2012/03/18(日) 01:53:27.60
>>113
単におまいはモダンっていいたいだけちゃうんか
この青尻め
117デフォルトの名無しさん:2012/03/18(日) 03:15:04.19
>>115
モダンを諦めれば、成果が出るとでも思ってるの?

むしろ、モダンを使う=成果が出る
なんだが。
118デフォルトの名無しさん:2012/03/18(日) 07:42:28.32
一旦モダンって名前を頭から消して普通にPerlコードを書かせてみるとする
そいつのコードが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がいいものだとしたら普通に普及する。
駄目なもので無理やり普及させたいのには訳がある。

本や講演などで稼ぎたい人もいるってこった。
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
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.55
>>138
>互換性がない
何と?
>将来のメンテナンスが不安
将来のメンテナンスを考えると何を使えばいいの?
141デフォルトの名無しさん: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が言っていることはこういう意味です。
143デフォルトの名無しさん:2012/03/28(水) 23:57:43.96
がんばって標準モジュールを列記してみたものの、やっぱり素のPerlは
思いつかないところ、青尻くん、すばらしい。すごくいい。

「モダンPerl使いなのでlocaltimeは使えません。」キリッ

職場で一度言ってみたい。。。試用期間で終わるだろうけどw
>>143
localtimeは、Time::Pieceで使うよw

標準モジュールのTime::Pieceが素のPerlを拡張してくれるのに、
今更配列のインデックスで年取得して+1900とかする
冗長なコード書くバカいるのかい?
>>143
お前がTime::Piece知らないってのが
モロバレだなw

はい、このように、モダンPerlを嫌ってる人=無知なだけ
ってことなのです。
> 素のPerlや標準モジュールが思いつかないあたり

って言っておきながら、標準モジュールをあげたら今度は

> がんばって標準モジュールを列記してみたものの、やっぱり素のPerlは
> 思いつかないところ

もしかして、自分の知らない標準モジュールばっかりで
方向転換したのかいな?
147デフォルトの名無しさん:2012/03/30(金) 00:32:49.44
ぷぷぷ。
148デフォルトの名無しさん:2012/03/30(金) 01:00:11.52
モダンPerlとそうでないPerlとの違い、メリットについてもっと教えておくれ
標準モジュールを使いこなすのがモダン。
そうでないものは単に勉強不足なだけ。
150デフォルトの名無しさん:2012/03/30(金) 21:55:40.66
なんだ、そうだったのか。てっきりlocaltimeも満足に使えないのかと
思ってたよ。失敬、失敬、こりゃ失敬。
念のため言っとくがlocaltimeから
リストコンテキストで取得するのは古いやり方だからな。

最近のやり方はlocaltimeからTime::Pieceオブジェクトを返す方法。
もちろん標準モジュール。
152デフォルトの名無しさん:2012/03/31(土) 01:09:11.56
で、Time::Pieceのインタフェースってlocaltimeと互換性あるの?
例えばリストコンテキストで使うと同じように値が戻ってくるの?
>>152
% 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を使って愛想笑いでごまかすしかない。
その職場に5.10が入るのは10年後であった。
そしてcpanmやperlbrewを入れることは全面禁止されていた。
そんなんで仕事できるの?w
少なくとも効率が悪いね。
古い所が新しい所に
あっさり追い抜かれる原因の一つである。
159デフォルトの名無しさん:2012/03/31(土) 12:09:29.38
やっぱりモダンっていうのは供給者側の視点であって、利用者側の視点が
抜け落ちているな。残念。
利用者?
俺は利用者なんだが。

勉強しない奴に合わせる理由なんてないよ。
161デフォルトの名無しさん:2012/03/31(土) 15:55:14.37
おれに合わせる必要はない。逆におれはおれでperl4が使われているところも
あるから、がんばってlocaltimeで書くと。需要ベースで考えるしかない。
残念。
162デフォルトの名無しさん:2012/03/31(土) 17:19:27.03
まあゆっくりやっていこう。モダンPerlにタイムリミットがあるわけでなし。
古いPerlにはタイムリミットあるけどな。

Perl4のサポート期間は10年ぐらい前に終わっていそうだけどw
perl4の需要はすでに99.9%無い
かろうじて残っているような需要に対応する必要はない。
165デフォルトの名無しさん:2012/03/31(土) 20:22:18.67
お前に期待してないから大丈夫だ。
>>161
Perl4に拘るのはせいぜいあなた個人あるいはお客様だけでありますように
あなたの後をうける人、あなたの下につく人が不幸にならないことを祈りたいですなぁ
167デフォルトの名無しさん:2012/03/31(土) 22:03:37.68
そうだね。
windowsXp:ActivePerl環境で、perlをタスクスケジューラからバックグラウンドで実行させたい。
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
171168:2012/04/03(火) 00:54:00.46
デバッガあててみたら↓が原因だった
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...

回避方法あるでしょうか?
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}; };
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 {}

ここまで来ると普通のハッシュでよくね?
あと、ネタすれなんで、本スレで質問しる。
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

176172:2012/04/07(土) 23:31:22.35
>>174
おおーありがとうございます。AUTOLOAD自体をlvalueにするというのは気づきませんでした。
実際のプログラムはもう少し複雑ですが、正しく動作しています。

>>普通のハッシュでよくね?
たしかにw
一応オブジェクトであってはほしいのですが、ハッシュ記法であれば何の不都合もなく
$obj->{name} = 'bar';
と書けるわけですしね。
オマケでメソッド呼び出しも、と考えてたらハマってしまった格好です
Apple 社の Mac OS X は、 ベースの一部 が FreeBSD です。Apple 社独自の
ユーザインタフェースとともに、豊富なUNIX(R)基盤が取り入れられています。
OpenStepじゃなかったっけ?
179デフォルトの名無しさん:2012/04/14(土) 14:38:18.13
>>171
事前にSTDOUT、STDERRをつぶして
おいたらどーなる?

ウインドウアプリで、そこに吐くと、
自動的に新規コンソールが開く、
とかだったような。
180デフォルトの名無しさん:2012/04/17(火) 22:06:08.88
>>179
タスクのウィンドウが表示されなくなってうれしいものの、その他の
ウィンドウも一切表示されなくなりました ;_;
(D-SUB抜いて試しました)
181デフォルトの名無しさん: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 インストールしたモジュール名
やるとそんなのないて怒られる。
なんで?
191デフォルトの名無しさん:2012/05/15(火) 22:29:19.68
>>190
普通 perldoc -l DBI などは成功すると思うよ。
どうやって入れたの? モジュール名は?
192デフォルトの名無しさん:2012/05/16(水) 07:35:09.36
>>191
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") と、マッチするものすべてを得たい場合、
どうすればよいでしょうか。

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;
196194:2012/06/20(水) 02:51:53.45
>>194
場当たり的に色々試していたら
@a = $str =~ /(?=(AB|BC))/g;
で、(AB,BC) が取得できました。
(?= で、次の走査開始点を移動させないようにしたから、でしょうか?
197デフォルトの名無しさん:2012/07/15(日) 14:22:38.65
一過性のモダン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/
204デフォルトの名無しさん:2012/07/30(月) 19:45:03.06
本スレも、荒しに常駐されてぐだぐだだし、
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煽りしたり
ググれ煽りしたり

馬鹿じゃねーの?
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

(以下略

現時刻から一時間前のログのみ抽出して、抽出したログの行数だけ出したいのですがこの処理って一行(ワンライナー)で書けますか?※重複とかは無視して単純に一時間分のログが引っこ抜ければ良いです。

詳しい人教えてください。
215デフォルトの名無しさん:2012/08/06(月) 18:26:08.19
>>214
訂正
1時間前のログのみ抽出じゃ無くて一時間分のログを抽出です。

216デフォルトの名無しさん:2012/08/06(月) 18:57:53.32
>>214
> この処理って一行(ワンライナー)で書けますか?
書けます。
217デフォルトの名無しさん:2012/08/07(火) 18:06:48.10
>>216
やり方教えてください!
一時間前の日付時刻と現在の日付時刻を比較して条件を満たせば該当行を出力みたいなことをやれば良いとおもうんですが、どう書けば良いのかわかりません
218デフォルトの名無しさん: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 あたりでググる。
219デフォルトの名無しさん:2012/08/07(火) 18:20:05.07
>>218
あんた2012年の住人じゃないだろw
220デフォルトの名無しさん:2012/08/07(火) 18:30:46.11
>>218
レスありがとうございます。
参考にさせてもらいます。
でも2013年以降も使えるのが理想ですが…
221デフォルトの名無しさん:2012/08/07(火) 18:34:05.93
年跨ぎのケースを考え無くて良いなら、コードの2012を2013にすりゃいいだけ。
222デフォルトの名無しさん:2012/08/08(水) 18:20:12.98
というより、「年」は全部今年として扱えばいい。
年が明けてから1時間はまともにログを拾えなくなるけど。
そもそもログデータに「年」の情報が入っていないんだから、
厳密に処理するのは無理だべ。
223デフォルトの名無しさん:2012/08/08(水) 18:36:12.52
>>218に対して言ってるのなら、
最初からそれを念頭に書いてないか?
コードは既にそうなってるし、
説明文の方は質問者に向けたもんだし、
改造しやすいように除算は態々、2012 -1900 にして残してあるし。

それともtime関数に、年を除外するオプションでもあんの?
224デフォルトの名無しさん:2012/08/08(水) 19:02:57.22
>>223
年が変わるごとに 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、了解した。
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使えばあとからでもわかるしね。
227デフォルトの名無しさん:2012/08/08(水) 19:19:19.26
>>225
了解してくれてどうも。
俺の日本語がわかりにくかったのか…
228デフォルトの名無しさん:2012/08/08(水) 19:28:58.56
>>226
> 218の方がすっきりしてるか。なぜかうちの環境だとエラー吐いて動かなかったけど…。
> (Day 'Jun' out of range 1..31 at -e line 1 て言われた)

なぜエラーが出たかわかった。自分でテスト用に切り出して作ったログファイルの
各行頭にスペースが入っていたからだった。(ありがち)
229デフォルトの名無しさん:2012/08/08(水) 21:24:39.24
>>227
違う。料理の合間に、斜め読みでレスした俺が悪い。
230デフォルトの名無しさん: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オブジェクトの除算が変だ。なんで?
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ベースになっちゃうけど引き算の結果は正しくなる。
という訳で、けっこういろいろとメンドくさいもんですね。
232デフォルトの名無しさん:2012/08/09(木) 08:02:26.85
同じぐらいの長さのワンライナーなのに
>>218がダサくて>>226がスタイリッシュに見えるのはなぜだろう
233デフォルトの名無しさん:2012/08/09(木) 08:03:44.22
レスくれた人ありがとうございます>>214です。
まだ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'
239266 (未来より参上):2012/08/15(水) 16:15:51.26
>>238
おおうスタイリッシュ。
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くっつけるだけ。


それにしても、バルサン炊いたみたいに、人がいなくなったな本スレと初心者スレ。
実際の所は、ハイエナが肉に夢中になってるだけだろうけど。
241デフォルトの名無しさん:2012/08/19(日) 22:14:32.47
初めてのPerl第6版とPerl5.16.1のことだね。
Unicodeサポートの問題に今頃気づいたって読める。
第5版のときはまだ気づいていなかったのかな?
まあ、そんときは使ってなかったんだろうけどな。
242デフォルトの名無しさん:2012/08/20(月) 05:51:33.20
今上天皇侮辱発言の祭りが落ち着いたから、戻って来たぞゴキブリ。
でも、まあ、5割くらい減ったんじゃねーかな?
243デフォルトの名無しさん:2012/08/20(月) 22:17:22.42
バルサン耐性を備えて5割以上パワーあっぷぷぷw
244デフォルトの名無しさん:2012/08/26(日) 15:07:51.22
ゆっくりモダンになっていく・・・




・・・モダンRuby。
245デフォルトの名無しさん:2012/08/29(水) 00:35:50.14
モダンPERL追いかけてたら時代に取り残されましたとほほ
246デフォルトの名無しさん:2012/08/30(木) 21:05:34.35
>>245
その最後の「とほほ」だけで、もう10年以上は時代に取り残されてるよな
247デフォルトの名無しさん:2012/08/30(木) 21:12:12.26
とほほだってよw
もうお前5.6こそ最高とかいって周りに強要してろよ
248デフォルトの名無しさん:2012/08/31(金) 00:07:22.19
5.6だと日本語がちゃんと使えません。仕事で使うなら5.005一択です。
249デフォルトの名無しさん:2012/09/01(土) 09:59:22.19
どうやらモダンパールは時代遅れみたいですね
本家のパールはすでにその先に進んでます
テキスト処理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版を買え!
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とかを使わない
260デフォルトの名無しさん:2012/09/12(水) 00:30:32.64
実際に書かせてみればろくなコード書かないんだろうな
261デフォルトの名無しさん:2012/09/12(水) 00:31:53.70
モダンperlと言われているもののうち一部の重たいモジュールを持ち出して
重たいモジュールは避ける傾向にあるからモダンperlも避ける傾向だよねー
なんてどんな詭弁だよ
262デフォルトの名無しさん:2012/09/12(水) 00:33:07.74
確かにLarryはモダンPerlについて多くを語ろうとしないな
きっと軽いスクリプトが好きなんだろうなList::Utilとか使わない
263デフォルトの名無しさん:2012/09/12(水) 00:55:43.31
List::UtilはXSで書かれてるから自分でPerlで書くよりよっぽど高速なわけだが
てかとってつけたようにLarry様の名前出すなよw
264デフォルトの名無しさん:2012/09/12(水) 01:36:14.68
GUIやバイナリファイル扱うときに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;
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 という文字列に置換されます
どうすればいいですか
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みたいなスマートな書き方はできないものかと
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つずつ質問してもらっていいですか?
中卒なんで
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やら使わずに書いてみそ
という問題
284デフォルトの名無しさん:2012/09/21(金) 00:35:30.66
>>276
> バイナリでの文字列置換をしています
{
  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しておくのが一番分かり易い
なまじ前半に書けてしまうのがおかしい
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でデータを参照しつつ、同一のデータベースから同じようにデータを取得する
 ことはできないのでしょうか?
 
何か情報がありましたら、教えてください。
よろしくお願いいたします。
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
になって欲しい

うまい書き方はありますか
297デフォルトの名無しさん:2012/09/23(日) 12:06:04.53
>>296
s/\[.{1}\]//;
オプションつけて最長マッチとかってあるのか?
298デフォルトの名無しさん: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";
300デフォルトの名無しさん:2012/09/23(日) 20:34:01.47
スカラーで置換した数を返す、という仕様は
whileで使ってくれと言ってるようなもんだな
301291:2012/09/24(月) 00:26:24.29
>>292-293
ありがごうございます。
ただすみません、自分の書き方も悪かったのですが・・・

取得した情報で、その後の処理を変更しています。
そのため、発行するSQLもselectだけでなく、insert,update,deleteなどもあり、
単純にSELECTを見直すというわけにもいかず。
302デフォルトの名無しさん:2012/09/24(月) 00:48:00.82
複数のアクティブな結果セット (MARS) の使用
http://msdn.microsoft.com/ja-jp/library/ms131686.aspx
303291:2012/09/24(月) 22:40:47.72
>>302
ありがとうございます。
こんなものがあったんですね。知らなかったです。
304デフォルトの名無しさん: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の方が効率がいいね。
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のことなんか、
考える必要ないんですよ。
319デフォルトの名無しさん:2012/10/16(火) 00:42:38.62
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
322デフォルトの名無しさん:2012/10/16(火) 01:37:39.47
とにかくコードが手元の環境で動くのが正義
そして長期間に渡るメンテが可能で楽なのが正義
localtimeは標準モジュールより格上の標準関数

ポータブルPerlこそがこの世の正義

319による保守は誰も期待していない
323デフォルトの名無しさん:2012/10/16(火) 01:59:23.74
>>321
無理して見なくていいぞ
324デフォルトの名無しさん:2012/10/16(火) 02:00:05.08
ポータブルPerlって
Perlのバージョンはなんだ?
言ってみろよwおらおらw
325デフォルトの名無しさん:2012/10/16(火) 02:04:53.00
>>322
> とにかくコードが手元の環境で動くのが正義

> ポータブルPerlこそがこの世の正義

矛盾してる
326デフォルトの名無しさん:2012/10/16(火) 02:06:12.86
>>322
> ポータブルPerlこそがこの世の正義

つまり手元の環境で動きさえすればいいってもんじゃないってか?
327デフォルトの名無しさん:2012/10/16(火) 02:06:57.24
>>322
> localtimeは標準モジュールより格上の標準関数

格上わろす
328デフォルトの名無しさん: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で書く。
333デフォルトの名無しさん:2012/10/20(土) 14:43:54.03
>>332
perl本体に組み込まれた関数が何十年後も互換を維持してるとは思えないがな
334デフォルトの名無しさん:2012/10/20(土) 15:22:59.17
寿命が6〜8年のモルモットの推測が当たるとは思えないがな
335デフォルトの名無しさん:2012/10/20(土) 15:54:12.00
数十年後も使い続ける物はCで書いとけよ。
Perl5自体、メンテされてるかどうか分からんぞ。
336デフォルトの名無しさん:2012/10/20(土) 17:23:24.31
mooseとか使いまくってる俺が通りますよ

早くPerl6出ないな〜
337デフォルトの名無しさん:2012/10/20(土) 20:08:44.97
Cで書いたら実行環境の違いを記述するコードでアプリケーションが
埋め尽くされるんだろーなー
338デフォルトの名無しさん:2012/10/20(土) 20:25:13.96
>337
Linuxのソース見たけど、
一部の層で吸収しているから
ほとんどのコードは実行環境の違いなんて関係ないよ。

ま、お前にはそんな芸当出来ないだろうがな。がはははははwwww
339デフォルトの名無しさん:2012/10/20(土) 20:32:14.18
ゆとりだからLinuxしか習わなかったんだよね?かわいそす
340デフォルトの名無しさん:2012/10/20(土) 20:34:13.97
「Linuxしか習わなかった」と判断した理由を書いてください。

ゆとりの脳内はよくわかりませんのでw
あ、書かなくても(逃げても)構いませんよwww
341デフォルトの名無しさん:2012/10/20(土) 20:54:05.91
書いてもいいんだけど、Linuxのソースが、Linux以外のオペレーティング
システム上でperlを実行したときの実行環境の違いを吸収できると考えて
いるひとには理解できなそう
342デフォルトの名無しさん:2012/10/20(土) 21:09:04.20
たぶん、無理だろうね。かわいそす
343デフォルトの名無しさん:2012/10/20(土) 21:21:01.55
やっぱゆとりだったかw

実行環境の違いなんてそれを埋めるレイヤーに固めるから
アプリケーションがそんなコードで埋まることはないってのが
一番の趣旨だろ。

こういう作り方ってのは普通にやることだし、そんなことが
思いつかないってのは自分でやったことがないってこと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 も覚えようとしなくて結構です。

どうもすみませんでした。
348デフォルトの名無しさん:2012/10/20(土) 23:55:00.68
モダンPerlが脳障■者を集めるのか、脳障■者がモダンPerlを好むのか

これって日本だけの現象なの?モダンRubyとかも同じ状況なの?
349デフォルトの名無しさん:2012/10/21(日) 00:21:29.73
いいから黙ってろって
350デフォルトの名無しさん:2012/10/21(日) 00:34:27.55
>>343
> こういう作り方ってのは普通にやることだし、そんなことが
> 思いつかないってのは自分でやったことがないってことw
>
> そこからこのセリフにつながる

罵倒を目的とした文章で代名詞の頻度が上がるのは、脳に良くない変化が起きていることを現すから気をつけた方がいい。
351デフォルトの名無しさん:2012/10/21(日) 00:35:41.55
じいさんがボケ始めた頃「あれ取って」が増えたのと同じか?
352デフォルトの名無しさん:2012/10/21(日) 00:46:26.95
>>350
> 罵倒を目的とした文章で代名詞の頻度が上がるのは、脳に良くない変化が起きていることを現すから気をつけた方がいい。

そんなデータはありませんwww
大丈夫?
353デフォルトの名無しさん:2012/10/21(日) 01:30:13.87
ボケ老人風文体わろす
354デフォルトの名無しさん:2012/10/21(日) 02:33:32.41
実行環境の制約(機器であったり、OSであったり、その会社の規則だったり)で
ポータブルなスクリプトを書かなければならないことはあるだろうけど、
制約によってモダンPerlで書かなければならないってことは現実にあるんだろ
うか?

その前にポータブルなスクリプトとレガシーなスクリプトの違いはちゃんと
理解できているのだろうか?

モダンPerlは結局のところ単なる自己満足なのだろうか?回答を求む。
355デフォルトの名無しさん:2012/10/21(日) 02:48:51.74
> ポータブルなスクリプトを書かなければならないことはあるだろうけど
お前のポータブルの意味って何?
新しいPerlを入れればいいだけだろ。

お前が言ってるのは、ポータブルなスクリプトを書く。ではなく
古いPerlにも対応したスクリプトを書くって話。

ポータブルとは関係ない。
356デフォルトの名無しさん:2012/10/21(日) 08:22:34.33
古いPerlって、どれくらい前のPerlの事を言ってるの?
CPANライブラリが動かないような古いPerlも視野に入れて開発しないといけないの?
どうして、そんな古いPerlに固執してるの?バージョンアップできないの?

正直モダンPerlって呼ばれてるような書き方をしてはいけないなんて制約がある方が特殊すぎ
357デフォルトの名無しさん:2012/10/21(日) 14:23:20.43
自分の書くプログラムのスタイルなら、モダンだろうとクラシックだろうと好きに書けばよい。
でも、モダン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を使うのです。
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.31
>>358
Encodeモジュールのようなモジュールだろ
まあ、あえて名指しはしないけどな
363デフォルトの名無しさん:2012/11/04(日) 17:39:50.59
なんでEncodeモジュールを追加しただけで
再検証が必要になるんだ?

Encodeモジュールは最近のPerlには標準搭載されてるだろ。
まさか最新のPerlで動かないコード書いてるのか?
364デフォルトの名無しさん:2012/11/06(火) 01:19:20.40
>>318 >>319
フリーソフトはそもそも AS IS だからサポート切れとかはない
今までのどのらくだ本にも最初に書いてある

で、強要だの押し付けただのってしたことあったっけ?
365デフォルトの名無しさん:2012/11/06(火) 17:24:09.46
366デフォルトの名無しさん: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
367デフォルトの名無しさん:2012/11/07(水) 00:29:49.79
好きなだけ弄ればいいさ。
誰も止めやしない。
368デフォルトの名無しさん:2012/11/07(水) 01:58:26.48
Jcode,pmてまだまだ使われてるの?
さすがに 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
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ファイルらしき物は一向に
生成されません。
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
のディレクトリが成立しています
374デフォルトの名無しさん:2012/11/07(水) 22:08:46.56
>>372
事項ではなくて、実行であります。
タイプミスすんまそん
375デフォルトの名無しさん: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ではうまく動かない可能性があります。
378デフォルトの名無しさん:2012/11/08(木) 07:22:49.06
初歩的なミスを
した物のどの記事も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はクズ
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を使う。
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_○のような形になっているかを正規表現で調べるにはどうすればいいんですか?
○の中は数字のみです
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
393デフォルトの名無しさん:2012/11/25(日) 00:38:50.82
printfの後のスペースなくても動いた!

($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
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
397デフォルトの名無しさん:2012/11/25(日) 09:16:00.99
せめてPOSIX。

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 )));
}
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
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に代入した後の処置を教えください。
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はナイわ
409デフォルトの名無しさん:2014/01/06(月) 16:11:01.27
解析するなら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 だとバイトでカウントしているようなので
やはりズレてしまいます.

端末上に上手く整形して表示する方法はないものでしょうか?

非モダン質問箱の方は質問できる雰囲気ではなかったので
こちらで質問させて頂きました.
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を返す
414デフォルトの名無しさん:2014/01/17(金) 14:52:43.34
>>411
生粋のWeb脳って気持ち悪い
415デフォルトの名無しさん:2014/01/17(金) 17:55:39.71
ゴミ
416デフォルトの名無しさん:2014/01/17(金) 21:47:20.63
そういうのもうあるみたい
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
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.21
>>422
いいから早く消えろってことだよ
やんわり言ったら分からなかった?
424デフォルトの名無しさん:2014/01/18(土) 21:26:46.26
>>422
ウザ杉
425デフォルトの名無しさん:2014/01/18(土) 21:27:09.30
>>421
BigInt付けるか、他の方法を考えるかしたら?
文字列じゃなくて、変数ってんならアドレスとかの方法もあるけど、
426デフォルトの名無しさん:2014/01/18(土) 21:28:17.27
あっちで釣りの続きしてればいいのに
427デフォルトの名無しさん:2014/01/18(土) 21:29:11.08
>>425
何で上から目線なの?
自己顕示欲満たしてやってんだから嫌なら答えるなよ。
428デフォルトの名無しさん:2014/01/18(土) 21:31:14.66
>>425
基地害のお客様はこちらへお引き取りください。

http://toro.2ch.net/test/read.cgi/tech/1385039352/
429デフォルトの名無しさん:2014/01/18(土) 21:32:59.96
そもそもこんなところで質問してあーだこーだ言わないと使えないんだったら、
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
437デフォルトの名無しさん:2014/01/19(日) 08:36:16.42
お前の自演の方もなかなか解りやすいぞ、PHP厨
438デフォルトの名無しさん:2014/01/19(日) 14:34:32.39
糞言語の糞スレ
439412:2014/01/19(日) 20:39:49.50
>>413
制御文字を除外するために文字が特定範囲にあるか調べる方法がテクいです

>>416
同じことを思ってる人はいるものですね.
使ってみた限りでは問題なく調整してくれるみたいです.
\p{East_Asian_Width} で定義されてるかどうか等で判定しているので
半角カナもちゃんと幅1で計算されます.


MBPrintf.pm の方を使って printf を置き換えることにしました.
HTMLとかにして出力するしかないかなと思っていたところ
さくっと printf を置換えするだけで綺麗に出力できそうなので
大変助かりました. 質問してみて良かったです.
レスありがとうございました.
440デフォルトの名無しさん:2014/01/19(日) 20:47:27.99
>>439
やっぱ馬鹿なんだな
お前みたいな奴が日本のIT産業をダメにしてんだよ
441デフォルトの名無しさん: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に帰れよドアホ
446デフォルトの名無しさん:2014/01/20(月) 10:35:12.20
ゴミは黙ってろ
447デフォルトの名無しさん:2014/01/20(月) 17:02:27.54
>>445
草生やしてんじゃねーよ。
半笑いのつもりか?
半笑いでバカをアピールする>>445哀れ。
448デフォルトの名無しさん: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.11
>>450
ある。
回答きたんだからさっさと消えてね。
452デフォルトの名無しさん:2014/01/24(金) 20:05:16.41
>>450
ないよ
453デフォルトの名無しさん:2014/01/24(金) 20:33:39.02
>>450
ここが参考になる
ttp://to-a.ru/LEeAgi
454デフォルトの名無しさん:2014/01/24(金) 20:46:52.82
>>450
ナイアルヨ
455デフォルトの名無しさん:2014/01/25(土) 15:26:50.61
その程度も自分で調べられないとか頭悪いんだろうな
調べたら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箇所まで差分を抽出したい

現実的な速度で動くうまい方法ないかな
464デフォルトの名無しさん:2014/02/05(水) 19:28:44.02
>>463
他人に頼る前提で始めるような馬鹿には無理。
465デフォルトの名無しさん:2014/02/05(水) 19:37:38.58
>>463
はぁ?
自分でやったけど何秒かかって、これが何秒以内に終わるようにとかも書けねーの?
本当にお前ゴミだな
リアルでもどうせその調子なんだろ
リアルでもゴミだと思われてるけど気付いてる?
466デフォルトの名無しさん: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文字とかでもう遅すぎて使えなくなる
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
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.06 ID:w/WZ2GYd
say "";
476デフォルトの名無しさん:2015/02/07(土) 15:14:06.33 ID:yYV1uKlQ
ネットで検索する時は単語をスペースで区切ってそのANDで結果を得るけど、
同じことを正規表現でやりたい時はどう書けばいい?
477デフォルトの名無しさん:2015/02/26(木) 19:17:26.46 ID:0RIBJGtF
「$s が hello と world の両方にマッチする」なら、単に

$s =~ /hello/ && $s =~ /world/

と書くだけじゃないの?質問がよく分からないのだけれども
478デフォルトの名無しさん:2015/02/26(木) 20:48:44.94 ID:G3LqtZtx
>>476
あえて無理やり正規表現のみでやるなら否定先読みを使う

if( /(hoge|piyo).*(?!\1)(hoge|piyo)/ ){ print "成功\n"; }
479デフォルトの名無しさん:2015/02/26(木) 21:43:04.63 ID:dwtaxn6g
否定の先読みなんかせんでも
print ‘foobar’ if /(?:foo.*?bar|bar.*?foo)/ ;
で良いんじゃねーのか
480デフォルトの名無しさん:2015/02/26(木) 21:54:30.24 ID:RGF9/3q7
入力がスペース区切りの文字列なんだよ
481デフォルトの名無しさん:2015/02/27(金) 00:27:41.82 ID:xTYPuOZ2
仮に検索エンジンみたいなのを書くにしても
何を対象にするのかとか、検索単位とかを決めてもらわんと書きづらいぞ
「同じこと」の通り「対象:Webサイト、単位:ページ」ならGoogleに投げりゃ済むし
482デフォルトの名無しさん:2015/02/27(金) 00:34:35.35 ID:dW0+IHnO
検索対象も文字列に決まってるだろ
正規表現でのマッチングだっつってるんだから

逃げてないで考えてみれ
483デフォルトの名無しさん:2015/02/27(金) 01:46:02.77 ID:xTYPuOZ2
>>482
文字列?
テキストでもファイルでもなく?
それって何に使うんだろか…結局、目的は何よ?って話だよ
もしかしたらもっと良い方法があるんじゃ?と勘ぐってしまうのよどうしても
484デフォルトの名無しさん:2015/02/27(金) 06:35:52.51 ID:dW0+IHnO
またよく判らん屁理屈を
検索の単位が文字列に対してで、それがどこから来たかは問題にならないだろ
まあ、大抵はファイルからだろうけど

で、ファイルならこんなツールがあるよ、みたいな感じで本題から逃げたいのが見え見え
485デフォルトの名無しさん:2015/02/27(金) 09:44:40.27 ID:xTYPuOZ2
>>484
いやまあ、文字列に対してなら

my $hit = 1;
for my $ptn (split(" ",$search)) {
$s =~ /$ptn/ or $hit = 0;
}

こんなんで出来ると思うけど、こんなんで本当に良いのか?
後出し条件とか大量に出てきそうな感じがするんだが
486デフォルトの名無しさん:2015/02/27(金) 20:22:44.34 ID:JIR4zlR2
お前は、「ワンライナーでどうやりますか」って質問に
スクリプト作成して答えるのか?

「正規表現でどうやりますか?」って質問には、
普通に正規表現で答えりゃいいだろうが。
実際、質問への答えは、
>>477->>479で終了してる。

後出しを心配するなら実際に後出しされてから
盛大に罵倒しろよ
487デフォルトの名無しさん:2015/02/28(土) 15:03:31.15 ID:6vZKnEo0
あえて制限をつけてパズルとして解くならともかく
現実的な解としては >>477 で十分だよな
488デフォルトの名無しさん:2015/02/28(土) 16:50:40.78 ID:05aMjvqG
元々の要求はただのスペース区切りだから、パラメータ数は不定で、
パラメータ抽出して、その全部に対してマッチングを繰り返すという当たり前の処理になる

でも、そんなことは最初から判っているのでわざわざ聞く筈がない

スペース区切りの文字列をそのまま使ってマッチングがしたいなら、
残念ながらperlの正規表現でそんなことは出来ない、が答えとなる
489デフォルトの名無しさん:2015/02/28(土) 17:32:00.47 ID:JKlRGoUv
本物のコミュ障だなぁ
粘着されてる>>476が、可哀想だわ。
490デフォルトの名無しさん:2015/02/28(土) 17:35:55.35 ID:e1yM9CPU
質問者のレベルまで勝手に想定するし、、、

>>476から読み取れるのは、拡大解釈しても
「ワンセンテンスの正規表現で書くにはどうしたらいい?」
程度だろーに
491デフォルトの名無しさん
◯正規表現で、AND検索の実装って、どうやんの?
×正規表現で、「スペースを使って」AND検索の実装って、どうやんの?

「わざわざ聞く筈がない」まで、分かってんなら、
自分の解釈の仕方が間違ってないか、
自問しろよ