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箱目
■ このスレッドは過去ログ倉庫に格納されています
2012/01/21(土) 10:56:39.03
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 て言われた)
なぜエラーが出たかわかった。自分でテスト用に切り出して作ったログファイルの
各行頭にスペースが入っていたからだった。(ありがち)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★2 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★6 [BFU★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★2 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 被爆者は「怒りが腹の底から湧いてくる」高市首相“非核三原則見直し報道”に被爆地で懸念や憤りの声《長崎》 [1ゲットロボ★]
- 【悲報】ネトウヨ「中国人観光客が減って観光しやすくなって良かったじゃん。俺は代わりに旅行しないけど」 [616817505]
- ホテル業界、高市のせいで中国から大量キャンセル 「大変厳しい状態。一刻も早い収束を願います」 [271912485]
- 【悲報】ネトウヨ「高市早苗のお陰でインバウンドが激減してそれだけで日本のGDPが0.3%押し下がる!日本を舐めるな!」 [616817505]
- 【正論】玉木雄一郎「高市さんの答弁は米軍が攻撃を受けた場合を前提としており、撤回するのは難しい」特定野党を完全論破 [519511584]
- 【高市悲報】日経、株安円安止まらない😭ああ…あ… [359965264]
- がん生存率、高まる。あきらめるな [792147417]
