[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 04/18 14:57 / Filesize : 169 KB / Number-of Response : 631
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 38箱目



1 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:22:12 ]
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
( WEBプログラミング板 pc11.2ch.net/php/ )

CGIの質問は答えが Perlと全然関係ない話に帰着する場合が
多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

www.perl.org/get.html
● 2008/09/21 現在の最新版(安定版): 5.10.0
● 2008/09/21 現在の開発版: 5.9.5

▼ 前スレ
Perlについての質問箱 37箱目
pc11.2ch.net/test/read.cgi/tech/1218449440/

リンク集は>>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは>>5-6 あたり


17 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 17:39:20 ]
>>16
cpan にあるなあ
ttp://search.cpan.org/~zenin/enum-1.016/enum.pm
求めるものかどうか知らんけど。

18 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 17:40:38 ]
>>17
あーこれグッドです。どうもありがとうございます。

19 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:03:50 ]
定数って正規表現中で使えないのか・・・当たり前だよね
やっぱりPerlならHashでやるのが一番いいのかもね

20 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:52:06 ]
(??{})

いや、なんでもない

21 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:13:37 ]
>>19
<q cite="www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html#Symbol_Tables">
シンボルテーブルの別の使い方は、“定数”スカラーを生成するためのものです。

  *PI = \3.14159265358979;

この後、$PIを変更することはできません。
</q>

#!/usr/bin/perl -w
use strict;
use constant FOO => 'foo!';
our $BAR; *BAR = \'bar!';
print "${\FOO}$BAR\n", eval { $BAR = 'bar?' } || $@;
__END__

22 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:30:46 ]
>>21
>>16 からの話の流れを読むと、
列挙型が欲しくて enum (>>17-18) を使ったけれど、enum の提供する定数はサブルーチンベースなのでパターン内に展開できない(>>19)。
それに対し >>20 が控え目に打開案を示した、という流れ。

シンボルテーブルベースの列挙型を新たに実装する手もあるし、
Readonly.pm を使う手もあるけど、
変にこだわりさえしなきゃ >>19 の通りハッシュで済む話だね。

23 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 06:39:52 ]
qb5.2ch.net/test/read.cgi/operate/1222311594/210

perlで書くとこうなる

24 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 11:14:17 ]
Perlを勉強してやる!


25 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 14:32:07 ]
>>23
read.cgiはCで書かれてるつーの。



26 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:14:43 ]
>>24
つ、通報しま

27 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:42:10 ]
>>23みたいに、内容の違うpageを自分の妄想と結びつけてソースだと言い張る
頭がおかしい人間がこの掲示板には多いよね。

>>23のリンク先は、「cでperlみたいに正規表現を使いたいんだけどどうすりゃ良いの?」
というひろゆきの質問スレなのに、それがわからない。

煽りでなしに、病院で診察を受けた方が良い。

28 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:54:38 ]
自分で掲示板作って
自分でそこで質問する、って
最強だよな。

29 名前:デフォルトの名無しさん [2008/09/27(土) 08:14:06 ]
do{last}while(1)
なぜこれがエラーになってしまうのでしょう?
do{last}for(1)
これはおkなのに

30 名前:デフォルトの名無しさん [2008/09/27(土) 10:17:16 ]
文字列がどれだけ合っているかを判別するにはどのようにしたらよいでしょうか?

以下のように
-------------
(比較元) 我が輩は猫である。

我が輩は人である。 -> 90% ほど合致。
我輩は猫である。  -> 90% ほど合致。
猫である我が輩は。 -> 5% ほど合致。
-------------
ように算出できないでしょうか?

31 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:27:16 ]
www.aoky.net/articles/steve_yegge/tour_de_babel.htm

「そしてもちろん、Perlにはそのほかにもたくさんデザイン上の
奇妙なところがある。たとえば「コンテキスト」を見るといい。そ
れはラリーがシェルスクリプトからコピーしたN変数ネームス
ペースやシジルによるデリファレンスのようなおかしな決断の
ぞっとする副産物だ。Perlでは、すべてのオペレータ、すべて
の関数、すべての操作が、その「コンテキスト」に従い、6つの
うちのランダムな1つの仕方で振る舞う。与えられたコンテキス
トにおいて特定の操作がどう振る舞うかを支配するルールや
ヒューリスティクスというのは存在しない。あなたは単にすべて
暗記しておくしかないのだ。

例がほしい? スカラーコンテキストでハッシュにアクセスすると
、分子が割り当てられたキーの数、分母がバケットの数となっ
ている分数を内容とする文字列が得られる。クジラのはらわた
だ。そう言ったでしょ。」

32 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:28:54 ]
>>31
を読んで、「ほんとかよ?」と思ったので実験してみた。

my $a;
my %b;
%b=qw (a b
c d
e f
g h);

$a=%b;
print "$a\n";

実行結果。
4/8

本当だ!
この仕様考えたヤツはいったい何が不満だったのか?

33 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:50:31 ]
>>30
Levenshtein距離とか

34 名前:デフォルトの名無しさん [2008/09/27(土) 19:33:23 ]
>>32
Javaで言えばただのtoStringじゃん

35 名前:デフォルトの名無しさん [2008/09/27(土) 19:38:22 ]
ついでに言えばperlのコンテキストもOOPの演算子オーバロードも(使う方からすれば)似たようなもの



36 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 20:54:49 ]
perlのかっちょええエディタを紹介して。
コードの自動補完とかできるやつ。

37 名前: ◆TWARamEjuA mailto:sage [2008/09/27(土) 22:49:21 BE:654023-2BP(7089)]
(・o・)ポカーン

38 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:04:10 ]
>>29
do ~ while 構文(及び while 修飾子)で last したければ
% perl -le '{ do{last} while (1) } ;'
みたくブロックで囲む必要がある。
詳しくは、 perlsyn の while の項を読め。
ちなみに next の時は、
% perl -le 'do{{next}} while (1) ;'

B::Deparse で syntax OK になる分タチ悪がね。
% perl -MO=Deparse -le 'do{last}while( 1 ) ; '
(略)
-e syntax OK

つか do ~ while 構文なんて使うなよ…

39 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:15:21 ]
「い」が抜けたorz...


40 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:27:27 ]
「でもいい」も抜けてたな。
酒飲んで書き込むもんじゃねえなあ

41 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 00:26:39 ]
>>29
while(1)・・・でいいのをわざわざdo・・・while(1)で書いてるくらいだから、
よっぽど、do-while文が好きだったんだな。どの言語の影響だ?

Perlのdo-while/untilループは通常のループ制御が使えんから、使い物にならんよ。
>>38みたく、みっともないことになる。

42 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 00:35:15 ]
Exporterを使って全関数をExportするにはどうしたら良いでしょうか?
@Exportに全関数名を入れるのは骨が折れるのでこの方法は避けたいです。

43 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 01:25:25 ]
正規表現で.+と.+?の違いはなんでしょうか?
前者は任意の文字が1個以上続くというのはわかるのですが、後者がわかりません。

よろしくお願いします。

44 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 01:59:56 ]
マンドクセー
最長と最短

45 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 02:26:47 ]
>>42
Perlは関数とか実行時に動的に割付可能な言語だから、いちいち名前を列挙するのが当然と思われ。
ま、俺もPerlあんま詳しくないんだけど、自動で全部というのはプラクティスとしてありえないと思う。

強引にやるなら、コンパイル時にシンボルテーブルのコードっぽいやつをとりあえず
@EXPORTに突っ込むことが考えられるが、こんなことやってるのいままでPerl関係のコードで見たことがない。
見たことがないということは、やらない方がいいということ。

@EXPORT = map {*{$_}{NAME}] grep {*{$_}{CODE}} values %PACKAGENAME::

PBPにサブルーチンにEXPORT属性を設定する方法が紹介されているので、ここらあたりで
妥協できないか。



46 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 08:59:51 ]
他のモジュールと関数が衝突すると痛いので、
オブジェクト指向化推奨されてる。
EXPORTするのは定数ぐらいにした方がいい。

47 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 09:47:27 ]
大量に定数定義するモジュールで45みたいなことやったわ。
全部大文字のシンボルを@EXPORT_OKに追加するとかそんなの。
いちいち列挙するのだるかったのでつい魔が差した


48 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:15:00 ]
perlはそのうちこうなる↓
namidame.2ch.net/test/read.cgi/news/1222604031/

49 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 01:05:31 ]
>>45
やはり全部書くべきですか。ただ面倒というだけで問題は無いのでひとまずはそれで行こうと思います。
PBPというのはPerl Best Practicesですね。まだ読んだことが無いので手を出してみます。

>>46
薄学のためオブジェクト指向についてまだよく分かってないのですが、
確かに全関数をエクスポートするくらいならオブジェクト指向で組めばよい気がしてきました。
まだ関数名の衝突という事態には当たったことはありませんが、
オブジェクト指向で組むことも考えてみようと思います。

50 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 08:03:59 ]
ときどき開発者の中には、特に Perl のプログラマーは、
PHPを「劣った」言語だと考える人がいます。
それについてはどう思いますか。

51 名前:デフォルトの名無しさん [2008/09/29(月) 11:08:45 ]
PHPっつたって、バージョン違えば別言語なんだからバージョン言ってもらわないと。
5.2と5.3のマイナーバージョン違いでさえ大幅に違うんだからさ。

52 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 11:40:15 ]
劣ったとは思わんがPerlや他の言語を元にWebに特化したわりには冗長だな
そしてプログラミングセンス的に劣った奴でも簡単に扱えるのは良いんだか悪いんだか・・・
Perl以上に出来る奴と出来ない奴の差が激しいかもね

無駄に関数多いけど新しいものをどんどん取り入れようとしてる姿勢は良いと思う
が、ますます冗長になっていく・・・

某社ではプログラマにはPHPは使わせてなかった
あんなのはHTMLのコーダーやデザイナーが埋め込みで使うスクリプトだ、と
極論ではあるがそういう使われ方が結構多いんじゃないか?


53 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 11:54:26 ]
PHPは成長中の言語だから、一概に言えない。
ただ、Perlと同じく継ぎ接ぎの酷さが見えてきた感じはする。

54 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:26:06 ]
ある程度以上メジャーになってしまうと、あとから大規模に言語仕様を弄るのは大変だからな。
同様の問題は、PerlやPHPに限らずRuby,PythonとかC/C++とかも多かれ少なかれ抱えてると思う。

55 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 07:11:06 ]
おまいら、eclipse + padwalker + epic
使ってる?



56 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 08:21:44 ]
builder.japan.zdnet.com/news/story/0,3800079086,20361311,00.htm
ここみたら、perlのエディターが

Perl

* EPIC
* PerlBuilder
* PerlComposer
* Perl Editor
* Perl Express
* Open Perl IDE
* OptiPerl
* Zeus

こんなに紹介されてるんだけど、どれが最強?

57 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 08:51:27 ]
1級perl検定

以下のコードのバグを見つけよ
(制限時間15秒)

---------------------------------------

for ( my $a=1; $a<=10; $a++ ) {
 print "$a\n" if $a=3;
}

58 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 09:01:22 ]
www.donzoko.net/doc/memo/unlikeperl.html
ここに書いてあるんだが、ひょっとして
モジュール同士で相性が悪いってことはあるのか?

もしそれが本当だとしたら、モジュールなんでもかんでも
いれたり使ったりすると原因不明のバグに悩まされることにも
つながりかねないのか?

59 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 10:08:24 ]
>>57
if $a==3 かな?
15秒以内でみつけたから、俺、上級?

60 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:06:08 ]
配列の任意の要素を削除するにはどうすればいいのでしょうか?

@arr = (1, 2, 3, 4, 5);
$del_element = 3;

($del_elementで指定した要素を削除する処理)

print "@arr"; #=> 1 2 3 5

61 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:08:48 ]
>>60
splice

62 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:21:49 ]
>>61
d
できました

63 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:41:24 ]
Perl::Critic
ってなんなのかなぁ?

64 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:48:14 ]
>>58
SwitchとAcme::Comment がソースフィルタタイプのモジュールだからだろ?
ソースフィルタタイプなんて一個でも気持悪い(元のコードを改変すんだぜ?)のに
モジュールの二段重ねとか、そりゃ危険は高かろう。

つか、フィルタタイプだろうとなかろうと、cpan.searchでフィックスしてない
バグくらいは閲覧してから入れるか否かの判断しろよ、、、

65 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 14:09:56 ]
blog.nqou.net/2006/11/20225449.html
ここに書いてある
perltidy
ってのをいれようと思ったんだが、
ActiveperlのPPMには入っていないようだ。

しかし、Acme::tidyというのが代わりに検索で
出てくるんだが、これでも同じなのか?



66 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 14:14:28 ]
googlewhacks.blogspot.com/2007_07_01_archive.html

いったいこれはなんだー

67 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 14:29:04 ]
>>65
自己解決した。
検索のときにハイフンを入れてなかった。
ハイフンいれたら検索で出てきた。

68 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 15:19:21 ]
perlcritic
使い方がいまいちよくわかんね。

69 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:15:02 ]
eclipse + padwalker + epic
でperlなのだが、

prin

って打ったときに、
print
printf

って候補を出してくれる、っていうのはできないの?

70 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:34:32 ]
RSS1.0、RSS2.0、Atom0.3のRSSを生成したいのですが、
オススメのモジュールなどありますでしょうか?
できればインストールが簡単(*.pmコピるだけとか)で扱いやすいので。

71 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 22:31:04 ]
UNIXタイムスタンプ→グレゴリオ歴に変換するにはどうすればいいのでしょうか。
localtime((stat 'hoge.png')[9]) としても、どうも変な変換になっているようなのです。

72 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:08:27 ]
CPANモジュールについてはここでいいですか?
Text::MeCabの最新版
search.cpan.org/~dmaki/Text-MeCab-0.20007/
がどーしてもMacOS Xにインストールできません。
Makefileの-arch ppcを削ったらmakeできましたが、
それをmake installしてもまともな結果になりません。
どなたか御存知ですか?

73 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:15:48 ]
>>71
scalar localtime((stat 'hoge.png')[9]) にすると希望どおりだとかいうオチでは。

>>72
前にCPAN on OS X で困ってる人が来ていろいろやりとりしてたら
「MacPortsで解決しました!」という出来事があったのでこわいのです。

74 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:02:08 ]
>>73
> scalar localtime((stat 'hoge.png')[9]) にすると希望どおりだとかいうオチでは。

マニュアルを見ると希望通りに出来ると云うオチでしょう。

75 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:14:32 ]
perlソースコードの1行目のshebangを置換させるようなプログラムを
以下みたいなone-linerで書きたいのですが

perl -pi.bak -e 's/#!.*/#!c:\\perl\\bin\\perl/ if($. == 1)' *.pl

$. の行数が、2つめのソース以降も値を引き継いでしまいます
なにかうまい方法はないでしょうか



76 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:03:19 ]
>>75

組み込み関数の eof を調べてみたらいいと思うよ。


77 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:19:21 ]
>>76
ありがとうございます
eofは使ったことがありませんでした
試してみます

78 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 07:41:10 ]
普通に丸呑みモードでいいやん?
perl -i.bak -0777pe 's/\A#!.*?\n/hoge\n/ ' *pl

79 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:05:27 ]
cgi掲示板なのですが、ログインすると文字化けしてまして、
コードがISO、西ヨーロッパなどとなってしまうのです。

そこで、headerの部分にcharset=を含めようとしてるのですが、
何度やっても、500エラーになってしまいます。


sub header {
print "Content-type: text/html\n\n";
print "<!--//HEAD//-->\n";
print "<html><head>\n";
print "<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">\n"
print "<title>CGI Control Panel</title>\n";


print "<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">\n"

を追加して日本語になるように、お願い致します。


80 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:26:15 ]
>79
WebProg板へ行った方が的確な回答が得られるんじゃないかな。


で、" " の中で、更に " " を使うな。
人間ならともかく、コンピュータはどこまでが " " の範囲なのか理解できない。


81 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:27:33 ]
すでにWebProgにマルチしてるよコイツ

82 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:09:29 ]
質問です。ActivePerlをインストールしコマンドラインでppm install DBD::mysqlを実行したのですが
ppm install failed: Can't find any package that provides DBD::mysql
というエラーメッセージが出ます

DBD::mysqlはリポジトリから無くなってるのでしょうか?

83 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:32:19 ]
追記:PERLバージョン5.10.0です
新バージョンに対応してるDBD::mysqlがないということでしょうか

84 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:29:38 ]
Active Perl 5.8.8 では ppm install DBD:mysql できるぞ。
無理して 5.10.0 使わんでもいいんじゃない?

85 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:47:26 ]
>>82
cpan使えば?



86 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 12:29:01 ]
pc11.2ch.net/test/read.cgi/prog/1221751414/60
これはどういうことだ

87 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 12:50:24 ]
VB、Java、最近だとruby、このあたりは、プログラマに向いてない
人間の比率が高いから、採用の目安としては使えない、ってことじゃないかな。
昔のコボラみたいに融通が利かない人間を採ってもあとあと困るし。

88 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 17:40:03 ]
Mail::Sendmail

これの正しい発音は、

メール コロンコロン センドメール

で合ってる?

89 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 18:39:13 ]
滅入る 殺殺 千度滅入る

90 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:00:16 ]
Acmeはちゃんとアクメって読めよ

91 名前:デフォルトの名無しさん [2008/10/04(土) 19:27:09 ]
ファイルを読み込むとき、ファイル名を指定する。
log.txt
ここで質問。ファイル名が連番になっていても 順に読めるのでしょうか?
log001.txt
log002.txt

open(IN, "log.txt");
print while (<IN>);
close(IN);
log003.txt

92 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:34:12 ]
はあ

93 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 20:34:36 ]
日本語でおk

94 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 20:47:45 ]
globれ

95 名前:デフォルトの名無しさん [2008/10/04(土) 22:27:56 ]
だから
open(IN, "log001.txt"); 
print while (<IN>); 
close(IN); 

open(IN, "log002.txt"); 
print while (<IN>); 
close(IN); 

open(IN, "log.003txt"); 
print while (<IN>); 
close(IN); 

って書くと面倒でしょう?

ファイル名が連番になってて 順に読めないのかどうか?が知りたいのですよ。



96 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:30:44 ]
200個のファイルを読み込みたいのだよ。
200個分のファイルを読むように ソースコードを書くのが 手間がかかりすぎるやん?
2000行ぐらい書くことになるかもしれない。
だから、 ファイル名を連番にして、 
200行ぐらいの短くて分かりやすいコードは書けないのでしょうか?

97 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:33:04 ]
>>91
my $a;
$a="log001";
print "$a".".txt\n";

$a++;
print "$a".".txt\n";

これちょっと実行して結果見てみ。

98 名前:デフォルトの名無しさん [2008/10/04(土) 22:36:07 ]
>>94
なかった

99 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:37:58 ]
>>97
それ!それです。
マジ助かる。ありがとうございました!!

100 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:37:58 ]
>>98
何がないんだよ

101 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:41:07 ]
globでえーやん

102 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:02:00 ]
助かるってことはループは使えるのかな。globもないらしいしよくわからない。
例によって $a は(ry ついでに "$var" って(ry

103 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:03:50 ]
$varなんかどこに書いてあるんだよ

104 名前:102 mailto:sage [2008/10/04(土) 23:05:46 ]
じゃあ元通りの "$a"

105 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 04:55:51 ]
>87
改行の仕方がおかしいせいで別の意味に取れる



106 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 05:25:14 ]
>>102
つかこの程度の発想が出来ないとプログラムセンス的になぁ・・・


107 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:03:55 ]
かなり致命的だよな。
そこそこスジの良い人なら、仮にPerlが初めて触った言語でも
勉強3日目には卒業してるレベル。

108 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:14:19 ]
オレと同期入社の女子社員は
>>95みたいなプログラムを本当に書いてた

109 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 10:24:45 ]
質問者もひどいが回答者もひどいという話か

110 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:15:39 ]
if文条件部の正規表現で、gオプションを付けているのをどこかで見たのですが、別に付けなくても
いいような気がするのですが、何か意味があるのでしょうか?

if ( /%[^%]*?%/g ) { ・・・ }

111 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:57:19 ]
試してないけど、マッチ情報の取得とかで変わるんじゃない?


112 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:44:45 ]
if じゃなくて while の条件式じゃないのかな。

113 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:38:43 ]
言われてみれば確かに if で g を使うのは変だよな。while ならともかく。
たぶん、ついうっかりやってしまただけだろ。特に意味など無いと思うよ。

114 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:57:42 ]
Windows、ActivePerl5.8.8 です。
data1.txtは、Shift-JISで改行は\x0D\x0Aです。
以下のコードを実行すると、data2.txtの改行が、\x0D\x0D\x0Aとなりますが、何故そうなるのでしょうか?

open IN, "<:raw", "data1.txt";
open OUT, ">:crlf", "data2.txt";
print OUT <IN>;
close IN;
close OUT;

115 名前:デフォルトの名無しさん [2008/10/07(火) 12:46:41 ]
久し振りにPerl/Tkをやったら、すっかり忘れている。



116 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:48:52 ]
>>114
:crlf は、0x0A を出力する時に 0x0A → 0x0D, 0x0A という置換をする。
(入力時は、0x0D, 0x0A を 0x0A に置換する)
:raw は、何の変換もしない。

おそらく data1 が 0x0D, 0x0A なテキストで、これがそのまま無変換で読み込まれ、
出力する時に <0x0D> <0x0A> → <0x0D> <0x0D, 0x0A> と変換されている。

117 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:58:49 ]
>>116
なるほど、そういうカラクリですか
サンクス






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<169KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef