Perl言語に詳しい人に質問!
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG計算を行うにはどうすればよいでしょう?
もちろん2乗は「(x+1)**2」なんて事は承知してますが、
このまま計算するとモロにエラーw(当たり前)
ちなみに欲しい出力結果として、
前者は「x^2+2x+1」後者は「x^2+3xy+2y^2」。
分かる方お願いしますm(_ _)m
0002デフォルトの名無しさん
NGNG単発質問するな。
終了。
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGやっぱこのプログラム組むのって難しいもんかな??
一度組んでみたいんやけども。
0006デフォルトの名無しさん
NGNGC++で、ひたすら演算子をオーバーロードして、多項式オブジェクトを
返すようにすれば出来ない事も無いんじゃない?
つーか俺の大学の某研究室で、上のようなことをやりつつ、さらに微分まで
同時に計算する、みたいなパラダイムを研究している教授がいたはずだか。
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG既存の Perl スレで質問してください。
Perlについての質問箱 2箱目
http://pc3.2ch.net/test/read.cgi/tech/1033688230/
0009デフォルトの名無しさん
NGNGprint "\n";
print (x*x)+2*x*y+2*(y*y)
0010デフォルトの名無しさん
NGNG0011鯣@暇暇團No.52 ◆F52DmOxJlc
NGNGexit 0 unless (@ARGV);
$ARGV[0] =~ s/\(//g;
$ARGV[0] =~ s/\)//g;
$ARGV[0] =~ s/ //g;
($hoge, $hero) = split(/\*/, $ARGV[0]);
@hoge = split(/\+/, $hoge);
@hero = split(/\+/, $hero);
@result = undef;
for ($i = 0; $i <= $#hoge; $i ++) {
for ($j = 0; $j <= $#hero; $j ++) {
$hogen = int($hoge[$i]);
$hogen = 1 unless($hogen);
$hogec = $hoge[$i];
$hogec =~ s/\d//;
$heron = int($hero[$j]);
$heron = 1 unless($heron);
$heroc = $hero[$j];
$heroc =~ s/\d//;
$resultn = $hogen * $heron;
0012鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG$resultc = "";
} elsif ($hogec eq $heroc) {
$resultc = $hogec . "^2";
} else {
if (ord($hogec) < ord($heroc)) {
$resultc = $hogec . $heroc;
} else {
$resultc = $heroc . $hogec;
}
}
$resultc =~ s/ //g;
push(@result, $resultn . $resultc);
}
}
for ($i = 0; $i < $#result; $i ++) {
for ($j = $i + 1; $j <= $#result; $j ++) {
$in = int($result[$i]);
$ic = $result[$i];
$ic =~ s/\d//;
0013鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG$jc = $result[$j];
$jc =~ s/\d//;
if ($ic eq $jc) {
$result[$i] = sprintf("%d%s", $in + $jn, $ic);
$result[$j] = 0;
}
}
}
# ここで @result をソートする。未完。
$out = undef;
foreach (@result) {
$_ =~ s/\d// if (int($_) == 1);
$out .= sprintf("%s + ", $_) if ($_);
}
$out =~ s/ \+ $//;
print "$out\n";
__END__
>>1
いいヒマつぶしになったよ。
0014鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG数式を " " でくくってコマンドライン引数としてわたす。
( ... ) * ( ... ) の形式のみ対応。
括弧内の項はいつくあってもいい。
0015鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0016鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0017鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0018鯣@暇暇團No.52 ◆F52DmOxJlc
NGNGあさあさ。
0019ギコ猫旅団@グラナダNo.275
NGNG〜√グラ(,,゚Д゚) 釣られてみまつた
(/(/ ̄U U
しかもこの板はくっきがいるのでつね・・・
0020ギコ猫旅団@グラナダ ◆no275G1MCo
NGNG0021鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG上の方ではトリップだけで割とまじめに振舞ってます。
0022巡礼者 ◆ejITJunReI
NGNGってここ何板?
0023鯣@暇暇團No.52 ◆F52DmOxJlc
NGNGプログラム板です。
簡単な質問に答えて自己満足に浸ってます(-w-)
0024デフォルトの名無しさん
NGNG0025鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0026デフォルトの名無しさん
NGNGperl5で入ったのかな。手元にあるラクダ本には出てないんだけど。
0027デフォルトの名無しさん
NGNG0028鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG遅レスすまそ。仕事で二泊の当直でしたw
----perlmanjより引用----
>pos SCALAR
>対象の変数に対して、前回の m//g が終了した場所のオフ
>セットを返します。 そのオフセットを変えるために、変
>更することができます。
----perlmanjより引用----
つまり $s = "abacadaeaf" について $s =~ m/a/g を行ったとき
"a" は 1byte 目にあるので pos($s) は 1 を返します。
ここで pos($s) ++ として $s =~ m/a/g すると pos($s) は 3 を返します。
サンプルプログラムと実行結果を示します。
$s = "abacadaeaf";
$s =~ m/a/g;
printf("%d\n", pos($s));
pos($s) ++;
$s =~ m/a/g;
printf("%d\n", pos($s));
__END__
1
3
ああ、マジレスしてしまったよ。
0029デフォルトの名無しさん
NGNGtnx
gを付けなきゃ関係ないわけね。
> ああ、マジレスしてしまったよ。
んじゃまた底のほうでマターリとたゆとうててくだちい。
0030鯣@暇暇團No.52 ◆F52DmOxJlc
NGNGg 無しで試したら役に立たなかったよ。
指摘されて気付きました。どもです。
0031鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0032鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0033鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0034雲@暇暇團No.27 ◆KUMO4pwBF6
NGNG0035鯣@暇暇團No.52 ◆F52DmOxJlc
NGNGム板は底の方は静かでつ。
0036デフォルトの名無しさん
NGNG0037鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0038デフォルトの名無しさん
NGNG0039鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG海老しか知らなかったよ(^^;;
0040デフォルトの名無しさん
NGNG読めなくてkakasiに聞いちゃったよ。
0041鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG「するめ」と入力してスペースバーを押したら出てきました。
ことえりマンセーvv
0042鯣@暇暇團No.52 ◆F52DmOxJlc
NGNGでも午後から出勤です。
学生のころは無責任に休めてよかったなと。
0043デフォルトの名無しさん
NGNG一瞬、上げちゃってこれを底にしようかという誘惑にかられたけど、我慢しますた。
0044名無しさん@Meadow
NGNG0045デフォルトの名無しさん
NGNGでは、崖っ淵ギリギリ進行で。
0046鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG昨晩は夜勤だけやって今朝早々に帰ってきました。
底スレにも書き込んできました。
引き続き潜行します。
0047デフォルトの名無しさん
NGNG0048鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0049デフォルトの名無しさん
NGNG0050鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG一人でもム板でかまってくれる人がいただけ嬉しいです(藁
ずっと一人上手しなきゃいけないかと思ってました(^-^;
0051デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >_∧∩
_/し' //. V`Д´)/ ← >>48
(_フ彡 /
0052鯣@暇暇團No.52 ◆F52DmOxJlc
NGNGヤター(・∀・)底ダー!!
0053デフォルトの名無しさん
NGNG0054鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0056デフォルトの名無しさん
NGNG冬休みだなぁ。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGまた沈みますヨー。
0060デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG投稿された本文の中に何らかのURLが入っていた場合、それをリンク表示
させる記述はどうやったらよいのでしょうか。この2chのようにです。
下らない質問ですいませんが、どなたかマジレスして頂ければと思います。
宜しくお願いします。
0063デフォルトの名無しさん
NGNGアンカー
$text =~ s/(http:[\/\w\d\.\?\&@-~=:%]+)/<a href=\"$1\">$1<\/a>/g;
http から始まる英数字と _ / . ? & @ - ~ = : % の連続を見付けてアンカータグに置換。
他に URL を構成しそうな文字があれば [ ] の中に追加すればいい。
まともな質問で嬉しいので age w
ごめん、修正。
$text =~ s/(http:[\/\w\.\d@\-~=:%\?\&]+)/<a href="$1">$1<\/a>/g;
- の前にバックスラッシュつけないとダメみたい。
恥ずかしいので sage w
0067デフォルトの名無しさん
NGNGちなみに、$1ってのは環境変数なんですかね…?
参考までに、知ってたら教えて下さいまし。
$1 は「一番目の () がマッチした部分文字列」。
() が複数あれば $2, $3 .. なども使える。
例:
$text = 'foo bxr bxz';
$text =~ s/(\w)x(\w)/$1a$2/g;
print "$text\n";
結果:
foo bar baz
ちなみに本スレw
http://pc3.2ch.net/test/read.cgi/tech/1033688230/
0069デフォルトの名無しさん
NGNG$1?$9には、正規表現のマッチ結果が自動的に格納される。
0070あぼんぬNO.53 ◆amyW0ABONE
NGNG0071鯣@暇暇團No.52 ◆F52DmOxJlc
NGNGこのスレ底にいたんだけどあげられてしまいました。
またぼちぼち潜行するです(-w-)
0075あぼんぬNO.53
NGNG大晦日ですヨー。
潜りますヨー。
0077デフォルトの名無しさん
NGNGif (&hoge){print &hoge};
と
$hoge = '100000';
if ($hoge){print $hoge};
って、どっちの方がパフォーマンス良いの?
0078デフォルトの名無しさん
NGNGそれぞれ for ($i = 0; $i < 10000000; $i ++) で時間計ってみた。
上:37秒。
下:30秒。
0080鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0081鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG0082あぼんぬNO.53
NGNG0084鯣@暇暇團No.52 ◆F52DmOxJlc
NGNG大丈夫、我々團員は常にトリップ着用。
本人と騙りの区別は一目瞭然です。
しかし騙りは騙りとして生暖かく受け入れるのが良いと思います。
ってゆーか糞スレageるなYO!!>>82 (・∀・)コトヨロー!!
やほー。こんにちはー。
偽あぼんぬさんも入團しないかな?w
0087デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG009390
NGNG削除するほどではないけど一応注意ということで。
009490
NGNGおまえらは板の目的に沿った使い方をしてるんじゃなく
ただ糞スレに棲み付いた害虫に過ぎないわけで
立派な荒らしなわけで
でかい口きくな、しねよ
0096デフォルトの名無しさん
NGNGÅ
/ \
ヽ(´Д` )ノ
( へ)
くω
Perl の質問はこちらへどうぞ。
http://pc3.2ch.net/test/read.cgi/tech/1041205885/
__END__
荒らしちゃってごめんよー(つД`)
009890
NGNGおまえのかーちゃんでーべーそっ
おまえのかーちゃんでーべーそっ
おまえのかーちゃんでーべーそっ
おまえのかーちゃんでーべーそっ
おまえのかーちゃんでーべーそっ
0099IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0100あぼんぬNO.53 ◆amyW0ABONE
NGNG0101デフォルトの名無しさん
NGNG雇ってくれません??
0102デフォルトの名無しさん
NGNGぶっちゃけ2chはどれくらいもちますか?
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNGまとめて引越ししたらいいだけなんだけどね
0107デフォルトの名無しさん
NGNGそんなに高いだろうか?ちくり板とかを除けばそうでもないと思うが。
でもUNIX板やプログラム板とかは厳しいかなー
有益な回答レスが減ってしまうかも。
0108デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0109デフォルトの名無しさん
NGNG相手がその程度で、わざわざ内容証明や令状とって訴えに来るような粘着君なら、狂犬にでも噛まれたと思って諦めれ。
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGまた明け方に現われる・・・・(´Д⊂)
0112デフォルトの名無しさん
NGNGいや、そんなことはないですよ。
0113デフォルトの名無しさん
NGNGIP記録スレは有るよ
IP記録実験2
http://news2.2ch.net/test/read.cgi/newsplus/1042030554/
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGょぅι゛ょネタとかSSとかね。
PTAが見たらぶち切れだよ(w
0118デフォルトの名無しさん
NGNG883 :名無しさん :02/12/28 10:40 HOST:
メグ ◆TOKIQKfFYAさん このスレ見てるか判らないけどちょっとお呼び出しです・・・
★ボランティアさんと一緒★ Part8
http://qb.2ch.net/test/read.cgi/accuse/1039532593/563-
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGインペリアル・パカ
ならお売りいたしましょうか?
0121デフォルトの名無しさん
NGNGうまく動いていますよ
これからトラブルは当事者間で解決してもらう方針です。
0122デフォルトの名無しさん
NGNG踏み台にされた奴が訴えられる?
0123デフォルトの名無しさん
NGNGIP記録されると明言されているにも関わらず糞スレは毎日嫌と言うほど立つよね。。
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNG世の中はドス黒いってことを漠然と印象づけてくれたことぐらいだろうね。
で、そんなことは大人になれば誰でもわかっていくことだろうし。
漠然としたもの以上に、具体的に2ちゃん発で成功した告発なんてあったっけ?
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG嗚呼、哀しい。
0132デフォルトの名無しさん
NGNGリモートホストって、用語辞典に載ってないよ
誰かおせーて
0133デフォルトの名無しさん
NGNG96%の人が、2ちゃんねるの存在を知っていると言う事?
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG批判要望?
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG絶対勝てるし。
0139デフォルトの名無しさん
NGNGの522からなんか出てるんですけど
2chってこんなに変わるの?
0140デフォルトの名無しさん
NGNG閲覧してなくとも 2ch で書かれていることで名誉毀損を受けているという事実があれば
実際に閲覧していなくとも削除要求は有効だ。
そして、2ch は既に名誉毀損の要件となり得る公共のメディアとして認知度がある、
と裁判所が判断した。わかる?
0141デフォルトの名無しさん
NGNG0142山崎渉
NGNG0143デフォルトの名無しさん
NGNG2ちゃんねるの幹部から得た話として証言する。
「2ちゃんねるは、運営者や幹部などが
それぞれ別々に会社を作りカネの流れを見え難くしているが、
実際の資金源は複数の大手通信会社系からの調査費名目のカネ。
月額で計約700万円と言い、年間にすれば1億円近く。
額はともあれ、これは通信会社系的には、
ぼう大なトラフィックを調査すると言う表向きの理由が一応は立つ。
自社系に都合の悪い書き込みがされた時に優先的に削除してもらうことも期待している」と前置きし
「通信会社系の削除の期待も含めて、2ちゃんねるは総会屋と同じになっている」と言うのだ。
0144山崎渉
NGNG0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>149
0151山崎渉
NGNG0152山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0153デフォルトの名無しさん
NGNGPerlの 'l'の意味を考えてみろ。
0154デフォルトの名無しさん
NGNG0155山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG0160山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0161山崎 渉
NGNG0162山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0163デフォルトの名無しさん
NGNGDate: Thu, 18 Sep 2003 02:34:15 GMT
これを
+9時間するために1900年からの秒数へ変換する必要がある
1900年からの秒数にするにはどうすればいい?
0164デフォルトの名無しさん
NGNGTime::Local
0165デフォルトの名無しさん
NGNGありがと♪
0166デフォルトの名無しさん
NGNG<img src="hoge">hogehoge<br><a href="hoge/">hogehoge</a><br>
となってるやつから"<"と">"でくくられた所だけを取り出したい
どうすればいい?
・"<"と">"の間に改行コードがある場合もある
・"<"と">"でくくられたやつの数は固定ではない
0167デフォルトの名無しさん
NGNGそれぐらい誰だってできる
0168デフォルトの名無しさん
NGNGエディタでファイルを開く。
<を と置換。
>を と置換。
以上。
0169デフォルトの名無しさん
NGNGx = 123; #例えば
A = x+1;
print A**2,"\n";
#(x+y)*(x+2y)
x = 1;y=2;#例えば
A = x+y;
B = x+2*y;
print A*B,"\n";
これでいいのだろうか。
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG落書きはメモ帳に。
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG1,3,5,7,9
}else{
2,4,6,8,10
}
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGそういう手もあったか。
0176デフォルトの名無しさん
NGNGuse Jcode;
my $odd = "\xb4\xf1\xbf\xf4";
my $even = "\xb6\xf6\xbf\xf4";
my $str = "偶数";
my $euc_str = Jcode->new($str)->euc;
if ($euc_str eq $odd){
print "Odd.\n";
} elsif ($euc_str eq $even){
print "Even.\n";
} else {
print "Invalid.\n";
}
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG}else{
}
なにか間違ってるかも知れん
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGopen(COM1, "+>COM1") or die "Can't open COM1: $!";
read($Port,$response,1);
ってやると永久に待っているのですが、10secで
タイムアウトなんて出来ないんですか?
0184デフォルトの名無しさん
NGNGselect
0185デフォルトの名無しさん
NGNGそんなんで、分かるかボケ
0186デフォルトの名無しさん
NGNG2ch に来たばかりの中学生なんだろか。
0187デフォルトの名無しさん
NGNG2chに居座って引篭もってるお前より、マシ
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG(´-`).。oO(組込関数である事ぐらいは知っておいて欲しいものだ…)
http://perldoc.com/perl5.8.0/pod/func/select.html
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlipc.html#UDP_Message_Passing
(´-`).。oO(Win32じゃ使えんと思うがな…)
0190デフォルトの名無しさん
NGNGだから何?
他人の知らない事、知ってるからって偉そうにしないでよ。
0191デフォルトの名無しさん
NGNGあぁ、ごめん。
組込関数のリファレンスぐらいは調べて欲しいものだ、と書くべきだったな。
http://perldoc.com/perl5.8.0/pod/perlfunc.html
alarm とシグナルの組み合わせが駄目なら、fork して子プロセス側で
open し、親でカウントして時間が来たら kill するという力業で何とか
ならんか?
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGif (!($input_socket && $input_socket->connected())) {
$input_socket = $server_socket->accept();
} else {
クライアントが接続したときの処理
}
別の処理
}
とやると
TCP 127.0.0.1:6900 127.0.0.1:1030
TCP 127.0.0.1:1030 127.0.0.1:6900
こんな感じに二重接続してるんだがどうにかならんか?
TCP 127.0.0.1:6900 127.0.0.1:1030
こうしたい
0195デフォルトの名無しさん
NGNG存在するんでしょうか?教えてください。よろしくおねがいします。
0196デフォルトの名無しさん
NGNGhttp://perldoc.com/perl5.8.0/pod/perlcompile.html
ちなみにココは廃棄スレ。以後、Perl の話題はこちらへ。
http://pc2.2ch.net/test/read.cgi/tech/1068051036/
0197195
NGNGありがとうございました。へぼいSOHOなんで困ってました。
0198デフォルトの名無しさん
NGNG最近始めたばっかりで、漏れ厨房なんだが、理科の元素記号覚えるテストがでた!
だからお遊び用で作ってみたんだが・・・というか作りかけ・・・
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
#↓作りかけだから
#require 'cgi-lib.pl';
#&ReadParse( *form );
$mode = int rand(2);
$rand = int rand(5);
@atom = ("H","O","Cl","C","N");
@molecular =("水素","酸素","塩素","炭素","窒素");
0199デフォルトの名無しさん
NGNGforeach (@no0){
if ($_ eq "$rand"){
$rand = int rand(5);
}
else{
$key = "$atom[$rand]";
$mode = "物質";
unshift(@no0,"$rand");
last;
}
}
}
else{
foreach (@no1){
if ($_ eq "$rand"){
$rand = int rand(5);
}
else{
$key = "$molecular[$rand]";
$mode = "元素記号";
unshift(@no1,"$rand");
last;
}
}
0200デフォルトの名無しさん
NGNGprint <<"EOM";
$answer<BR>
$ask<BR>
<BR>
「$key」の$modeは何でしょう?<BR>
<FORM METHOD="POST" ACTION="script.cgi">
<INPUT type="hidden" name="no0" value="@no0">
<INPUT type="hidden" name="no1" value="@no1">
<INPUT TYPE="text" NAME="name">
</FORM>
EOM
__END__
#↑このENDがおかしいって言ってくるんだ・・・ じゃっ
最後のENDがおかしいって出るんだが・・・
もう一度言っておくが、お遊び用で、作りかけだからな。
サブルーチン使った方がいいところあるけど、修正めんどくさい・・・・
たのむっ、ドコがおかしいのか教えてくれ。(俺の頭はおかしくないからな。)
マジでタスケテッ!
0201デフォルトの名無しさん
NGNGhttp://www5a.biglobe.ne.jp/~n_rieko/perl/environment.htm#chapter2
それと >>196 を声に出して10回読め。
0202デフォルトの名無しさん
NGNG10 回っていうリアルな数に笑った
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGキーワード検索作っているのですが検索単語が空白だと
全件表示されてしまいます。
どのように作ったらそれを回避できるのでしょうか
よろしくおねがいします。
0205デフォルトの名無しさん
NGNG検索語がブランクなら
エラーメッセージを出して
検索しなければよい。
0206デフォルトの名無しさん
NGNG*data = GetCookie($ENV{'HTTP_COOKIE'});
@w = split(/\,/, $data{cookie_mkdia});
$cdata1 = @w[0];
$cdata2 = @w[1];
$cdata3 = @w[2];
}
else {
$cdata1 = '$name';
$cdata2 = '$mail';
$cdata3 = '$address';
}
print "Set-Cookie: cookie_mkdia=$cdata1\,$cdata2\,$cdata3\,; expires=$time_up\n";
sub GetCookie
{
local($cookie) = $ENV{'HTTP_COOKIE'};
local(*data, @cookie, $key, $val);
@cookie = split(/ /, $cookie);
foreach (@cookie) {
($key, $val) = split(/=/);
$data{$key} = $val;
}
return *data;
}
と書いてみたのですが・・、動きません。何故ですか?
Cookieムズカシイです・・・。
0207デフォルトの名無しさん
NGNG誤 正
*data %data
@w[0] $w[0]
@w[1] $w[1]
@w[2] $w[2]
これでやるよろし。
0208デフォルトの名無しさん
NGNG%data = GetCookie($ENV{'HTTP_COOKIE'});
@w = split(/\,/, $data{cookie_mkdia});
$cdata1 = $w[0];
$cdata2 = $w[1];
$cdata3 = $w[2];
}
else {
$cdata1 = '$name';
$cdata2 = '$mail';
$cdata3 = '$address';
}
$cooky = "name=$cdata1\,mail=$cdata2\,address=$cdata3\,";
print "Set-Cookie: cookie_mkdia=$cooky; expires=$time_up\n";
sub GetCookie
{
local($cookie) = $ENV{'HTTP_COOKIE'};
local(%data, @cookie, $key, $val);
@cookie = split(/ /, $cookie);
foreach (@cookie) {
($key, $val) = split(/=/);
$data{$key} = $val;
}
return %data;
}
としたのですが・・・。やはりダメでした・・・。何故でしょう??
0209デフォルトの名無しさん
NGNGサブルーティンが後ろにあるやから
&GetCookieやろ!(&は小文字や)
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNGでも、やはりダメでした・・・。
因みに、入力フォームは、
<input type="text" name="name" value="$name" />です。
若しかして、、、$nameに$cdata1が代入されてないのですか??
0212デフォルトの名無しさん
NGNG如何すればよいのか・・、具体的に教えて戴けると有難いのですが。
0213デフォルトの名無しさん
NGNGif ($host = $ENV{'REMOTE_HOST'} eq '') {
$host = $ENV{'REMOTE_ADDR'};
} else {
$host = $ENV{'REMOTE_HOST'};
}
if ($host=~/^(\d+)\.(\d+)\.(\d+)\.(\d+)/) {
$host = &nslook($host);
}
#-------------------------------------------------------------------------#
# ■ IPを変換 [ nslook ] ■ #
#-------------------------------------------------------------------------#
sub nslook {
my ($x) = @_;
my ($ip,$addr);
if ($x =~ /([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/) {
$ip = "$1.$2.$3.$4";
$addr = (gethostbyaddr(pack('C4',$1,$2,$3,$4),2))[0];
if ($addr ne "") {
return $addr;
} else {
return $ip;
}
}
return "$x";
}
print OUT "$date<>$name<>$sub<>$com<>1<>$email<><>$FORM{mode3}<>$host<>\n";
print OUT "$date<>$name<>$com<>$resno<>$email<><>$shouryaku<>$host<>\n";
でいいはずですよね?表示されないのですがどこに問題があるのでしょう・・・
0214デフォルトの名無しさん
NGNGmy @data = ($ENV{ HTTP_COOKIE } =~ m/cookie_mkdia=([^ ]+)/)?
split /,/, $1:
($name, $mail, $adress );
print "Set-Cookie: cookie_mkdia=$data[0],$data[1],$data[2],; expires=$time_up\n";
}
0215デフォルトの名無しさん
NGNGあなたの質問はWebProg板ですべきだな。
ま、一応答えておく。
そのスクリプトは、ホスト名が空なら、IPからホスト名を引き出してログに記録している部分。
gethostbyaddrでホスト名が返ってこない場合、IPをログに記録している。
「IPを見られるようにするには」という質問なら、こんなマンドクセー事せずに、
print OUT "$date<>$name<>$sub<>$com<>1<>$email<><>$FORM{mode3}<>$ENV{'REMOTE_ADDR'}<>\n";
とかでIPをログに記録すればいいじゃん。
それを見えるところに表示したいというなら、WebProg板逝け!
0216デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219214
NGNGmy @data = ($ENV{ HTTP_COOKIE } =~ m/cookie_mkdia=([^ ]+)/)?
split /,/, $1:
($name, $mail, $adress );
$cooky = "name=$data[0],mail=$data[1],address=$data[2],";
}
print "Content-type: text/html\n";
print "Set-Cookie: cookie_mkdia=$cooky; expires=$time_up\n";
#html部分出力
これで、動かんかったら俺にはわからね。
0220214
NGNGprint "Set-Cookie: cookie_mkdia=$cooky; expires=$time_up\n";
print "\n";
#html部分出力
0221デフォルトの名無しさん
NGNG未だ、、ダメみたいです。。若しかして$time_upに問題ありですか??
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time + 60*60*24*30);
@day = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
@month = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
$time_up = sprintf("%s\, %02d\-%s\-%04d %02d:%02d:%02d GMT", $day[$wday], $mday, $month[$mon], $year+1900, $hour, $min, $sec);
です。
0222デフォルトの名無しさん
NGNGでも読んでマターリしる
0224デフォルトの名無しさん
NGNGuse XXX;
とした場合、XXXの絶対アドレスを指定する方法を教えて下さい。
特定のディレクトリにあるモジュールを使いたいのですが、カレント
ディレクトリでは無いため、読み込みが出来ない模様です。
おながいしまつ。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG#!usr/local/bin/perl -IC:/Document(ry/N224
use XXX;
C:/Document(ry/N224/XXX.pmを読める
0227デフォルトの名無しさん
NGNGできますた!
どーもです。
0228デフォルトの名無しさん
NGNG225が書いたようにlibモジュールを使うのが王道
use lib 'C:/Document(ry/N224';
use XXX;
で226と同じことができる
もしくは@INCに直で書き込み
BEGIN { push(@INC, 'C:/Document(ry/N224') }
とか
226のはかなりの裏技
もう伊藤家並ですよ
0229デフォルトの名無しさん
NGNG>226のはかなりの裏技
ケッ、perl -helpで出てくるもんが何で裏技なんだよ。
嘘ぶっこいてんじゃぁねぇよ。
0230デフォルトの名無しさん
NGNG一行目の魔法のコメントに長さの限界があるOS(UNIX系)や、
最初から魔法のコメントを無視する腐ったOS(Windows)が蔓延している現状を考慮すると
use lib 以外の選択肢は無いのではないだろうか。
0231デフォルトの名無しさん
NGNG$ cat x.pl
#!perl -I/tmp/hoge
print $INC[-1],"\n"
$ perl x.pl
/tmp/hoge
0232デフォルトの名無しさん
NGNG何ウダウダ言い訳してんだよ、糞して寝ちまいな
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNGまた嘘つきが。呆れ返っちゃうね。
座りションベンしてそのまま寝ちまいな。
0235デフォルトの名無しさん
NGNGperl -I/foo/bar -e "print join qq/\n/, @INC;"
# これは push
#!/usr/local/bin/perl -I/foo/bar
print join "\n", @INC;
__END__
# これは unshift
#!/usr/local/bin/perl
use lib '/foo/bar';
print join "\n", @INC;
__END__
0236デフォルトの名無しさん
NGNG大嘘つきだな(w
少なくとも、perlをソースからコンパイルした事ないな(藁
0237デフォルトの名無しさん
NGNG0238大学生
NGNGperlのプログラムでproc loge(x) {
eps = 1e-30
k = 1
dd = -x
z = x
s = 0
while ( z^2 > eps ) {
s = s + z/k
z = z * dd
k = k + 1
}
return s
}
----------------------------------------------
このプログラムを用いて(Perlでコーディングして)
log(2) = 0.693147180559...
となることを確かめよ。
プログラムを示すこと。
とありますが 意味が分かりません 一年生のわたしのクラスだれもわかる人
いないんです。 おしえてください(>ー<)
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGテーラー展開習ってないのか?
まあ、分かんなきゃ留年して勉強し直せ、お前の為だ。
0241デフォルトの名無しさん
NGNGwhile ( z^2 > eps ) {
の式の意味が分からん。∞ループになるような
0242デフォルトの名無しさん
NGNG以下のコードでは、select でブロックせずにぶんぶん回ってしまいます。
何故でしょうか? ちなみに fileno(STDIN) にした場合にはちゃんと
ブロックしてくれます。教えてください。
use strict;
my ($a, $b);
open(LOG, "/path/to/file");
seek(LOG, 0, 2);
vec($a, fileno(LOG), 1) = 1;
while(1) {
$b = $a;
select($b, undef, undef, undef);
}
close(LOG);
0243デフォルトの名無しさん
NGNGwhile ( z^2 > eps ) {は間違っている。
収束判定の式はそれじゃない。
0244デフォルトの名無しさん
NGNGselectがブロックするんじゃない。どのデバイスファイルが入出力可能か調べるだけ。
ブロック云々はデバイス自体の状態。STDINはリターンキーが押されるまでブロックする。
0245デフォルトの名無しさん
NGNGselect(2)は、通常ファイルに対しては常に入出力可能を返す。
0246デフォルトの名無しさん
NGNG>>245
なるほど、ありがとうございます。では tail -f 相当のものを
実現するにはどうしたら良いでしょうか? FreeBSD のtail(1)
では kqueue(2) が使われているので移植性が低そうです。
0247デフォルトの名無しさん
NGNGのループ。
0248デフォルトの名無しさん
NGNGわかりますた。やってみます。
0249デフォルトの名無しさん
NGNGuse strict;
open(LOG, "</path/to/file");
seek(LOG, 0, 2);
while(1) {
my $buf;
if( eof(LOG) ) {
seek(LOG, 0, 1);
select(undef, undef, undef, 0.5);
} else {
$buf = <LOG>;
}
}
close(LOG);
025062
NGNG指定すべきフォントが分かりません。
環境は
OS : debian woody
perl : 5.6.1-8.7
perlmagick : 5.4.4.5-1woody
です。
ご存知の方、よろしくお願いいたします。
0251デフォルトの名無しさん
NGNGたまにあるんですが、うまい回避方法はないでしょうか?
use LWP::Simple;
for ($code = 1000; $code <= 9999; $code++) {
$doc = get "http://www.abc/t?$code";
}
0252デフォルトの名無しさん
NGNGLWP::UserAgent timeout
0253デフォルトの名無しさん
NGNG回避できました。ありがトン。
0254デフォルトの名無しさん
NGNGMakefileに$(pixmapdir)という字句があり、これを%buildroot/usr/share/pixmapsに替
えたいのですが、
perl -pi -e "s|\$\(pixmapdir\)|%buildroot/usr/share/pixmaps|" Makefile
とすると
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE pixmapdir\)/ at -e line 1, <> line 1.
といわれて置換できません。試しに、\$\(pixmapdir\)|を\$\(pixmapdir\)|に替える
とエラーはでませんが()がおそらくパターングループと認識されて何も置換されません。
どうすれば()を含むパターンの置換ができるでしょうか。
0255デフォルトの名無しさん
NGNGシェルで \ が処理されてたりしませんか?
とりあえず perl -pi -e "..." を perl -pi -e '...' に変更するか
\ を \\ に変更してみてはどうでしょう。
0256デフォルトの名無しさん
NGNGとても親切な方。ありがとうございました。シングルクオートでうまくいきました。
感謝申し上げます。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG0259科学 ◆3Zqk5DmAz2
NGNGhttp://money3.2ch.net/test/read.cgi/deal/1093135975/
というスレを作りました。
マーケットの分析をperlとか使ってやろう、という趣旨の
スレです。詳しい方とかおりましたら力になってやって下さい。
0260デフォルトの名無しさん
NGNG>dnaK
atgacgtgggttacgaccccatttagtagtcaaccgcagtga
atgaaattgggcagttga
>dnaJ
>gef
atgaagagataa
atgcgaggcgtcttccggattagaatcgataaaacagaatgggttaaagagagcgatataatagcggcgggtgcttga
atgggttaa
>nhaA
atgattatcagggcttag
atggcgcaaattcttctatag
atgattcgtgcggggtaa
>nhaR
というような出力結果から、
>dnaK
2
>dnaJ
0
>gef
3
>nhaA
3
>nhaR
0
という結果( つまり、「>名前」に対応させた、塩基配列の行の数)を出力し
たいのですが、プログラムがわかりません。どなたか教えてくださるかたがい
らっしゃるとうれいしです。よろしくお願いします。
0261デフォルトの名無しさん
NGNG>dnaK
2
>dnaJ
0
>gef
3
>nhaA
3
>nhaR
0
という結果( つまり、「>名前」に対応させた、塩基配列の行の数)を出力し
たいのですが、プログラムがわかりません。どなたか教えてくださるかたがい
らっしゃるとうれいしです。よろしくお願いします。
0262デフォルトの名無しさん
NGNGマルチになってますがどうなさいますか?
0263デフォルトの名無しさん
NGNGperlの処理で、”Enterキーを押す”っていう操作は
perlでは、どう記述するのでしょうか?
ご存知の方是非教えて頂きたいのですが?
0264デフォルトの名無しさん
NGNGマルチになってますがどうなさいますか?
0265デフォルトの名無しさん
NGNGhttp://money3.2ch.net/test/read.cgi/deal/1093135975/
で困ってます。どなたか助けて下さい。
実行してうまくいくときといかないときがあるのはどうして
でしょうか?
0266デフォルトの名無しさん
NGNG課題が出たのですが分からないので教えてください
この間に、英文テキストファイル(単語数100語程度)を用意し、
これを処理するプログラムをつくります。
プログラムは、
(1)テキストファイルを単語ごとに区切る
(2)単語をソートして並べ替える
(3)ファイルに保存する
という流れで作ってください
↑という問題です
初心者にも分かりやすくお願いします
0267デフォルトの名無しさん
NGNGそうなら喜んで回答するが、少なくとも漏れはそうは思わない。
0268デフォルトの名無しさん
NGNG最初の「この間に」ってのは何だ?
0269デフォルトの名無しさん
NGNG登録や削除のできるCGIを作っています。
一つのフォームから、いくつかのsubmitを使って、それぞれ処理を変えたいのですが、
どのようにすればよいでしょうか?
なんとなく、nameを使ったり、受ける側でif文を書けばいいのかな?という感じなのですが、
どうやって、if文でsubmitのnameを受けたり、分岐したりすれば良いのか分からない状態
です。
どうぞ、よろしくお願いします。
0270デフォルトの名無しさん
NGNGその質問はWeb製作板の方がいいな。
0271デフォルトの名無しさん
NGNGじゃねぇ。WebProg板だ。
0272デフォルトの名無しさん
NGNGありがとうございます、行って来ます!
0273デフォルトの名無しさん
NGNG「全角同士で挟まれたスペースの削除(例)中 央→中央」と「全角数字と並んでいるところに,(カンマ)を挿入する(例) 篠崎11→篠崎,11」の2点の作業をしたいです。
何方か、アドバイスを下さいお願いします。
[1]
中 央1丁目591 281 310 218 2丁目602 315 287 227
2丁目522 256 266 179 大字南篠崎1130 559 571 352
本 町831 396 435 301 花 崎1丁目1459 749 710 604
[2]
中央1丁目,591,281,310,218,2丁目,602,315,287,227
2丁目,522,256,266,179,大字南篠崎,1130,559,571,352
本町,831,396,435,301,花崎1丁目,1459,749,710,
0274初心者
NGNGレスPerlについての質問箱にて解決しました。
礼儀を知らなくてすいませんでした。
0275デフォルトの名無しさん
NGNG解決して、ヨカーです。
あなたも詳しくなって、困った人を助けて下さい。
もみage!
0276デフォルトの名無しさん
NGNG入力内容をカンマ区切りでcsvデータとして吐き出すコードを作成中なのですが、
入力内容のテキストエリアなどで改行を入れられてしまうと、csvが想定どおりに
いきません。
そこで、ファイルに書込む前に改行コードをすべて強制的に削除してしまいたいのですが、
どのようにしたらいいか教えてください。
よろしくお願いいたします。
0277デフォルトの名無しさん
NGNGs/[\r\n]+//g;
0278デフォルトの名無しさん
NGNGありがとうございます。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGと
tr/\x0D\x0A//d;
は等価じゃないよ
0281デフォルトの名無しさん
NGNGむむ?\r\n と\x0D\x0Aとどっちにしたら良いのでしょうか?
ちなみに、これでmacからの入力でも対応できますでしょうか?
(改行コードが違うんですよね、確か。)
0282デフォルトの名無しさん
NGNGそれくらい調べる
0284デフォルトの名無しさん
NGNG何をどうしたら単独のLFが残ると思うの?
0285279
NGNGs/[\r\n]+//g; は、
unix CR or LF
dos CR or CR,LF
mac LF or CR
の「1ヶ以上の繰り返しを削除」を繰り返す。で、ここまでオケー?
んで、dos上でCRが前にないLFが残るのかと。
ちがうの?つか、[\r\n]ってCR,LFのCRだけ先に消したりせんの?
もしかして慣用句?もったいつけんと教えれ。
0286デフォルトの名無しさん
NGNG> の「1ヶ以上の繰り返しを削除」を繰り返す。で、ここまでオケー?
だからCRLFはまとめて消えるわけだが。
えっと、[\r\n]がCRにマッチしたらそのあとLFにはマッチしないと思ってるのかな?
$a = "223620679";
$a =~ s/[23]+//g;
とか試してみたら?
0287279
NGNGこれに近いと思ったんだが?
$_ = "\f\f\r\f\r\r\r\f";
s/(\f|\f\r)+//g;
for( split('',$_) ){
print ord$_, "\n";
}
訊くが、
macでは、\nと\fがCRで、\rはLFなんだが、それはご存じか?
macPerlだと[\r\n]じゃ、[LF CR]となり、dosの改行(CR,LF)消せないし。
[\r\f]+か、\n+だけならまだしも[\r\n]+ってのは、何故?
そして、なぜtrじゃイカンのか?
0288279
NGNG0289279
NGNG\nがCR,LFだった場合、先にCRを喰っちゃうのでLFは残る。
以下、二点をご存じないと判断した。
・ tr/\x0D\x0A//d; が s/[\r\f]+//g; と等価かつ高速であること
・ メタ文字 \n,\r,\f が、環境によって異なる文字になること
0290デフォルトの名無しさん
NGNG$a = "22360679";
だと思う
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG無茶苦茶だな
0294279
NGNG仮に\nがCR,LFだった場合 s/[\n]//g; で 単独のCRもLFも消えるのか?
なら、勉強になったよ。
でもな、だったら[\r\f]としないのはなぜ?なぜ¥nを使う?
dosでは [\x0D\x0D\x0A] となって、なんだか余分じゃないか?
で、そもそもの発端だが「 tr/\x0D\x0A//d; と等価でない」とは?
0295デフォルトの名無しさん
NGNGそれはない。なんでそんな仮定が出てくるんだ?
0296279
NGNG276の質問に対し、
277 名前:デフォルトの名無しさん メェル:sage 投稿日:04/11/17 19:54:04
>>276
s/[\r\n]+//g;
ここから、はじまった話。
\fではなく\nを使っていることに疑問を持ち、個人的見解を述べたら
叩かれ気味になってる。
藻前らハッキリ汁。 \nがCR,LFだった場合限定でいい。
s/[\r\n]//;と等価なのは、s/[\r\r\f]//;なのか、s/\r|\r\f//;なのか。
0297279
NGNG「なんでそんな…疑問型で終わる」は、もうナシな。
目の前にいたら殴ってますよ。
それとも、釣りなのか…orz
0298デフォルトの名無しさん
NGNGs/\r|\n//;
ところで「macでは、\nと\fがCR」となっているMac OS のバージョンとMacPerlのバージョンを教えてもらえますか?
0299デフォルトの名無しさん
NGNG> 仮に\nがCR,LFだった場合
\nがCRになったりCRLFになったりするのは出力した時だけ。
0300デフォルトの名無しさん
NGNG「プログラムは個人的見解通りに実行されるのではなく、書かれた通りに実行される」
0301279
NGNG> ところで「macでは、\nと\fがCR」となっているMac OS のバージョンと
> MacPerlのバージョンを教えてもらえますか?
ttp://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
>>299
うそつけ!
てか、300含めて同一人物だよね?んで277だよね?
名前覧入れろ、卑怯ものがっっ。
0302295=298
NGNG>>301
> >>298
> > ところで「macでは、\nと\fがCR」となっているMac OS のバージョンと
> > MacPerlのバージョンを教えてもらえますか?
> ttp://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
そのページのどこに「\fがCR」って書いてあるの?
っていうかOSとMacPerlのバージョン聞いてるんですけど。
277です。277以降静観してましたが、とりあえずその他発言とは
別人だと表明しておきます。
>>279の言ってるようなことは意識したことがなく、
\r=0x0d、\n=0x0aだと思ってました。
実際のところ、自らは未検証の内容なので、
確認が取れたら書き込もうと思ってたんだけど、
>>301で勝手に同一人物とか書かれたもので出てきました。
あと、+はなくてもよかったかな
s/[\r\n]//g;
0304279
NGNG不快な思いを皆様にさせてしまい、猛省しております。
漏れが超バカな勘違いしていました。・・・(;´Д`)ウウッ…
¥fをLFだと思ってました。しかも、ずぅぅっとorz
今日、会社に行って、旧mac,win98,で
for( "\n","\r","\f"){
printf "\\x%02X\n",ord;
}
を実行して、はじめて知りました。情けない、恥ずかしい。
trと等価でない理由は、式全体が返す置換数が異なるって
ことで、勝手に納得しました。
撤退して、勉強し直します。
お騒がせして、申し訳ありませんでした。
0305デフォルトの名無しさん
NGNG>>299
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNGという拡張構文の使い方と使用例を教えてください。
なんとなく便利そうなんだけど、意味わかんないし、本みても具体的なことは載ってませんでした。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG0313309
NGNG∧||∧
( ⌒ ヽ 素で間違えた
∪ ノ perlreに載ってるるるるぢゃん…そんなものあるの知らんかたた
∪∪
お詫びに首吊り
0314デフォルトの名無しさん
NGNG正しくは、
$hoge = 条件式? 真値 : 偽値;
じゃないのか?
0315デフォルトの名無しさん
NGNGおめでとうって、なんかあったの?
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG>>313
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNGどっち使うのがいいですか
0320デフォルトの名無しさん
NGNG対処法をググろうと思っても、上手くググれず困っていたら、
昔、独学用に買った初心者向けのperl本に対処法載っていた。
本は大事にするべきだなと思った。
0321デフォルトの名無しさん
NGNGsystemでnkf使えば? w
0322デフォルトの名無しさん
NGNGハッシュの配列をソートしたいのです。
@a = (
{'c' => "mixa",'time' => 1},
{'c' => "fox",'time' => 3},
{'c' => "miaa",'time' => 2}
);
このようなハッシュの配列を、timeにてソートしたいのですが
$a[0]{'time'} が 1
$a[1]{'time'} が 3
$a[2]{'time'} が 2
なのを
$a[0]{'time'} が 1
$a[1]{'time'} が 2
$a[2]{'time'} が 3
として、c側もこれについてくる
$a[0]{'c'} が mixa
$a[1]{'c'} が miaa
$a[2]{'c'} が fox
このような結果になるソースを知りたいです。なるべくスマートに書ければ嬉しいです。
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG誰か作ってくらはい。ペコリ
0327デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1101649274/l50
0328デフォルトの名無しさん
NGNGありがとん。
0329デフォルトの名無しさん
NGNG本当にどうも有り難うございました。
$a->{'time'}で参照出来るのですね
$a{'time'}とやって上手く行かなかったのでてっきりもっと難しいのかと思っていました。
なぜ前者が可能で後者が不可なのか宜しければ説明して頂ければ幸いです。
0330デフォルトの名無しさん
NGNG$a{'time'}は%aというハッシュのtimeをキーとする値。
$a->{'time'}は、無名ハッシュ(へのリファレンス)のtimeをキーとする値。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNGたぶんa,bを知らないのでは。
0333デフォルトの名無しさん
NGNGたぶん、シュワルツ変換が分かれば、分かるようになると思う。
ていうか、私もこないだ覚えたばかり。
続 初めてのperl p101 から 103 のあたり。
ちなみに、シュワルツ変換とは、
ある並びを持った配列があったときに、
その要素が持つ別の属性で持って、並べ替えを効率よくやろうと
いうものだけど。
0334デフォルトの名無しさん
NGNG一つのファイルは、
106 1473
106 764
1762 48
1762 38
1762 91
と、左の数字に対して、いくつかデータがあって、もう一つのファイルは、
106 30
1762 50
と、左の数字に対して一つしかデータがないものがあった時に、
これを、
106 1473 30
106 764 30
1762 48 50
1762 38 50
1762 91 50
のようにハッシュをつかって表示させるのはどうやればいいのでしょうか?
0336デフォルトの名無しさん
NGNGperlで呼び出して、データを渡して結果を受け取る方法を教えてもらえませんか?
Active perl + WindowsXPです.
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGそのためには、整数であるか実数であるかを判定する必要があるのですが、なにかうまい方法はないでしょうか?
つまり小数部が0かそうでないかを判定したいということですが、いかがでしょう?
0341デフォルトの名無しさん
NGNG{print "Integer\n"}
else
{print "Not Integer\n"}
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG$number = "5.8";#値を代入
if($number =~ m/\.\d/g) {print "$number";}#小数点以下に数字がある時、値を出力
else{print "いいえ";}#小数点以下に数字がない時、"いいえ"を出力
こんな感じか?
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNG小数点以下の部分を全て足して、合計が0か否かをみる。
とすればいいのか?
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG小数点をデリミタにして、スプリット。
小数点以下の部分が、0か否かをみる。
以上!
0350デフォルトの名無しさん
NGNG$num = '23.02'; #値をセット
print $num=~/\.(\d+)/ && $1>0 ? '実数' : '整数';
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGまあ、そう云うな。
0355デフォルトの名無しさん
NGNGuse Benchmark;
timethis(1000000, sub{ useInt(1.00) });
timethis(1000000, sub{ useSprit(1.00) });
sub useSprit{
my $number = shift;
if([split(/\./, $number)]->[1] == 0){
#print "Integer\n";
}else{
#/print "Not Integer\n";
}
}
sub useInt{
my $number = shift;
if($number == int($number)){
#print "Integer\n";
}else{
#print "Not Integer\n";
}
}
結果:>>341の方が速くてコードも短い。ついでに回答も早い。
0356デフォルトの名無しさん
NGNGprint($number == int($number) ? "Integer\n" : "Not Integer\n");
0357デフォルトの名無しさん
NGNG356 > 341 >>>> 356 >>>>>>>> 349
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGprint$number!=int$number&&'Not ',"Integer\n";
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG356 > 341 >>>> 356
の辺りが激しく謎。
0362デフォルトの名無しさん
NGNGどこかのperl本に『半年前の自分は他人』って書いてあってワラタ。
>>359までくると、自分で見返しても一瞬なんのことか判らなくなる。
0363110
05/01/17 17:06:43日本語を使うにはどうしたらいいんでしょうか?
誰かしているかた教えてください。お願いします。
0364デフォルトの名無しさん
05/01/17 17:07:55NAMAZUをつかえ
0365デフォルトの名無しさん
05/01/17 17:10:31日本語対応のPerlか?
正規表現オプションに日本語コードの種類を指定したか?
0366デフォルトの名無しさん
05/01/17 17:28:25http://www.din.or.jp/~ohzaki/perl.htm
を見ると幸せになれるかもしれない(し、なれないかもしれない)
0367デフォルトの名無しさん
05/01/17 17:34:270368デフォルトの名無しさん
05/01/17 17:39:10ここは呪われたスレ
0369363
05/01/17 18:15:16ありがとうございます!!
がんばってみます!
0370デフォルトの名無しさん
05/01/19 14:28:23呪い返しの術!
0371てすと
05/01/19 15:43:17int main()
{
printf ("Gonnuduba!\n");
return 0;
}
0372てすと2
05/01/19 15:44:12int main()
{
printf ("Gonnuduba!\n");
return 0;
}
0373てすと3
05/01/19 15:45:53わかりました。ありがとうございました。 m(_ _)m
0374半角可能。やりかたひみつ
05/01/19 19:53:28int main()
{
printf ("Gonnuduba!\n");
return 0;
}
0375デフォルトの名無しさん
05/01/19 20:17:160376デフォルトの名無しさん
05/01/19 20:21:500377デフォルトの名無しさん
05/02/20 10:35:340378デフォルトの名無しさん
05/02/21 11:29:210379デフォルトの名無しさん
05/02/24 02:13:020380デフォルトの名無しさん
2005/04/08(金) 17:40:56普通の掲示板の機能にアイコンをつけるのに
<FONT SIZE=\"2\" COLOR=\"$icon!!ココガワカラナイ!!">$icon<FONT SIZE=(ry
とあるのですがname=iconとかvulue=./icon/icon1.gifとかそういった事は出来ました。
解らないのが、ラジオボタンでチェックを入れるとvulueで指定したリンク画像を表示させる
ということなのですが。
誰か教えてくれませんか?
0381デフォルトの名無しさん
2005/04/08(金) 17:43:424行目の文は
print " <td valign=\"top\" nowrap>
の続きにそういう文があって、そこを直して、iconを追加していたのですけど
どうやって挿入とか呼び出しとかするのかわかりません。
selectとかspiceとか色々調べたのですが、いまいち把握できません
0382デフォルトの名無しさん
2005/04/08(金) 18:35:54詩ね! 丸血!!
0383デフォルトの名無しさん
2005/04/11(月) 20:53:350384デフォルトの名無しさん
2005/04/19(火) 22:12:05利用のレンタルサーバーはFreeBSDでメールはAPOP POP3 IMAP が使えるらしいです。
今、メールアカウントのパスワードを変更するスクリプトを記述したいのですが、
暗号化の部分がさっぱりわかりません。
レンタルサーバーのコントロールパネルから設定したメールパスワードを直接読み取ってみた時の文字列と
単純にMD5で生成したパスワードが違っていましたので、暗号化方式はMD5でないと推測します。
WEB検索でどのように暗号化しているのか探しましたがみつかりませんでした。
このあたりの情報に詳しい方、ご教授お願いします。
<<板違いの質問かもしれませんが、質問先がわからず、ここにしました。申し訳ありません>>
>>380=381
perlの前にHTMLの勉強した方が良さそうですよ。(板違いですね。)
& 普通の掲示板って具体的には?
0385デフォルトの名無しさん
2005/04/22(金) 00:59:35サーバに保存されているパスワード情報の書式は、そのサーバで使用されているメールサーバ
プログラムの種類に依存しプロトコルとは無関係。それだけの情報ではエスパーでもなければ分からない。
0386デフォルトの名無しさん
2005/04/22(金) 08:55:27ふむふむ。ありがとうございます。
メールプログラムは何かはっきりわかりませんが、同社の他のサービスでは
qmailを使用との事ですので、同じかもしれません。
ところで、メールプログラム依存という事は
メールソフト(クライアント:outlookなど)からサーバーまではパスワードが
プレーンテキストで流れているのでしょうか?
そうなると、そっちの板で質問という事になりますが、
暗号化済で送信を前提としていたので、ここで質問させて頂いておりました。
0387デフォルトの名無しさん
2005/04/24(日) 00:59:10言ってることが混乱していないか?
あるプロトコルでパスワードをどの様に送るかはプロトコルに定められている。
クライアントでもサーバーでもプログラムの種類には関係ない。
でないと認証できないだろ?
パスワードの保存方法は各プログラムが好きにすればいいことだろ?
0388デフォルトの名無しさん
2005/04/27(水) 23:55:02ここでperlを考えないで、通信で、例えばtelnetなどでパスワード変更しようと
思った場合、メールサーバーのプログラム名(または内容)が判らない場合はどうしようもない、
という事なんですね。
ん〜。困りました。。。。。。
0389デフォルトの名無しさん
2005/04/29(金) 11:03:26だからさ、結局何がしたいワケ?
パスワード変更したいならパスワード変更用の手段を実行しろ。
telnetでコマンド実行するなら打とうがperl実行しようか同じだ。
そのサーバーはコマンド打つとき暗号化済みのパスワードを打たないとダメなのか?
0390デフォルトの名無しさん
2005/04/29(金) 15:56:30perlの前に日本語の勉強した方が良さそうですよ。(板違いですね。)
0391デフォルトの名無しさん
2005/04/29(金) 21:52:45コマンド名が判るなら、システムコマンド呼び出しでいいんですけど。
0392デフォルトの名無しさん
2005/04/30(土) 10:50:14訊く板間違ってるし、ググってもすぐ出てくるよ。
0393デフォルトの名無しさん
2005/08/23(火) 20:29:41Perlでゲームを作るために参考書ってありませんよね?
C言語で書かれた本をPerlに書き換えて作るしかないんでしょうか。
0394デフォルトの名無しさん
2005/08/24(水) 02:08:06強く見えるぞ
0395デフォルトの名無しさん
2005/08/24(水) 09:02:29アルゴリズムと言語の勉強は互いに独立したものです。
0396デフォルトの名無しさん
2005/08/26(金) 00:44:22管理ページにログインした後ってセッション使ったほうがいいの?
単純にパスワードをcrypt()で暗号化して認証しただけじゃまずいよね?
ちなみにCGI::Sessionを使いたいけど、
レン鯖なんで一切モジュールの類は使えません。
0397名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:50:08エラーログは以下の通りです。
syntax error at ./accesslog.cgi 行番号 18, near "};"
Unmatched right curly bracket at ./accesslog.cgi 行番号 41, at end of 行番号
syntax error at ./accesslog.cgi 行番号 41, near "}"
Compilation failed in require at C:\check.cgi 行番号 54.
Perlへのリンクです。
ttp://www5e.biglobe.ne.jp/~kokotubo/upbbs/img/90.txt
0398名無しさん@そうだ選挙に行こう
2005/09/11(日) 23:04:30メモ帳使うな。色付け・インデントできるまともなエディタを使え。このレス読んだ直後に変えなかったら殺す。
17行目#addr → $addr
36行目&error}('0'); → &error('0');
52行目\n\n; → \n\n";
0399名無しさん@そうだ選挙に行こう
2005/09/11(日) 23:13:400400デフォルトの名無しさん
2005/09/12(月) 21:41:280401デフォルトの名無しさん
2005/09/14(水) 17:54:500402デフォルトの名無しさん
2005/09/17(土) 23:17:34Perlで書かれたプログラムがその他のサーバのパッケージを読み込むことは
できるのでしょうか?
どなたかご存知の方教えていただけますでしょうか
0403デフォルトの名無しさん
2005/09/19(月) 08:20:130404そやな〜
2005/09/24(土) 13:44:02xx.soなんか読めんやろ。
0405(゚Д゚).csv
2005/09/28(水) 00:41:03今仕事でperl言語をやっています。
アンケートのページの改造をやりたいのです。
質問なんですけど、ボタンをクリックすると、
アンケートのデータが入っているテキストファイルを読み込み、
その読み込んだデータでCSVファイルを作成して、
そのCSVファイルをダウンロードさせたいのです。
どうすればいいでしょうか?
【流れ】
・データファイルの読み込み
↓
・CSVファイル作成して、データを書き込む
↓
・CSVファイルをダウンロードさせる
よろしくお願いします。
0406デフォルトの名無しさん
NGNG仕事でしたらコンサルタントにご相談を。
0407デフォルトの名無しさん
2005/09/28(水) 20:53:19問題になりそうな部分
・自動でダウンロード開始させるか?リンククリックさせるか?
・一意なファイル名をどう生成するか?
ヒント:
・リダイレクト
・MD5
これで出来なきゃ転職先探した方が良い。
0408デフォルトの名無しさん
2005/09/29(木) 18:47:240409デフォルトの名無しさん
2005/09/29(木) 18:49:19はい。
0410デフォルトの名無しさん
2005/09/29(木) 19:16:43Perl for Win32が稼動しているサーバーだけですよね。
Perl使用可のレンタルサーバーは、どこでもfor Win32なんですかね?? わかる人、教えて。ちょっとスレ違いの質問でスマソ。
0411デフォルトの名無しさん
2005/09/29(木) 20:59:36いいえ。むしろUnix系が主流でしょう。
0412デフォルトの名無しさん
2005/10/06(木) 21:39:09Perl動かしてる人っていないんじゃないの?
俺もWin32上で開発してるけど、なんかやりにくい。
0413デフォルトの名無しさん
2005/10/08(土) 04:56:32それが一般的じゃないんですか?
皆さんLinuxなんですか
0414デフォルトの名無しさん
2005/10/13(木) 13:30:50MAILの内容は、あるURL.で、入力するのは、hotomailのIDとpassword。実行ボタンをクリックで、MAILの送信は、hotmailのサーバーでなく、CGIが置いてあるサーバーのものを使用します。
どのくらいの工数かかりますか? 1日で、できますか?
0415デフォルトの名無しさん
2005/10/13(木) 13:46:24hotmailよくしらんがやりゃできるんじゃない?
工数はやる人の能力で100倍ぐらい違うのはザラなんで全く意味なし。
1日でできる奴はいるだろうけど、普通に開発会社にたのんだら1人日じゃ
やってくれないだろうね。
0416デフォルトの名無しさん
2005/10/13(木) 18:49:000417デフォルトの名無しさん
2005/10/14(金) 06:06:10UNIX板
0418デフォルトの名無しさん
2005/11/10(木) 20:40:15my $result = shift;
をまとめて記述することは出来ないでしょうか?
ハッシュの場合は警告が出るけど %{ $a->b() }->{hoge} で良いみたいなんですが。
0419デフォルトの名無しさん
2005/11/10(木) 20:41:240420デフォルトの名無しさん
2005/11/17(木) 15:45:15HTTPサーバに接続して、ページを取得した際に、正常に取得されたかどうかはどのようにしたら分かるのでしょうか?
0421デフォルトの名無しさん
2005/11/17(木) 16:50:380422デフォルトの名無しさん
2005/12/12(月) 00:02:36google web apiをperlで使って、検索語を含むWebページのヒット数、URL
を表示するようなプログラムを作りたくて、あるサイトのプログラムを参
考にして作ったのですが、実行したら英語のサイトのURLが表示されて、
明らかに検索語を含んでいません。
もしこうした方がいいという案がありましたら、教えていただきたいです。
自分はPerlをあまり使ったことがなく記述の仕方もいまいちわかっていない
状況です。自分なり本を読んで少しプログラムも書いてみたのですが
まだまだのようです。どうかよろしくお願いします。
use SOAP::Lite;
use Jcode;
my $googleSearch = SOAP::Lite -> service("file:GoogleSearch.wsdl");
my $key='LkML035QFHLEaaFEoFDfPd2VZFDzWGCE';
my $query="とんかつ";
my $result = $googleSearch -> doGoogleSearch($key,jcode($query)->utf8, 0, 10, "false", "", "false", "", "UTF-8", "UTF-8");
#print "About ".$result->{"estimatedTotalResultsCount"}."results.\n";
printf("query=%s %d results\n",$query,$result->{estimatedTotalResultsCount});
for $i(@{$result->{resultElements}}){
printf("%s,%s\n",jcode($i->{title})->euc,jcode($i->{URL})->euc);
}
0423デフォルトの名無しさん
2005/12/12(月) 03:32:40Net::Googleじゃだめなの?それとここにgoogleアカウントは書かないほうがいい
0424デフォルトの名無しさん
2005/12/12(月) 09:42:56最初のuseの部分をuse Net::Googleに書き換えるということですか?
ご指摘ありがとうございます。
アカウントは実験的に取得したやつなので、問題ないかと思われます。
心配してくださって、ありがとうございます。
0425デフォルトの名無しさん
2005/12/12(月) 12:03:22スレッドストップを依頼しておきますので、こちらにお移り下さい。
Perlについての質問箱 21箱目
http://pc8.2ch.net/test/read.cgi/tech/1134327348/l50
>>422-424
スレッドストップ実行までに暫くかかると思います。
それまでに終わらせて下さい。
0426デフォルトの名無しさん
2005/12/12(月) 19:17:16>>8
0427デフォルトの名無しさん
2005/12/13(火) 13:49:002002年かよ。
0428デフォルトの名無しさん
2006/02/11(土) 11:07:17直リンクされたことによって消滅するアップローダは多いからな
perl で書かれたものキボン
0429デフォルトの名無しさん
2006/03/31(金) 20:08:230430デフォルトの名無しさん
2006/04/28(金) 17:16:58@commentというところに
xxxxxxxxxxxxxxx(4/26)
xxxxxxxxxxxxxxx(4/27)
xxxxxxxxxxxxxxx(4/28)
xxxxxxxxxxxxxxx(4/28)
のようなデータがあって、
それの中で日付が当日の行に対して
xxxxxxxxxxxxxxx(4/26)
xxxxxxxxxxxxxxx(4/27)
xxxxxxxxxxxxxxx(4/28) New!
xxxxxxxxxxxxxxx(4/28) New!
というように行末に「New!」を加えたいんですが
どうやったらいいんでしょうか?
0431デフォルトの名無しさん
2006/04/28(金) 17:30:45$find = index ($comment, $date);
if ($find >= 0) {
$comment=s/\n/New!\n
}
0432デフォルトの名無しさん
2006/04/28(金) 18:10:36my $mon = "4", my $day = "28";
grep {s/\(?<=\Q$mon\E\/\Q$day\E\)/ New!/} @comment;
0433デフォルトの名無しさん
2006/04/28(金) 18:30:24grep {s/(?>=\($mon\/$day\))/ New!/} @comment;
0434デフォルトの名無しさん
2006/04/28(金) 18:30:25日付のところは例に挙げていたのは正しくなくて正しくは
xxxxxxxxxxxxxx(4/26 xx:xx)
xxxxxxxxxxxxxxx(4/27 xx:xx)
xxxxxxxxxxxxxxx(4/28 xx:xx)
xxxxxxxxxxxxxxx(4/28 xx:xx)
という感じで時間も入ってました。
とりあえず時間の部分を削ってやってみましたがうまくいかず・・・
0435デフォルトの名無しさん
2006/04/28(金) 18:34:18grep s/(?>=$date)/ New!/, @comment;
0436デフォルトの名無しさん
2006/04/28(金) 18:45:31これで秒が入ってても大丈夫だと思うよ。
grep {/$date/ and s/$/ New!/s} @comment;
0437デフォルトの名無しさん
2006/04/28(金) 18:57:21マジでありがとうございます。
マジで泣けてきます
0438じょー
2006/05/27(土) 16:04:39初期設定が出来てないとかエラーが出てます・・・
0439デフォルトの名無しさん
2006/05/28(日) 02:04:530440デフォルトの名無しさん
2006/06/03(土) 22:25:24実は空行ではない。のを検索するにはどうしたらいいですか?
その他の空行ではない行でtabが入っていても無視する。
というものです。
0441デフォルトの名無しさん
2006/06/03(土) 22:57:21こっちでも怒られたら悪いがもう答えない。
0442デフォルトの名無しさん
2006/06/05(月) 17:31:09わかる人お願いします。
0443デフォルトの名無しさん
2006/06/05(月) 18:57:090444デフォルトの名無しさん
NGNGじゃだめかなw
0445デフォルトの名無しさん
2006/06/05(月) 20:22:160446デフォルトの名無しさん
2006/06/05(月) 20:22:52(\Qword\E).*?$1.*?$1
0447デフォルトの名無しさん
2006/06/05(月) 20:23:47あ。それだな。
0448デフォルトの名無しさん
2006/06/14(水) 14:09:08扱えるperlってありませんか?
0449デフォルトの名無しさん
2006/07/02(日) 19:03:01$hoge =~ s/ /\\E\\s\+\\Q/g;
if( 'A B C' !~ m/\Q$hoge\E/ig ){ print $hoge; }
if( 'A B C' !~ m/\QA\E\s+\QB\E/ig ){ print 'aaa'; }
上三行みたいな事がしたいのですが
うまくいきません
お知恵を拝借できませんか?
0450デフォルトの名無しさん
2006/07/02(日) 21:03:00my @data = map { '\Q' . $_ . '\E' } qw( A B ) ;
my $str = 'if ( \'A B C\' !~ m/' ;
$str .= join '\s+', @data ;
$str .= '/ig ){ print \'hogehoge\' . "\n" }' ;
eval $str ;
0451デフォルトの名無しさん
2006/07/02(日) 22:34:240452デフォルトの名無しさん
2006/07/02(日) 22:50:13そこらは map 中でエスケープしちゃえばいい。
0453デフォルトの名無しさん
2006/08/16(水) 12:14:44man Text::CSV_XS.3pmを読んでも解決しませんでした。
$csv->parse($_);
@columns=$csv->fields();
としてCSVファイルの中身を@columnsに格納できるのですが、@columnsは普通の配列じゃない
みたいで、添え字指定で任意の位置(行と列を指定した位置)のデータを取り出すことができません。
foreach $factor (@columns){
print $factor,"\n";
}
や
foreach $factor (@columns[0]){
print $factor,"\n";
}
はできても、$columns[0][0]などではアクセスできません。このfieldsメソッドで作成された配列は
どのような構造になっているのでしょう。ご教示いただければ幸いです。
0454デフォルトの名無しさん
2006/08/16(水) 12:44:36Text::CSV_XSはCSV1行を扱うためのもので、CSV複数行で構成される2次元の表を
扱うようなものではない。
0455デフォルトの名無しさん
2006/08/16(水) 14:02:03ありがとうございます。自分の勘違いに気がつき突破口が開きました。
while($line=<IN>){
}
の中で処理していたのを忘れて悩んでいました。感謝です。
0456デフォルトの名無しさん
2006/08/16(水) 19:20:08やり方のわかる方はお教え願います。
0457デフォルトの名無しさん
2006/08/16(水) 19:38:47すいません解決しました。
0458デフォルトの名無しさん
2006/08/21(月) 21:02:49例えば、CURR OPIN NEUROL NEUROSURGという文字列をCurr Opin Neurol Neurosurgと変換したい
と考えています。
$line="CURR OPIN NEUROL NEUROSURG";
foreach $i (split(/ /,$line)) {
push(@w, ucfirst(lc($i))." ");
}
print @w;
とするのは冗長である気がするのですが、もっと賢く簡潔にやる方法ないでしょうか。
1バイトごとのビット演算なんてどうかしら?
0x4F で and して 0x60 で or するとか。
・・・でもucfirstしなきゃか。orz...
0460デフォルトの名無しさん
2006/08/22(火) 07:41:150461デフォルトの名無しさん
2006/08/22(火) 11:54:36おぉぉぉぉ素晴らしい!ありがとうございました。
なるほど、なるほど。(\w+)とgを組み合わせたらよかったんだ。
0462デフォルトの名無しさん
2006/09/08(金) 18:47:31$hoge =~ s/\$/\\$/g;
とすると
Final $ should be \$ or $name at fuga.pl line 53, within string
とエラーになります。$を\$に置換するにはどうすればよいのでしょうか。
0463462
2006/09/08(金) 18:58:57=~ s/\$/\\\$/g;
0464デフォルトの名無しさん
2006/10/25(水) 21:57:54絶対GPLのライブラリとか使ってると思うんだが…
0465デフォルトの名無しさん
2006/10/25(水) 22:45:18Perlについての質問箱スレに回答しておいたよー
0466デフォルトの名無しさん
2006/11/18(土) 02:19:05my @hogename = { 'apple', 'orange', 'peach' };
my @hogeval = { 200, 100, 400 };
#
# ここで、@list_of_hash の配列を作る
#
my @list_of_hash = ();
for($i=0; $i<@hoge; $i++) {
my $hash = {
name =>@hogename[$i]; #要素名
val =>@hogeval[$i]; #要素の値
};
push(@list_of_hash,$hash);
}
# @list_of_hash を要素の値の昇順にソートするエレガントな方法は?
# いまさっき、いわゆる「馬鹿ソート」をコーディングしたんだけど
# エレガントな方法がきっとあると思う。
#
0467デフォルトの名無しさん
2006/11/18(土) 02:44:09sort { $a->[1] <=> $b->[1] }
map { [$_, $_->{val} ] } @list_of_hash;
0468デフォルトの名無しさん
2006/11/25(土) 14:01:05my($val) = @_;
$a=int($val/(2**40));
$b=(int($val/1048576))%1048576;
$c=(($val-($a*1048576+$b)*1048576))%1048576;
return ($a,$b,$c);
}
32ビット以上の整数$val下位から20ビット、20ビット、10ビットを別な変数$c,$b,$aに取り出す
できるだけ高速なdecode関数を作るとして、もっとよい書き方はあるんでしょうか?
0469デフォルトの名無しさん
2006/11/26(日) 17:00:43その関数自体バグってないかい?
$aには41ビット目から上が全部入ってるけど。
0470デフォルトの名無しさん
2006/11/28(火) 12:06:38先に下の20ビットを抜き出した後で残り30ビットを普通に & や >> 使って求めればいいんじゃないだろうか。
つまり、こう。
# 下 10 ビットを $c へ入れる。
$c = $val % (2**10);
# 元の値を10ビット右シフト
$val = int($val / (2**10));
# 下 20 ビットを $b へ入れる。
$b = $val & ((1 << 20) - 1);
# 残り 20 ビットを $b へ入れる。
$a = ($val >> 20) & ((1 << 20) - 1);
但しこのままだと元の値が 52 ビット以上あった場合は 32 ビット用に
コンパイルされた Perl だと正常動作しないと思います(というのは
最初の20ビット右シフトをした段階で32ビット以上存在することに
なるためです。値の保持はできてもシフト演算でまともな結果を返さない
かも知れません)。
元の値が52ビット以上だったとしても正常動作させるためには最初の
20ビット右シフトをやった直後に残り30ビットだけを残して上の桁を
なくすなどの処理が必要です。
0471デフォルトの名無しさん
2006/11/28(火) 21:32:30sub decode {
my ( $val ) = @_;
# 40bit右シフトした値の下位10bit
my $a = ( $val >> 40 ) & 0x3FF;
# 20bit右シフトした値の下位20bit
my $b = ( $val >> 20 ) & 0xFFFFF;
# 下位20bit
my $c = $val & 0xFFFFF;
return ( $a, $b, $c );
}
これでどうさね?
もちろん処理系は64bitなんだろね?
0472デフォルトの名無しさん
2006/11/29(水) 17:21:03IEEE754の64ビット倍精度(よく32bitマシンのC言語のdoubleで使われているやつ)
だと仮数部が52ビットある。
http://ja.wikipedia.org/wiki/IEEE754
で、Perl は普通の 32 bit CPU の PC で普通にコンパイルすると数値はこれ
使ってると思うので、64ビット環境でなくても50ビットの整数は変数に入れ
られる。ただ問題は32bitを超える値の場合にそのままシフト演算ができない
ことにある。これは多分シフト演算をする時に32bit整数に変換してから行って
いるからだ。
0473デフォルトの名無しさん
2006/11/29(水) 17:40:30ベントとったひといない?
手元のperlは64bit整数使えないので自分でとるのはちょっと大変
なのです。
0474デフォルトの名無しさん
2006/11/29(水) 19:48:5632bit環境だとこれもうまく動作しないみたいです。
0475デフォルトの名無しさん
2006/11/29(水) 19:58:080476デフォルトの名無しさん
2006/12/01(金) 13:45:15>>470読んでないのか?
32ビット以下にしてしまえばビット計算できるんだから最初だけ
普通に計算して残りをビット計算すれば良いんだよ。
0477デフォルトの名無しさん
2006/12/01(金) 14:44:06ベンチは別の方法で回避したのを測定してもそれはその方法のベンチで
あって本来測定したかったものではないからだめだろ。
0478デフォルトの名無しさん
2006/12/01(金) 21:57:07それから unpack B10 とかで取ればいい。
0480デフォルトの名無しさん
2006/12/01(金) 22:27:21>>479
0481デフォルトの名無しさん
2006/12/02(土) 04:40:53ベンチとるかどうかはコードを見てからだな。
>>473
環境に依存するコードでよければ高速になるようだが、32bit環境でも
動作するコードで高速なコードがかけるかどうかは、50ビットの値から
32ビット以下の複数の値を取り出すエレガントな書き方があるかどうかだ。
シフト、論理演算、モジュラ、pack全部使えないのだから、だめなんでは。
0482デフォルトの名無しさん
2006/12/02(土) 11:03:530483デフォルトの名無しさん
2006/12/02(土) 11:28:17たとえばWin32ならCのDLL一個書いてWin32::APIですぐだ。さすがにコード貼る気はないが。
0484デフォルトの名無しさん
2006/12/02(土) 15:41:17unpackは"d"とかも駄目なのか?まだ使えないという結論はでてない。
468,471のコード見る限り64ビット倍精度で50ビットの数値が入力されるのでは。
>>482
環境依存の場合は64ビット環境で471のコードでOK。
>>483
0485デフォルトの名無しさん
2006/12/10(日) 13:01:48use bigint;
$hexstr="100000000";
print hex($hexstr),"\n";
というスクリプトを実行すると、
Integer overflow in hexadecimal number at ./test1.pl line 5.
4294967296
と警告が出ます。結果は正しいのですが。
本来どうするべきものなのですか。
0486デフォルトの名無しさん
2006/12/10(日) 14:09:53$hexstr="100000000";
$b = new Math::BigInt("0x$hexstr");
print $b,"\n";
小文字のbigintは気づかぬところでバグが出るから俺は好きじゃないな。
0487デフォルトの名無しさん
2006/12/14(木) 00:22:53数カ所ありました。
@{}って何を表しているのでしょうか?^^;
それっぽいキーワードなどGoogleに入れてみたんですが、
適切なサイトを見つけることができず、どなた教えて頂けると助かります。
0488デフォルトの名無しさん
2006/12/14(木) 00:27:13@LIST =(1,2,3);
$hoge = 'LIST';
print @{$hoge};
0489デフォルトの名無しさん
2006/12/14(木) 00:29:21おぉ、なるほど。
そんな書き方があったんですね(^^;
ありがとうございます。
0490デフォルトの名無しさん
2006/12/14(木) 02:49:05配列へのリファレンスをデリファレンスしているのでは。
$hoge[$num] = [1,2,3];
print join(",", @{$hoge[$num]});
>>488
いまどきシンボリックリファレンスを教えないように。
0491デフォルトの名無しさん
2006/12/15(金) 19:44:09てか、その程度のことはPerlの入門書に書いてあると思うのだが。
0492デフォルトの名無しさん
2006/12/26(火) 16:00:54read(STDIN, $temp, $ENV{'CONTENT_LENGTH'});
@query = split(/&/, $temp);
foreach (@query) {
($name,$value) = split(/=/);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$query{$name} = $value;
}
0493デフォルトの名無しさん
2006/12/26(火) 16:25:58@query = $q->param;
とか
@query = param;
とか試したけどうまくいかない。
(CGI.pmバージョン3.25)
0495デフォルトの名無しさん
2006/12/26(火) 16:43:07%params = $q->Vars;
0496デフォルトの名無しさん
2006/12/26(火) 17:28:000497デフォルトの名無しさん
2007/01/21(日) 01:22:040498デフォルトの名無しさん
2007/01/21(日) 21:13:10とりあえず環境依存だと思う。
0499デフォルトの名無しさん
2007/01/21(日) 21:37:20解像度というのは、デスクトップの大きさのこと?
Windows なら、GetWindowRectというAPIで取れる。
Perl での使い方は適当にググって調べてちょ。
0500デフォルトの名無しさん
2007/01/22(月) 02:39:24このスレの人からするとどうよ?
ttp://gihyo.jp/magazine/wdpress/serial/2007/alpha-geek/0000
0501デフォルトの名無しさん
2007/01/22(月) 10:57:560502デフォルトの名無しさん
2007/01/22(月) 16:05:410503デフォルトの名無しさん
2007/01/25(木) 15:58:52$| = 1;
print "PCの解像度を入力してください >> ";
my $kaizoudo = <STDIN>;
0504デフォルトの名無しさん
2007/02/06(火) 21:24:44Win32::Printer::Enum
で全てのプリンタ名のリストはできるのですが。。。
0505デフォルトの名無しさん
2007/02/06(火) 21:29:470506デフォルトの名無しさん
2007/02/06(火) 21:34:37やっぱりAPIか。。。
0507デフォルトの名無しさん
2007/02/07(水) 03:33:210508デフォルトの名無しさん
2007/02/08(木) 02:53:26WinAPIスレで親切な人が教えあげたみたいだが
0509デフォルトの名無しさん
2007/02/09(金) 20:30:15print "デフォルトのプリンター名を入力してください。\n";
my $default_printer_name = <STDIN>;
0510デフォルトの名無しさん
2007/02/28(水) 02:17:180511デフォルトの名無しさん
2007/02/28(水) 02:34:020512デフォルトの名無しさん
2007/02/28(水) 05:52:33さっそくすみません。
man perldiagでもいいんですね。助かりました。
0513デフォルトの名無しさん
2007/04/23(月) 18:12:33http://mixi.jp/view_bbs.pl?id=17607679&comm_id=1401396
Perlに関すること、cgiに関すること
なんでも質問できるコーナーです(たとえばApacheとかでもOKとします!)
(Web系であればOK)
ルール:
Google検索で調べてわかるようなことでも質問してもOKです
(初心者のうちは、どの情報を取捨選択したらイイのかわからないと思うので)
回答してくださるかたは、暖かく質問者を迎えてやってください
o(^^o) (o^^)o
0514デフォルトの名無しさん
2007/05/28(月) 23:35:260515デフォルトの名無しさん
2007/05/29(火) 00:15:440516デフォルトの名無しさん
2007/05/29(火) 06:21:140517デフォルトの名無しさん
2007/05/29(火) 10:12:40板違い。http://pc11.2ch.net/hack/
0518デフォルトの名無しさん
2007/05/29(火) 15:45:52下記みたいな書き方でいいのかな?一般的にはどう書くの?
----main.pl
-略-
package main
Use classA;
Use classB;
objectA = new classA;
objectB = new classB;
-略-
----
----classA.pm
-略-
package classA;
sub foo
{
my $self = shift;
$self->{val} = $main::objectB->var('param');
}
-略-
----
0519デフォルトの名無しさん
2007/05/29(火) 17:36:21$main:: なんかイラネ
0520518
2007/05/29(火) 18:14:23反省。質問を単純化しすぎだった。
オブジェクト複数を互いに呼び合えるように宣言するにはどうすれば良いか?って話なんだけど・・・。
>classA.pm から use classB; すりゃあいい。
した場合、objectAからobjectBのメソッドを呼べるけどobjectBからobjectAのメソッドを呼んだ場合どうなるんだろ?
他には、objectCやらobjectDが出てきた場合どうなるんだろ?
classA.pmで my objectB=new classB;したobjectBと、classC.pmでmy objectB=new classB;したobjectBは別物だよね?
漏れ、何か勘違いしてる?
漏れが思いつく範囲では、
・mainパッケージのobject保持変数を参照する(>518に書いた方法)
・各objectをお互いにセットする
ぐらいなんだが、一般的な書き方ってどうなのかと思って聞いてみました。
0521デフォルトの名無しさん
2007/05/29(火) 19:18:28それはメソッドを呼び出すのではなく、fooに引数として渡せばよいだけのことでは?
あるいは各クラスにクラスデータとして持たせるとか、、、
package SomeClass;
my $objectA = ClassA->new();
my $objectB = ClassB->new();
以下、メソッドの定義(メソッド内で$objectA,$objectBを使う)
0522518
2007/05/29(火) 19:56:38DBオブジェクトやセッションオブジェクトと画面表示オブジェクト(画面の種類毎にいくつかある)の連携
セッションオブジェクト(sessionObj)に格納したデータを画面表示オブジェクト(AdispObj)に渡して表示するのにメインで、
$AdispObj->setdata('dataA',$sessionObj->getdata('dataA'));
$AdispObj->setdata('dataB',$sessionObj->getdata('dataB'));
$AdispObj->displayAll();
見たいな事をしていたが、
メインが本筋の流れの制御以外の事を大量に抱え込むのでソースが見づらくなってる。
で、画面表示オブジェクトのメソッドの中でセッションオブジェクトやDBオブジェクトから
データを直接取り込んだらどうかと思ったわけ。
オブジェクト指向ってオブジェクトとオブジェクトがメソッドでやり取りして処理を進めるものなんだろ?
C++チョットかじった程度で、それから7年以上経ってるんで実際どうやってたか忘れてるんだが、
その辺のコーディングスタイルの標準がわかれば良いかと思ったんだ。
SomeClassとか、mainとは別のパッケージを作るのが一般的なの?
0523デフォルトの名無しさん
2007/05/29(火) 22:53:52クラス間でデータのやりとりはできんのよ。
mainでその操作を隠蔽したいのであれば、各クラスに静的な領域を作り、
完全修飾で直接アクセスまたはメソッドを介したアクセスをするしかないわな。
package Adisp;
sub displayAll
0524デフォルトの名無しさん
2007/05/29(火) 22:54:49sub displayAll {
0525デフォルトの名無しさん
2007/05/29(火) 22:58:22sub displayAll {
Session->new->getdata($param)でSessionクラスからデータをロード
以下処理
}
結局、最初に自分で書いたのが多少みにくくてもベストではないのかな
0526518
2007/05/29(火) 23:34:42オブジェクト指向について、復習をはじめたよ。
ttp://www.atmarkit.co.jp/im/carc/serial/object06/object06.html
オブジェクトが別のオブジェクトのメソッドを直接呼び出すパターンは存在するみたいだな。
何かオブジェクト指向実装の参考になるフリーソフトのPerlソースとかって無いかな?
0527デフォルトの名無しさん
2007/05/29(火) 23:50:12perlboot, perltoot, perltooc, perlbot
読めば?perl の OOP が(変態的な部分を含めて)載ってるよ。<- 当たり前
実装でハデにがちゃがちゃやってんのは、俺の専門分野の奴なら知ってるけど
専門外の人にはとてもじゃないけどお勧めできんので。スマン。
0528デフォルトの名無しさん
2007/05/30(水) 00:38:40クラス設計をまずは見直すべき。
OOなら、そういうのはインターフェースを使うんだがな。
Perlでそこまでするのはどうなんだろうな。
0529デフォルトの名無しさん
2007/05/30(水) 00:40:59みたいのは、デザインパターンだと、コマンドパターンの典型だな。
0530デフォルトの名無しさん
2007/05/30(水) 17:00:290531518
2007/05/31(木) 01:29:270532デフォルトの名無しさん
2007/06/14(木) 16:25:150533デフォルトの名無しさん
2007/07/08(日) 21:02:43perldoc boot
perldoc toot
perldoc tooc
perldoc perlbot
あたりを読んどけ
0534デフォルトの名無しさん
2007/07/08(日) 21:50:440535デフォルトの名無しさん
2007/07/09(月) 05:27:29Ruby に乗り換えると、Perl で OOP をしたいとう願望を達成できるのか?
いまいちよく分からないので、このスレを全部使ってでもいいから説明してくれ。
0536デフォルトの名無しさん
2007/07/09(月) 11:27:14<TMPL_INCLUDE NAME="ファイル名"> のファイル名を
動的に変更できませんか?
0537デフォルトの名無しさん
2007/07/09(月) 13:20:410538デフォルトの名無しさん
2007/07/09(月) 18:08:390539デフォルトの名無しさん
2007/08/11(土) 01:23:31漢字のとりあつかいについて、ちょっと行き詰まったので教えてください。
まず分かったこと:
・Perl で Shift JIS を扱うのは自殺行為に等しい。
・EUC は C言語や Perl 専用につくられたコードなので、
できればそっちを使うのが良いが Windows ではかえって混乱するだけ。
・今どきなら、UTF-8 を使うのが Cool。 Java も PHP も MySQL も、
UNIX 由来の言語はみな内部で UTF-8 処理しているから。
・ちなみに Windows は内部処理では UTF-16LE を使用しており
通常の API と UNICODE 版API の2種類を持っている。
ファイルシステムもUNICODE化されており、Shift JIS では無い文字がファイル名に使えたりする。
で、当然、use utf8 でバリバリ書こうと決心したのですが・・・
もうメチャクチャです。漢字ファイル名のファイルがぜんぜんオープンできないんです。
最初は画面表示も化けまくってたのですが、これは binmode STDOUT,":encode(cp932)" で解決しました。
でも print __FILE__ で化け化け、print $ARGV[1] も化け化け。readdir したファイル名も化け化け。
readdir で取ってきたファイル名でファイルをオープンすることもできず、もうどうにもなりません。
java、vbscript、jscript、php、c、c++、C#、j# もちろんBATファイルも、perl 以外の言語なら何も問題なくできる事が
perl に限って、漢字ファイル名が開けない、-f とか -d でもテストできないんです。
何か方法があるのでしょうか? open FILE, "<:encode(cp932)", "月間売上表.txt" じゃダメなんですかね・・・
0540デフォルトの名無しさん
2007/08/11(土) 02:20:00あんたが「漢字ファイル名」と呼称しているものがPerlからどう見えているのか
調べればいいだろ。
0541デフォルトの名無しさん
2007/08/11(土) 02:21:04Rubyでも使ってろ化す
0542デフォルトの名無しさん
2007/08/11(土) 15:01:57問題を切り分けるために、たった2行だけの短いプログラムにしてみました。
use utf8;
open FILE, ">:encode(cp932)", "月間売上表.txt" or die;
それでも 「Died at test.pl line 2.」 って怒られます。
こんなに短いプログラムの、いったいどこにバグがあるのか見当がつきません。
バッチファイルで
ECHO 7月,300まんえん>月間売上表.txt
だと何も問題なくファイルが作られるんです。だからディスクのエラーでは無いと思います。
もうワケワカメです (T_T)
0543デフォルトの名無しさん
2007/08/11(土) 15:31:200544デフォルトの名無しさん
2007/08/11(土) 22:08:35use Encode qw(encode);
use open ":utf8";
open FILE, ">", encode("cp932","月間売上表.txt") or die;
print FILE "Perlなんて、つかっちゃらめぇ><";
0545デフォルトの名無しさん
2007/08/12(日) 00:37:08おお、ネ申光臨!
バッチリです。そんな裏技があったとは知りませんでした。的確なご回答に感謝します。
ただ、そこまではウマクいったんですけど、処理を追加したらまた問題が発生しました。
12行目の rename で die してしまうんです。
(rename をコメントアウトすれば動くんですが、データのバックアップができなくなるんで・・・ちと不安)
use utf8;
use Encode qw(encode);
use open ":utf8";
open FILE, "<", encode("cp932","月間売上表.txt") or die;
@data = <FILE>;
close FILE;
foreach (@data) { $_ = "(済)" . $_ } # テキトーにデータ加工処理
if (-f "月間売上表.bak") { unlink "月間売上表.bak" or die }
rename "月間売上表.txt", "月間売上表.bak" or die; # <-- ここで死ぬ
open FILE, ">", encode("cp932","月間売上表.txt") or die;
print FILE @data;
close FILE;
0546デフォルトの名無しさん
2007/08/12(日) 01:03:19知的障害者が来ているようだな
0547デフォルトの名無しさん
2007/08/12(日) 02:19:17librsvgなどを使用するんでしょうか?
0548デフォルトの名無しさん
2007/08/12(日) 08:02:39頭の弱い子によくありそうなことじゃない。
障害って程でもなかろう。
0549デフォルトの名無しさん
2007/08/13(月) 15:42:40> できればそっちを使うのが良いが Windows ではかえって混乱するだけ。
クマーーーー
0550デフォルトの名無しさん
2007/08/13(月) 15:53:51法律違反すれすれなんだが、今さらそんな事を言ってもしょうがない。
だけどEUCの使用は明白な犯罪。やめた方が良い。
0551デフォルトの名無しさん
2007/08/13(月) 16:05:18∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0552デフォルトの名無しさん
2007/08/13(月) 16:22:00無茶苦茶言ってるなw
PerlでもShift_JISはよく使うし、状況次第でiso-2022-jpでもeuc-jpでも使うよ。
utf8は扱いづらい。他のコード同様、それを使うのが自然な時にだけ使う。
0553デフォルトの名無しさん
2007/08/13(月) 16:40:29老人?
0554デフォルトの名無しさん
2007/08/13(月) 17:28:27誰も >>545 の謎が解けないようだから代わりにオレがバカの相手をしてやる。
いいか、正解は、こうだ。日本語にはすべて encode("cp932",○○) をつける。
use utf8;
use Encode qw(encode);
open FILE, "<:encoding(cp932)", encode("cp932","月間売上表.txt") or die;
@data = <FILE>;
close FILE;
foreach (@data) { $_ = "(済)" . $_ } # テキトーにデータ加工処理
if (-f encode("cp932","月間売上表.bak")) { unlink encode("cp932","月間売上表.bak") or die } # ここ
rename encode("cp932","月間売上表.txt"), encode("cp932","月間売上表.bak") or die; # ここ
open FILE, ">:encoding(cp932)", encode("cp932","月間売上表.txt") or die;
print FILE @data;
close FILE;
print encode("cp932","月間売上表.txt を更新しました。\n");
どうだ、cp932 だらけのすばらしいコードだろ?実にゲージュツ的だ。惚れ惚れするね。
これを業界では 「encode cp932 地獄」と言う。割と有名なハナシだ。良く覚えておけ。
0555デフォルトの名無しさん
2007/08/13(月) 22:27:01マジレスするともうutf8ネタは繰り返し繰り返し出るネタで答えるのに飽きたネタだからスルーしてるだけよ…
0556デフォルトの名無しさん
2007/08/13(月) 22:54:09どこの糞業界だよ、それ
そもそもutf8なファイル名リテラルで使ってる時点で間違いに気づけよ
0557デフォルトの名無しさん
2007/08/13(月) 23:45:19それを言うなら、「そもそも perl 使ってる時点で間違いに気づけよ」 だな。
0558デフォルトの名無しさん
2007/08/14(火) 18:28:55そうか。代替案があるなら提示してくれよ。
どうせ煽ってるだけの馬鹿なんだろうけど。w
0560デフォルトの名無しさん
2007/08/15(水) 22:05:57それで全て解決だろ。
0562デフォルトの名無しさん
2007/08/16(木) 02:15:50>>554 は実際に utf8 で保存して、ちゃんと動作テストを済ませてありますよ。
これ以上弄りようの無い、カンペキなクソperlコードですがなにか?
>>560
バカですか?つうかバカですか?いやむしろバカですか?
>>561
以下同文
まぁいずれにせよ、質問に回答はしない、他人の回答はなじる罵倒する。
でも自分は代替案も何も出せない。
他の言語スレには見られない、Perl スレの決定的な特徴。
0563デフォルトの名無しさん
2007/08/16(木) 07:34:080564デフォルトの名無しさん
2007/08/20(月) 01:31:42それでも良いんだけど、
ファイル名があっちこっちに散乱しているのは美しく無いですよ。
こんな風に手直ししてみてはいかがですか?
use utf8;
use Encode qw(encode);
binmode STDOUT,"encoding(cp932)";
$filename = "月間売上表.txt";
$backup = "月間売上表.bak";
open FILE, "<:encoding(cp932)", encode("cp932",$filename) or die;
@data = <FILE>;
close FILE;
foreach (@data) { $_ = "(済)" . $_ } # テキトーにデータ加工処理
if (-f encode("cp932",$backup)) { unlink encode("cp932",$backup) or die }
rename encode("cp932",$filename), encode("cp932",$backup) or die;
open FILE, ">:encoding(cp932)", encode("cp932",$filename) or die;
print FILE @data;
close FILE;
print $filename," を更新しました。\n";
0565デフォルトの名無しさん
2007/09/23(日) 01:29:05install XML::XBEL
を実行すると、途中で
Install Module::Build now from CPAN? [y]
と出るので、yをおしました
そしたら最後に
/usr/bin/make install -- OK
*** Cannot install without Module::Build. Exiting ...
Running make test
Make had some problems, maybe interrupted? Won't test
Running make install
Make had some problems, maybe interrupted? Won't install
と出て、インストールできませんー!
どうか解決のアドバイスをください・・・・。。。。
0566デフォルトの名無しさん
2007/09/23(日) 05:49:18Module::Build がインストールできていないようなので、ログのもっと前の方を調べるべき。
0567デフォルトの名無しさん
2007/09/23(日) 10:29:56ありがとうございます!
0568565
2007/09/23(日) 12:52:59make、make testは通ったんですが、その後のmake installで
ERROR: Can't create '/usr/local/lib/perl5/site_perl/5.8.8'
Do not have write permissions on '/usr/local/lib/perl5/site_perl/5.8.8'
とエラーが出ました。
レンタルサーバー上での作業のため、一般ユーザ権限しかないので
怒られるのは当然なのですが、インストール先(?)を変更するには
どうすればよいのでしょうか?
0569デフォルトの名無しさん
2007/09/23(日) 13:12:07makefileくらい自分の環境に合わせて編集しろよw
0570565
2007/09/23(日) 13:42:15webで調べたのですが、どうしても書き方がわからなくて。
installdir=/home/(mydir)/lib/perl
といった感じに設定すればよいのでしょうか?
0571デフォルトの名無しさん
2007/09/23(日) 14:38:55perl Build.PL --install_base /home/foo
あるいは
perl Makefile.PL INSTALL_BASE=/home/foo
まずは perldoc か CPAN で探してみるべきだと思うんだよ。
http://search.cpan.org/~mschwern/ExtUtils-MakeMaker-6.36/lib/ExtUtils/MakeMaker.pm
http://search.cpan.org/~kwilliams/Module-Build-0.2808/lib/Module/Build.pm
0572デフォルトの名無しさん
2007/10/27(土) 03:03:32CSVにデータを書き込むにはどうすればいいでしょうか?
モジュールで読み込むことには成功しました。
他のモジュールをいくつか試したのですが上手くいきません・・・
ご教授お願いします。
0573デフォルトの名無しさん
2007/10/27(土) 03:07:13とりあえず、いちばん簡単なのは、ファイルをオープンして print 文で。
0574デフォルトの名無しさん
2007/12/24(月) 16:37:10http://dream.lib.net/room/cgi/e_acsdeny.html
このスクリプトの「l_alog.dat」へ出力されるアクセスログに「アクセスした時間」も表示したいんですが
どうすればいいのかわかりません。
同じサイトで配布してる掲示板から時間の処理してる部分コピってみてもうまくいかず・・・
ご教授願います。
0575デフォルトの名無しさん
2007/12/24(月) 16:39:380576デフォルトの名無しさん
2007/12/24(月) 17:13:37改造だからとかじゃない。webプログラミングはWebProg板。
0577デフォルトの名無しさん
2008/01/11(金) 00:10:36以下のように書くと、ファイルは読み込んでくれるのですが、スカラーがないと言われます。
whileのところが悪いと思いますがどう書いたらいいでしょうか?お願いします。
&data_input($line, $num);
sub data_input{
($refline, $refnum) = @_;
while ($refline = <>) {
chomp $refline;
0578577
2008/01/11(金) 00:32:090579デフォルトの名無しさん
2008/01/11(金) 14:43:33・WindowsのActivePerlで、cpanを使ってHash::Mergeをインストールしたい
・Cloneが必要らしいから、先にこっちをインストールしよう
・cpan Cloneすると、make testの段階で「msvcr90.dllが見つからない」とエラーが出る
・msvcr90.dllまでのパスを通すと、今度はCランタイムエラー(R6034)が出る ←今ここ
もうさっぱりわからない
環境:
WindowsXP Pro SP2
ActivePerl 5.10.0
Visual C++ 2008 Express Edition
0580デフォルトの名無しさん
2008/01/11(金) 16:33:57若干スレ違い気味だけど、自分の場合(XpSP2+VC2005)での対処法。
perl Makefile.pl
で出来上がった Makefile のなかの、実際にコンパイルが走ってる行で、
”-MD” となっているところを全て ”-MT” に変更する。
でさらに、リンクライブラリが列挙してあるところの
”mscvrt.lib” を ”libcmt.lib” に変更してから、nmake && nmake test を掛ける。
これは、詳しくはMSDNのリファレンスを見てもらいたいんだけど、
.Net がWindowsに入って以降、標準のCランタイムライブラリが、
”libcmt.lib”から”msvcrt.dll”に変更された。(VCでのデフォルトになった。)
この”msvcrt.dll”は、実体は”msvcr80.dll”(XP+Net2.0+VC2005の場合)へのダイナミックリンクのローダーなんだけど、
Windows上で有効なCランタイムライブラリが、以前(VC2003以前)は、”libcmt.lib”からのstatic_linkだったのが、
2005から、”msvcrt.dll”へのdynamic_linkへ変更された模様。
(だから、以前VC2003で書いてたCソースをそのままVC2005でコンパイルしなおしても、動かないことが頻発)
ウチで以前いろいろ試した時は、”*.manifest”があっても、ロードしてくれなかったり、
実際コンパイルしたマシン上では正常に動作しても、それをパッケージングした.ppmを、他のマシンに
インストールして実行したりすると、そちらと同じように「msvcr80.dllが見つかりません」みたなエラーが出て実行出来なかった。
(しかも、その他マシンに、.Netインストール済み且つVC2005もインストールして、コンパイルしたマシンと同じ 環境設定しても、同じエラーが出た。)
msvcrt90ってことは、.Netは3.0かな?OSはひょっとしてVistaかな?
VC2008はまだ触ったこと無いんで詳しくはわからないけど、まだこの方法でいけると思う。
でもMSDNによると、将来的には”libcmt.lib”のstaticlinkオプションを切って、全て”msvcrt.dll”での動的ロードに切り替えて行く方針らしい。
0581デフォルトの名無しさん
2008/01/11(金) 17:38:17その通り置換したらいけたー
ありがとう。勉強になったよ
0582デフォルトの名無しさん
2008/01/29(火) 11:07:02Debian -- sid の perl-base パッケージに関する詳細
http://packages.debian.org/ja/sid/perl-base
基本的な部分だけ入っているというのは具体的にどういう意味なんでしょうか。
1. perlパッケージが入っていればperl-baseパッケージを入れる必要がないのでしょうか。
2. perl-baseを入れればperlインタプリタが一緒にインストールされるのでしょうか。
(perlコマンドが使えなかったのでそういうわけでもなさそうですが。)
3. perl-baseを入れると何らかのモジュールがインストールされるのでしょうか。
4. perl-baseだと具体的にどういうものが不足するのでしょうか、可能性として。
以上お願いします。
0583デフォルトの名無しさん
2008/01/30(水) 18:04:432. perl-baseには/usr/bin/perlが含まれています。
3.4.5. ファイルリストをご覧ください。
http://packages.debian.org/ja/sid/i386/perl/filelist
http://packages.debian.org/ja/sid/all/perl-base/filelist
http://packages.debian.org/ja/sid/all/perl-modules/filelist
0584デフォルトの名無しさん
2008/01/31(木) 01:36:27split で分割して foreach で処理しようとしましたが、順序が元の文字列と変わる場合があります。
これが仕様なのかわかりませんが、どう対処すればよいでしょうか?
0585デフォルトの名無しさん
2008/01/31(木) 10:47:410586デフォルトの名無しさん
2008/01/31(木) 11:45:24なぜ順番が変わるのかを突き止めて、その原因を取り除く。
0587デフォルトの名無しさん
2008/01/31(木) 14:53:38>>586
レス有難うございます。
コード自体はそれほど長くないのであげることはできますが、必要なデータファイルが
ここに挙げるには大きすぎるので要点だけを書き射抜いたところ、再現しません。
仕様ではなさそうなので、ちまちま検討してみます。
0588デフォルトの名無しさん
2008/01/31(木) 17:31:430589デフォルトの名無しさん
2008/02/02(土) 20:17:12期待とは違う分割をされちゃって
順序が違ってしまったように見えてる、とかね
0590デフォルトの名無しさん
2008/02/02(土) 23:33:45お騒がせいたしました。
ちまちま検討した結果、なんともはやお粗末なバグであることが判明しました。
split 後の各ワード(日本語)は漢字、ひらかな、カタカナ、数字、アルファベット(全角・半角)
なのですがその語が辞書ファイルにあれば該当する語を返し、ない場合はカタカナ(全角)
である場合はひらかなにして返すと言うくだりで、件のひっくり返り事件がおきました。
この辞書ファイルというのがカタカナ・ひらかな変換ができていない時に構成されて
そのときどう言う訳か具体的には「ラッツ&スター」の「ラッツ」が「すたー」に、「スター」が
「らっつ」に登録されていたのです。
(continue)
0591デフォルトの名無しさん
2008/02/02(土) 23:36:39続き、
したがって、要点だけを抜き出したルーティンではこの現象が再現されなくて当然です。
(各ワードをプログラム中に設定し、それをsplitして単にひらかな変換しjoinし出力)
まことに申し訳ありません。
しかし、splitの仕様かとも思ってこちらに質問し、レスの感触からそうではなさそうだと
わかり遠回りせずに済みました。有難うございました。
0592デフォルトの名無しさん
2008/02/04(月) 20:04:42下記のように代入した場合に、「aa」と「bb」の部分にあたる要素名一覧を取得する方法はありますか?
$hash{'a'}->[0]->{'aa'} = 100;
$hash{'a'}->[0]->{'bb'} = 500;
@key = keys($hash{'a'}->[0])でできる?
とか思ったばかな自分にご教授お願いしますm(_)m
0593デフォルトの名無しさん
2008/02/04(月) 20:17:500594592
2008/02/04(月) 21:01:27おおおお━━━━(T▽T)━━━━!!
できました!
%{ }で囲えばよかったんですね…
勉強になりました!
ご協力感謝いたします。
どうもありがとうございましたm(_)m
0595デフォルトの名無しさん
2008/02/05(火) 08:28:55日本語のマッチングに関しては、「基本的にできない」という捉え方でよいでしょうか?
perlに精通するのが目的ではなく、実用上のツールとしてどうか、ということで
アドバイスをいただければ幸です。
0596デフォルトの名無しさん
2008/02/05(火) 09:30:51だめ
0597デフォルトの名無しさん
2008/02/05(火) 11:30:24Encodeとかencodingのドキュメントを読めばできるんじゃね?
0598デフォルトの名無しさん
2008/02/05(火) 11:53:58> %{ }で囲えばよかった
Perl のリファレンスの部分を勉強したほうがいいと思う。
そうしたら $hash{'a'}、$hash{'a'}->[0] の正体と、それをどう扱ったらいいのか理解できる。
0599デフォルトの名無しさん
2008/02/05(火) 14:07:040600デフォルトの名無しさん
2008/02/13(水) 01:37:08JavaScriptからHTMLへ値を受け渡すときのように、
CGIからHTMLへ値を受け渡すことは可能なのでしょうか?
CGIの変数の中身をHTMLのテキストボックス内で表示する方法はあるのでしょうか?
アドバイスをいただけるとありがたいです。
0601デフォルトの名無しさん
2008/02/13(水) 02:27:38Webプログラム板で聞け。
$value = "hogehoge";
print "<input type='text' value='$value'>";
0602デフォルトの名無しさん
2008/02/13(水) 03:36:09ありがとうございます!!
解決しました!!!!!
0603デフォルトの名無しさん
2008/02/13(水) 22:52:49今まであるサーバで使っていたCGIを新しいサーバに移設したいのです。
そこで、新しいサーバの指示通りに設定してみましたが、下記のようなエラーがでます。
何が原因なのでしょうか?・・・
: In string, @jcom now must be written as \@jcom at >form.pl line 27, near "/usr/sbin/sendmail -t -f s-hirono@jcom"
: In string, @mfi now must be written as \@mfi at >form.pl line 437, near "@mfi"
: form.pl had compilation errors.
0604デフォルトの名無しさん
2008/02/13(水) 23:08:03> In string, @jcom now must be written as \@jcom
って。
0605デフォルトの名無しさん
2008/02/13(水) 23:14:170606デフォルトの名無しさん
2008/02/13(水) 23:15:140607デフォルトの名無しさん
2008/02/13(水) 23:41:570608デフォルトの名無しさん
2008/02/14(木) 00:12:02「分からない」っていう先入観があるんだよな。
分かってしまえば、「あー、本当にそのまんまじゃん・・」って気付くんだけど。
0609デフォルトの名無しさん
2008/02/14(木) 00:17:22汚点気お姉さん:はい雲がこういう形に見えます
今朝のみのさん:いやその三角形のやつなんだっけ?
汚点気お姉さん:はい矢印ですね。風がこっちから吹いてきます
今朝のみのさん:いやその三角形のやつなんだっけ?
汚点気お姉さん:ああっ! 女神様っ
今朝のみのさん:いやその三角形のやつなんだっけ?
汚点気お姉さん:ああっ! 寒冷前線ですね。毎朝やってんだから分かれよ。
0610603
2008/02/14(木) 01:23:04って感じでやってみましたが、やはりだめでした。
確かにそのままの文章になってる気はしますが、根本的なところがわからないのでわかりません。
0611603
2008/02/14(木) 01:24:52実際にwebから送信してみると、下記のエラーがでます。
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
0612デフォルトの名無しさん
2008/02/14(木) 01:34:46まさにそのとおり。よく読めば中学生でもわかるやさしい英語でかいてある。
> In string, @jcom now must be written as \@jcom at >form.pl line 27, near "/usr/sbin/sendmail -t -f s-hirono@jcom"
翻訳:27行目の @jcom は \@jcom って書かなきゃダメだよ〜ん
他の残りの行は宿題として取っておく。自分で解けるよね?
0613デフォルトの名無しさん
2008/02/14(木) 01:41:44コンピュータだから難しい。
perl なんて使ったことが無いからわからない。
そんな先入観を捨てて、中学1年生のあの頃の素直な気持ちに帰ってみろ。
0614デフォルトの名無しさん
2008/02/14(木) 03:52:13それに対して>>603の丸投げ感は一体…
大体ソースコードも張らずにどうして欲しいんだ?
0615603
2008/02/14(木) 22:33:34CGIチェッカーのエラーは解消されました。
ですが、本番のweb上ではやはり>>611のエラーがでます。
>>614
スレ違いですか?それは失礼。
他に適当なスレが見つからなかったものですから。。。
他に良いスレがあるようなら教えてください。
0616デフォルトの名無しさん
2008/02/14(木) 23:03:410617デフォルトの名無しさん
2008/02/14(木) 23:05:01でもな、>>611 は、書いてることを読め、としか言いようが無い。
英語が読めないんだったら、読める人に頼んで訳してもらうとか、何か自分で考えろや。
この先一生つきまとう問題だぞ。
0618603
2008/02/15(金) 00:21:54ソースはってもいいすか?
>>611を読んでも、結局わからないのですが・・・ 管理者に聞けみたいな話ですよね?
0619デフォルトの名無しさん
2008/02/15(金) 01:14:11つ[ http://pc11.2ch.net/test/read.cgi/php/1189939783/l50 ]
0620デフォルトの名無しさん
2008/02/16(土) 23:45:29windows上で *.pl を実行する場合(一般的かどうかわかりませんが私の環境では)、
ウィンドウが開かず全画面で一瞬真っ黒になります。
これを避けるため、batに記述して起動しています。
しかし中には引数の受け渡しの関係からこれができない場合が生じました。
batを使わずにウィンドウ上で起動する方法があればご教示ください。
0621デフォルトの名無しさん
2008/02/17(日) 00:11:04よくわからんけど、Perl.exeにPIFファイル設定すりゃなんとかなるんじゃね?
0622デフォルトの名無しさん
2008/02/17(日) 00:22:25レス有難うございます。やってみます。
0623デフォルトの名無しさん
2008/02/17(日) 03:07:42期待する出力は
aa
aa86.txt
ww
ww873.txt
q
q12.txt
なのですが実際は
aa
ww
q
となります。どこが悪いのかご教示ください。
ソース:
use utf8;
@f = ("aa.txt","aa86.txt","fff73.txt","ww.txt","ww873.txt","q.txt","q12.txt","mm55.txt",
"gg21.txt",);
@nn = grep(/^\D+$/, @f);
foreach $nn(@nn){
$nn =~ s/\.txt//;
print "$nn\n";
@n = grep(/^$nn\d+$/, @f);
print join("\n", @n);
}
0624デフォルトの名無しさん
2008/02/17(日) 03:49:09@n = grep(/^$nn\d+\.txt$/, @f);
0625デフォルトの名無しさん
2008/02/17(日) 03:58:30↓
@n = grep(/^$nn\d+\.txt$/, @f);
じゃない?^ とか $ の意味がわかってて使ってるのかな?
0626623
2008/02/17(日) 14:35:25>>625
レス有難うございます。そんなポカだったか…、と思って元ソースでやってみると
問題は違っていました。
ここに書き込むためにいろいろ端折っているうちに余計なところまで削ったようです。
その所為で同じような出力になりそれを書き込んでしまった次第です。
そこで元ソースをそのまま書き込もうとしましたが、長すぎてできません。
0627623
2008/02/17(日) 14:36:27use utf8;
use Encode;
$movepath = encode('sjis', "パソコン\\番号なし");
chdir "E:\\My Documents";
chdir $movepath;
@files = glob("*.txt");
@nonumfiles = grep(/^\D+$/, @files);
print join("\n",@nonumfiles),"\n-----------------------\n";
foreach $nonumfile(@nonumfiles){
$nonumfile =~ s/\.txt//;
print $nonumfile,
"\n=======================\n";
@numfiles = grep(/^$nonumfile\d+\.txt$/, @files);
foreach(@numfiles){
print $_, "\n";
}
print "\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
}
0628623
2008/02/17(日) 14:37:33---------------------------------
"お助けパソコントラブル救急隊.txt",
"お助けパソコントラブル救急隊886.txt",
"お助けパソコントラブル救急隊887.txt",
"お助けパソコントラブル救急隊888.txt",
"なっとく!ワード773.txt",
"なっとく!ワード774.txt",
"なっとく!ワード775.txt",
"なっとく!ウインドウズXP.txt",
"なっとく!ウインドウズXP873.txt",
"なっとく!ウインドウズXP874.txt",
"なっとく!ウインドウズXP875.txt",
"なっとく!ウインドウズXP876.txt",
"なっとく!エクセル836.txt",
"なっとく!エクセル837.txt",
"なっとく!エクセル838.txt",
"なっとく!エクセル839.txt",
"なっとく!パソコン用語.txt",
"なっとく!パソコン用語1265.txt",
"なっとく!パソコン用語1266.txt",
"なっとく!パソコン用語1267.txt",
"なっとく!パソコン用語1268.txt",
"WindowsXPの便利技と裏技855.txt",
"WindowsXPの便利技と裏技856.txt",
"WindowsXPの便利技と裏技857.txt",
"WindowsXPの便利技と裏技858.txt",
"グーグルの便利技と裏技212.txt",
"グーグルの便利技と裏技213.txt",
"グーグルの便利技と裏技214.txt",
0629623
2008/02/17(日) 14:40:35これをスクリプト内におけば問題は起きません。
ところが実際にディレクトリを読んで動かすと
お助けパソコントラブル救急隊.txt
なっとく!ウインドウズXP.txt
なっとく!パソコン用語.txt
-----------------------
お助けパソコントラブル救急隊
=======================
~~~~~~~~~~~~~~~~~~~~~~~~~~
なっとく!ウインドウズXP
=======================
なっとく!ウインドウズXP873.txt
なっとく!ウインドウズXP874.txt
なっとく!ウインドウズXP875.txt
なっとく!ウインドウズXP876.txt
~~~~~~~~~~~~~~~~~~~~~~~~~~
なっとく!パソコン用語
=======================
~~~~~~~~~~~~~~~~~~~~~~~~~~
となってしまいます。
0630623
2008/02/17(日) 14:43:38よろしくお願いいたします。
0631デフォルトの名無しさん
2008/02/17(日) 16:38:44(´-`).oO(「 use utf8; 」してるわりに、ファイル名の文字コードはsjisなのはなんでだろう・・・。)
(´-`).oO(とりあえず、Linuxでファイル名もUTF-8で動かしたら動いたっぽいが・・・。)
0632デフォルトの名無しさん
2008/02/17(日) 22:21:32>ところが実際にディレクトリを読んで動かすと
ここがポイントだな。
perl スクリプトは utf8 で動いてる。
Windows は ShiftJIS で動いている。
文字コードを変換してやらないとダメね。
さぁ、perl の utf8 地獄でもがき苦しみましょう。
0633デフォルトの名無しさん
2008/02/23(土) 19:56:15配列の一要素にオートインクリメントがついてて
++$freq[$hour]; と書いてあるのですが、実際どこの部分に1がたされてるんですか
aとbの解釈どっちが正しい?
a、$hour に1足されてループする
→$freq[0]、$freq[1]、$freq[3]、$freq[4]、$freq[5] みたいのができる
b、$freq[$hour] という値自体に1足されてループする
一応、全体の書いとくとこんな感じです。
ちなみに$freq[ ]という配列はこのwhile文できゅうに出てきてます
while($ln = <FILE>)
{
($hour , $min , $host , $refer , $agent) = split( /\t/ , $ln);
++$freq[$hour];
}
0634633
2008/02/23(土) 20:06:07自己解決しました
0635デフォルトの名無しさん
2008/02/23(土) 20:09:09b
0636635
2008/02/23(土) 20:09:480637正志
2008/02/23(土) 21:54:580638デフォルトの名無しさん
2008/02/23(土) 22:26:01use strict;
use warnings;
use Text::CSV_XS;
use List::MoreUtils qw(each_arrayref);
my $csv = Text::CSV_XS->new({binary=>1});
my @list;
while (<>) {
next unless $csv->parse($_);
push @list, [$csv->fields];
}
my $ea = each_arrayref(@list);
while (my @l = $ea->()) {
$csv->combine(@l);
print $csv->string . "\n";
}
0639正志
2008/02/23(土) 23:20:56なんかすごいものをありがとうございます。
Windowsの場合はどうしたらいいでしょう
0640デフォルトの名無しさん
2008/02/23(土) 23:23:100641デフォルトの名無しさん
2008/02/24(日) 15:25:58よしんば持っていても、perl Makefile.PL が吐き出す Makefile は不都合が多すぎる。
(MinGW 派はいつも疎外感にさいなまれ、泣いている)
その上 XP 以降だと、こんな状況らしい:
ttp://harapeko.asablo.jp/blog/2006/12/21/1041020
幾多の困難を乗り越えて、ようやく Windows でも新しいモジュールを試すことが出来るのだ! ( 完 )
# でも Text::CSV_XS は新しくはないだろって?
# いいや、少なくとも去年の 6 月以前の ActivePerl には入っていないのだ orz
0642正志
2008/02/24(日) 21:55:150643デフォルトの名無しさん
2008/02/25(月) 11:52:510644デフォルトの名無しさん
2008/03/15(土) 01:10:04@Dataという配列は100個のハッシュを持ってるとします。
$Data[1]{"A"} = FA1
$Data[1]{"B"} = FB1
...
$Data[100]{"A"} = FA100
$Data[100]{"B"} = FB100
FB1〜FB100でソートし標準出力に出力したいのですが、どうすればいいか教えて下さい
0645デフォルトの名無しさん
2008/03/15(土) 01:14:440646デフォルトの名無しさん
2008/03/15(土) 17:34:40LinuxではinlineCが動作するんだけど
activeperlだとVCでコンパイルしてるとあったから
VCのコンパイラ持ってきてコンパイルしてるんだけど
inlineがmakeでエラー吐く・・・
コンパイラがactiveperlと非同期のせいだと思うんだけど
どうすればいいのかな???
0647デフォルトの名無しさん
2008/03/15(土) 17:37:290648デフォルトの名無しさん
2008/03/18(火) 02:41:07width指定が真っ当に動いてくれないのな。
まぁ1文字の幅がASCII文字と違うから当然なんだけども。
なにか簡単な解決策とかある?
0649648
2008/03/18(火) 05:10:25Pod/Text.pmをローカルに持ってきてuse lib。以下のように修正。
もっといい方法があれば教えてエロい人。
sub wrap {
my $self = shift;
local $_ = shift;
my $output = '';
my $spaces = ' ' x $$self{MARGIN};
my $width = $$self{width} - $$self{MARGIN};
my @chars = grep(/[^\n]/, split(//));
my $len = 0;
my $tmp = '';
while (@chars) {
my $c = shift(@chars);
$tmp .= $c;
if ($c gt chr(0xff)) { $len += 2; } else { $len++; }
if ($len+1 > $width) {
if ($chars[0] =~ /[。、]/) {
$tmp .= shift(@chars);
}
$output .= $spaces . $tmp . "\n";
$tmp = '';
$len = 0;
}
}
if ($tmp) {
$output .= $spaces . $tmp;
}
$output =~ s/\s+$/\n\n/;
$output;
}
0650デフォルトの名無しさん
2008/03/18(火) 10:59:30・ファイルを直接編集せずに、Pod::Text::wrap(でいいのか?未確認)を上書きしたほうが楽かと
・「0xffより上」は不正確(不正確でもいいならいいけど)
・Jcodeのjfold()を使うのも手かも(あれも正確じゃないけど)
そういや昔、ちゃんと禁則処理して桁折りするモジュール探したけどなかったんだよな……。
いまもないのかな?
0651648
2008/03/18(火) 22:56:30「0xffより上」に関しては不正確でも構わないのでこのままでいきます。
いわゆる半角カナとか使わなければ問題にはならなさそうですし。
>・ファイルを直接編集せずに、Pod::Text::wrap(でいいのか?未確認)を上書きしたほうが楽かと
やってみました。
これは楽でいいですね。ありが�d!!
sub _Pod_Text_wrap { ... }
undef *Pod::Text::wrap;
*Pod::Text::wrap = \&_Pod_Text_wrap;
関数のオーバーライドは初めてやったのですけど、
こんな感じでいいのかな? いちおう動いてますが。
0652デフォルトの名無しさん
2008/03/21(金) 11:10:42僕は
*Pod::Text::wrap = sub {
...
};
とかやっちゃいますが。
元のを残すなら上書きする前に
my $org_wrap = Pod::Text->can('wrap');
とかすれば良かった気がする。
0653デフォルトの名無しさん
2008/03/24(月) 00:29:20macOS10.3にperlの5.10をいれて動かしたいんですが
インストールしたはいいもののその後どうしたらよひか
わかりません。どうか詳しい方おしえてください。
0654デフォルトの名無しさん
2008/03/24(月) 09:42:370655653
2008/03/24(月) 14:35:270656デフォルトの名無しさん
2008/03/24(月) 15:22:28perl -e 'print "Hello Worldn"'
と打ち込んでリターン。
これで君も今日からPerlプログラマー
0657653
2008/03/24(月) 16:16:39perl -e 'print "Hello Worldn"
と打ち込んでPerlプログラマーになりました!
しかし、perl -V と打ち込んでリターンしても
バージョンは5.8のままです…。
0658デフォルトの名無しさん
2008/03/24(月) 20:34:100659デフォルトの名無しさん
2008/03/24(月) 20:39:05新しいperlがある場所をターミナルに教えるための設定変更が必要になる。
これはperlとは関係ないから、Mac板のプログラム関係のスレで聞いた方がいいと思う。
そのとき、どうやってperlをインストールしたかも書いた方がいいよ。
Darwin **** 9.2.2 Darwin Kernel Version 9.2.2: Tue Mar 4 21:23:43 PST 2008; root:xnu-1228.4.31~1/RELEASE_PPC Power Macintosh
$ whereis perl
/usr/bin/perl
$ perl -v
This is perl, v5.8.8 built for darwin-thread-multi-2level
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2006, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
何かの参考になれば。。。
0661653
2008/03/24(月) 21:28:04656さん、659さん。ありがとございます!
ちなみにperlのバージョンは5.8と5.10ってどう違うんですか?
あと5.10が使えるようになったら5.8は捨ててしまってもよいのですか。
0662デフォルトの名無しさん
2008/03/24(月) 21:33:09スレ違いだって言われてんだから大人しく引っ込んでろっての。
あっちにゃ「macをUNIXとして使う」スレだの「terminal初心者」スレ
だのあんだろーーがよお。
bash デフォだから
echo 'PATH=/usr/local/bin/:$PATH' >> ~/.bashrc
source ~/.bashrc
perl -v
してみろっての。
お前さんが、/usr/local/bin/ 以外に perl 5.10 入れたんだったら知らん。
つーか何で5.10を入れたんだ?5.86で十分だろ?変なクセつけるだけだぜ?
っての。
0663デフォルトの名無しさん
2008/03/24(月) 21:35:47>>661
基本的に流儀として/usr/binの中とかからは捨てないよ。
/usr/binの中のものをupdateする時はupdate相手のbackupを取って置くものだし。
0664653
2008/03/24(月) 22:10:160665デフォルトの名無しさん
2008/04/03(木) 23:54:44・・・
foreach(sort(keys(%hoge))){
・・・
}
のように %hogeにあたる部分を $file を用いて参照する方法があればご教示ください。
0666デフォルトの名無しさん
2008/04/04(金) 00:02:580667デフォルトの名無しさん
2008/04/04(金) 00:09:53有難うございます。
0668デフォルトの名無しさん
2008/04/04(金) 03:37:51ご教示ください。
0669デフォルトの名無しさん
2008/04/04(金) 04:15:22できなかっただけのようです。
取り消します。
0670デフォルトの名無しさん
2008/04/04(金) 23:30:57$zra{'def'}='abc';
foreach( @zcap){
eval{
print "(%z$_){'def'}\n";
};
}
を修正して、 abc と出力させる方法を教えてください。
0671デフォルトの名無しさん
2008/04/04(金) 23:43:41$zpo{'def'}='abc';
でした。
0672デフォルトの名無しさん
2008/04/05(土) 00:14:37$zpo{'def'}='abc';
foreach( @zcap){
eval('print "$z' . $_ . '{'def'}n"' );
}
0673デフォルトの名無しさん
2008/04/05(土) 00:42:26有難うございます。できました。
0674デフォルトの名無しさん
2008/04/06(日) 02:57:02イタタタタタタタタタタタタタタタタタタタタタタ
0675デフォルトの名無しさん
2008/04/11(金) 23:23:16eval{
foreach(@cap){
push(@acap, '\@a$_');
}
};
foreach (@acap){
$$_[0] = 6;
}
print $aaa[0], $apo[0];
で 66 を出力したいのですが修正をお願いします。
0676デフォルトの名無しさん
2008/04/11(金) 23:28:140677デフォルトの名無しさん
2008/04/12(土) 01:01:390678デフォルトの名無しさん
2008/04/12(土) 01:28:30>>1
0679デフォルトの名無しさん
2008/04/12(土) 01:41:380680デフォルトの名無しさん
2008/04/12(土) 01:52:23また、"おまえ"です。
よろしくお取り計らいください。
0681デフォルトの名無しさん
2008/04/12(土) 11:15:18シンボリックリンク相当の処理をevalで無理矢理やりたいのですね。
しかも全部グローバル変数で。
そんなことをしなければならない理由がわからない…いまやリファレンスを使えば
同等のことができますよ。
@aaaと@apoを、
my %array = ( aaa => [], apo => []);
として、
my @acap;
foreach (keys %array){
push(@acap, $array{$_});
}
foreach (@acap){
$_->[0] = 6;
}
print $array{aaa}[0], $array{apo}[0];
ではだめなの?
もっともこのコード自体なにしたいかわからんけど。
0682デフォルトの名無しさん
2008/04/12(土) 21:47:50ご指導有難うございます。
理解できない部分が大半なので、じっくり検討します。
なにせ古い解説書しか持たないもので…。
新しいのが欲しいが高いもので。
0683”おまえ”
2008/04/13(日) 00:23:33「シンボリックリンク」というのがまず分からなかったのですが、UNIXの
概念で、エイリアスかショートカットのようなものですね。
グローバルにしているのはローカルである必要がないことと、my の理解ができていない
ためかサブルーチンにいちいち argumentを渡すのが面倒なことが理由です。
aaa=> [] の記法は知らなくて、無名の配列のアドレスを aaa というポインタで参照できる
というふうに理解しました。
eval を使ったのは次の理由です。
@cap = qw(aa po); は実は aa とpo の間に50ほどの2文字があり、このセットをもう一組
必要とします。それらの2文字で参照できる配列群の配列を設定しようとしました。
静的な配列なので、あらかじめポインタの配列を準備すればよいのでわざわざ push で
押し込む必要はないのですが、2セットを楽に準備できればと思い eval を使いました。
その結果他の手段の知識がないために、あのような妙で馬鹿馬鹿しいコードとなった
わけです。
教えてくださいましたコードを必要な部分だけにしたところ、
%acap = ( aa => [], po => []);
foreach (keys %acap){
$acap{$_}[0] = 6;
}
$acap{po}[12]=777;
print $acap{aa}[0], $acap{po}[0], $acap{po}[12];
となりまして、期待通り動作しました。最後の2行は配列が確かにできていることの
検証のつもりです。
で、%acap = ( aa => [], po => []) という記法が使えると、
%tcap = ( aa => [], po => []) としてコピー&ペーストすれば簡単に当初の目的が
達成できることになり、ややこしい eval は必要なくなりました。
皆様にはお目ざわりだったようですが、今回はこれで恙無く解決しました。
有難うございました。
0684681
2008/04/13(日) 02:03:04シンボリックリファレンスの間違いですorz
50個も要素があるなら、
%acap = ( aa => [], po => []);
は
%acap = map { $_=> [] } qw(aa po);
と書いた方が視認性が上がります。
# もっともこの初期化はなくても動きますが
0686デフォルトの名無しさん
2008/04/13(日) 23:51:26http://www.borujoa.org/upload/source/upload18138.zip
0687デフォルトの名無しさん
2008/04/13(日) 23:52:28板違い
webprog池
0688デフォルトの名無しさん
2008/04/16(水) 15:19:15昨日からPerlを勉強し始めました。
今変数を勉強しています。そこで、
$a=2;
$b=3;
$a=$b;
という、変数の代入を見て不思議に思ったのですが、
なぜ、せっかく変数aで2を指定してあげたのに、
後からわざわざ変数bに代入などするのでしょうか。
この記述は、主にどういちた場合に使用されるのですか?
どうかご回答よろしくお願いします。
0689デフォルトの名無しさん
2008/04/16(水) 16:27:310690デフォルトの名無しさん
2008/04/16(水) 17:13:12意図で書かれてるんでしょ。
$a=2;
$b=3;
# $a の初期値 2 を使いつつ $b に対して血で血を争うような壮絶な演算処理
$a=$b;
# 再び $b は地獄のような処理をくぐり抜けて
$a=$a+$b;
なんてことがあってもいいじゃない。
参考にしてる本が変数名に $a と $b 使ってるのなら、そっちが気になる。
0691688
2008/04/16(水) 19:41:12なるほど、わかりました!
どうもありがとうございます。
参考にしている本は「Perlの絵本」です。
初心者にもわかりやすいと聞いたので。
0692デフォルトの名無しさん
2008/04/16(水) 20:16:400693デフォルトの名無しさん
2008/04/16(水) 20:55:250694690
2008/04/16(水) 22:45:31自分だったorz
絵本は初心者さんに人気みたいだけど、さて。
0695デフォルトの名無しさん
2008/04/17(木) 09:06:18よくないなら他の書籍買うから、参考にダメな理由を教えてくれ。
0696デフォルトの名無しさん
2008/04/17(木) 10:59:310697デフォルトの名無しさん
2008/04/17(木) 12:22:15(絵本に例として $a, $b が使用されていた場合)
「$a, $b は共に定義済みの変数。」
sort { $a <=> $b } @hoge ;
なんかの時に使う。なので特に必要が無い限りは sort 以外で使わない方が良い。
熟練者が分った上で使う分には文句は言わないし、2ch で例として出して来ても
あまり気にしないが、これを初心者向けに安易に使用するのは疑問符が付く。
ただ、もっと大きな地雷を幾つも抱えてる初心者本はあるので、この一点のみで、
読んでもいない「絵本」を評価は出来ない。スマン。
参考
1. perl の定義済み変数
perldoc の perlvar ( 但し、5.8 以降。バージョンに注意。)
ググるかコマンドラインで perldoc perlvar
2. 熟練者の $a,$b 使用例
ttp://search.cpan.org/src/GBARR/Scalar-List-Utils-1.19/lib/List/Util.pm
ふんだんに使われている。perl 標準添付モジュール。
3. 大きな地雷の例
「一週間でマスターするPerl for Macintosh」
OSX が一般化しようとしている時代(2002/07)に、classic 環境の
MacPerl にて perl を解説。もちろん、OSX へのインストール等、事細か。
OS9 の人も相手にしたかった事情があるのかもしらんが…。
っと長々と書いて投げようと思ったら、696氏が既に指摘してた。ま、いいか。
0698デフォルトの名無しさん
2008/04/20(日) 20:43:364時間ほどで作りました
0699デフォルトの名無しさん
2008/04/20(日) 20:44:140700デフォルトの名無しさん
2008/04/21(月) 02:17:43@acap = map { $_=> [] } qw(aa po);
foreach (@acap){
for($i=0;$i<7;$i++){
$$_[$i] = $i+11;
}
}
foreach $acap(@acap){
$j++;
foreach $cap($acap){
print '$j=', "$j\t$cap\n";
print join("\t",@$cap), "\n";
}
print "\n";
}
としました。
目論見では aa, po の2組だけが出力される筈でしたが
余計な(?)もう一組が出力され、この理由がわかりません。
ご教示いただければ幸です。
0701デフォルトの名無しさん
2008/04/21(月) 02:19:57もう一組でなく、二組でした。
0702デフォルトの名無しさん
2008/04/21(月) 02:24:52なんでデバッグしないの?
0703デフォルトの名無しさん
2008/04/21(月) 02:31:41有難うございます、そういう手がありましたか。
0704デフォルトの名無しさん
2008/04/21(月) 08:45:32> 余計な(?)もう一組が出力され、この理由がわかりません。
それは、あなたがそうなるようにコードを書いているからなのですが…。
普段からuse strictをしてコードを書くようにすると幸せになれます。
で、変なところは、1行目で@acapで受けているところ、それから、
2回目のforeachの内側のforeach $cap($acap){ の$acapです。
何をしているのか、1ステップずつ意味を確認して組んでみてください。
0705デフォルトの名無しさん
2008/04/21(月) 14:57:06丁寧なご指導有難うございます。
1行目が致命的であったことがわかりました。
map の意味がわかっていないことに加えて、
ハッシュのレファレンス表現になじみがないことが
絡まりあって=>がmapに必要なものだと思ったことが
原因だと思います。
2番目のご指摘がまだ理解できません。もうすこし検討します。
sed からの亡命者である所為かuse strictを適用すると
コンパイルエラーの嵐で、使い物になりません。
折角のご助言ですが当分はこれなしでやってみようと思います。
修正分:
@acap = map { \@$_} qw(aa po);
foreach (@acap){
for($i=0;$i<7;$i++){
$$_[$i] = $i+11;
}
}
foreach $acap(@acap){
$j++;
foreach $cap($acap){
print '$j=', "$j\t$cap\n";
print join("\t",@$cap), "\n";
}
print "\n";
}
0706デフォルトの名無しさん
2008/04/21(月) 16:07:37# 厳しいようですが、use strictを指定して使い物にならないコードは、
# すでに使い物になっていない気が…。そのようなコードはいざ動かない
# ときどこに問題があるのかを探すのが猛烈に大変ですよ。
@acap = map { \@$_} qw(aa po);
はなにをしたくてこのようなことをしているのですか? これは、結局
@acap = ([], []);
としているのと同じです。
それと、後半でfor文が2重になっていますが、内側の foreach $cap($acap){ は
ループにする意味がありません。要素が$acap一つだけなら、$cap = $acapと同じですから、
foreach $acap(@acap){
$j++;
print '$j=', "$j\t$acap\n";
print join("\t",@$acap), "\n";
print "\n";
}
で済みます。
まずは、何をしたいかを日本語で整理してみてはいかがですか。
日本語で書いて伝わらなければ、コードを書くことはできません。
0707デフォルトの名無しさん
2008/04/21(月) 16:51:510708サイタマン ◆mYN3wsz7vE
2008/04/21(月) 17:24:09何やってるか分からないコード各習慣付けるのは良くないですよ。
0709デフォルトの名無しさん
2008/04/21(月) 17:35:27違う。この質問者は2chをデバッガと思ってる。
だから次には
「何故か出力が「$j=1 ARRAY(0x800ea0)」みたくなるのですが」
って質問が来る。
0710デフォルトの名無しさん
2008/04/21(月) 17:39:01サイタマンもようやくプログラム板に常駐するようになったか。
自信がついたのかな?w
0711デフォルトの名無しさん
2008/04/25(金) 21:10:12cpam、cpanp、yumの3種が考えられますが、
これらを混在させて使った(同じシステムで複数の方法を使った)ときに
起こりうる弊害にはどんなものがあるでしょうか?
0712デフォルトの名無しさん
2008/04/25(金) 21:33:26この構文&newという動詞を起動するらしいのですが、構文に&をつける
必要はないのでしょうか?
Sfido = &new Camel "Amelia";というふうに
0713デフォルトの名無しさん
2008/04/25(金) 21:37:28PerlのOOP記法では&を付けなくてOK
0714デフォルトの名無しさん
2008/04/25(金) 21:43:200715デフォルトの名無しさん
2008/04/25(金) 21:47:433日かかって16ページしか進まない、俺むいてないのか・・w
0716デフォルトの名無しさん
2008/04/25(金) 21:54:01付けちゃいけない。
というか今まで付けたことなんてなかったから試してみたらエラーになった。
書き方覚えたら実験してみるといいよ
0717デフォルトの名無しさん
2008/04/25(金) 21:56:04ラクダ本は初心者には難しいからそれくらい普通
実際の例見ながら勉強した方がいいと思う
0718デフォルトの名無しさん
2008/04/25(金) 22:00:24と焦っておる
0719デフォルトの名無しさん
2008/04/25(金) 22:08:05向いてない
0720デフォルトの名無しさん
2008/04/25(金) 22:19:08ゆっくりじっくりやるほうがいいよ。
何を以って「マスターした」になるのかはわかんないけど
リャマ本を先に経由したほうがラクダ本が読みやすくなるんじゃないかな?
0721デフォルトの名無しさん
2008/04/25(金) 22:23:05がいいって書いてあったから、明日りゃまかってくるぜ
0722デフォルトの名無しさん
2008/04/25(金) 22:42:251年もかかるのなら向いてないってことだ。
0723デフォルトの名無しさん
2008/04/25(金) 22:54:330724デフォルトの名無しさん
2008/04/25(金) 23:02:340725デフォルトの名無しさん
2008/04/25(金) 23:38:42むいていない人もがんばって!
0726デフォルトの名無しさん
2008/04/26(土) 14:40:49俺はPerl初めてから4年くらい経ってラクダ本のおもしろさに気づいたクチなんだが。
0727デフォルトの名無しさん
2008/04/26(土) 19:07:59別にラクダ本楽しくないとはいってない
専門用語がおおくてわかりにくいっていっただけ
ここはひねくれたプログラマーが少数だけどいるみたいだな
まぁプログラムはひねくれてたほうがいいのかな
解読しやすいしな、perl使える人らしいけど実際すごいのは
perl作った人だから勘違いすんなよwwwwwww
0728デフォルトの名無しさん
2008/04/26(土) 19:16:56文法からしてひねくれてる。
0729デフォルトの名無しさん
2008/04/26(土) 19:25:43っていう話があって、エリートになるにはオープンソースを使いこなさなくては
ならないって言われてた。
よくよく考えたら、本当にあったのはエクセルのパッケージなんだよね。
だからどうしたって言われればそれまでだけど、ちょっと考えさせられない?
0730デフォルトの名無しさん
2008/04/26(土) 21:06:430731デフォルトの名無しさん
2008/04/26(土) 21:14:090732デフォルトの名無しさん
2008/04/27(日) 01:07:06> 昔さ、マンハッタンのエリートのデスクにはPerlのパッケージが必ずあった
> っていう話があって、
ね〜よ
0733デフォルトの名無しさん
2008/04/27(日) 01:15:17それらしいパッケージを作るところからはじめないと。
0734デフォルトの名無しさん
2008/04/27(日) 05:58:26とか言っている不誠実な「向いていない人」がいますが、ラクダ本は専門用語は
決して多くないし、わかりにくくもありません。知的刺激に満ちた面白い本です。
初心者の人は、「向いていない人」の自己正当化のゴマカシに騙されて
敬遠しちゃったりしないで、ぜひ読んでみてくださいね。
0735デフォルトの名無しさん
2008/04/27(日) 06:56:180736デフォルトの名無しさん
2008/04/27(日) 07:09:55そういうこと書くと、頭悪すぎてラクダ本に挫折した連中が荒しに来る。
0737デフォルトの名無しさん
2008/04/27(日) 09:57:27#!/usr/bin/perl
$camels='123';
print $camels+1,"\n";
これ1行目なんでシングルクォートなん?
2行目に続くから?要するに2行目が結果だから?
0738デフォルトの名無しさん
2008/04/27(日) 09:59:38認識されているからだよね?
0739デフォルトの名無しさん
2008/04/27(日) 10:44:00また入門書の例か?
文字列として定義した変数が、+演算子で使われると数値に置き換えられる、
って例じゃないの?
0740デフォルトの名無しさん
2008/04/27(日) 10:54:27これ別に$camels=123;でいいんでないの?なぜシングルで囲む?
0741デフォルトの名無しさん
2008/04/27(日) 10:56:260742デフォルトの名無しさん
2008/04/27(日) 11:05:50だから$camels=123;ここまでの構文ならこの表示でいいのだけど
2行目のprint $camels+1,"\n"; の最後の構文かんでるから
$camels='123';ってこと?シングルは変数展開なしですもんね?
0743739
2008/04/27(日) 11:13:19> これ別に$camels=123;でいいんでないの?なぜシングルで囲む?
普通はそれでいいよ。
しかし、この質問のネタが何かの入門書じゃないの?と俺のエスパー能力が反応したんだよ。
入門書だから、そういう非現実だけどわかりやすい例を書いてあるんじゃないの?と。
0744デフォルトの名無しさん
2008/04/27(日) 11:17:280745デフォルトの名無しさん
2008/04/27(日) 22:32:43$foo = 0123 ; と
$foo = '0123' ; とじゃ
print $foo +1;
した時に答えが変わる事くらいは覚えとこう。
0746デフォルトの名無しさん
2008/04/28(月) 00:50:27print 0123;
ぐらい見ておいてもらわないと、いろいろ混乱するんじゃないかな。
まだ10進数しか出て来てないだろうし。
0747デフォルトの名無しさん
2008/04/28(月) 02:36:11って表示された。
0748デフォルトの名無しさん
2008/04/28(月) 21:37:060749デフォルトの名無しさん
2008/04/29(火) 12:38:04使えるようになったんだが、これテキストエディタに書き込んで
perlのなかのbinにテキスト保存してdosで呼んで機能させるんだよね?
0750デフォルトの名無しさん
2008/04/29(火) 12:50:310751デフォルトの名無しさん
2008/04/30(水) 00:23:05ってやると、<tableタグが消えちゃいます。
消えない方法はありますか?
あとから join で元にもどせないと困るんです。
0752デフォルトの名無しさん
2008/04/30(水) 00:54:410753デフォルトの名無しさん
2008/04/30(水) 21:42:16ありがとう。30分かかって、やっと理屈がわかりました。
0754デフォルトの名無しさん
2008/05/12(月) 03:36:300755デフォルトの名無しさん
2008/05/12(月) 10:46:53#ファイル周りがダメなのは知ってるけど、他にもある?
0756デフォルトの名無しさん
2008/05/13(火) 03:19:25あんなダメOSを見習う必要は無い
EUC、及び今後はUTF8だけ使えれば充分
0757デフォルトの名無しさん
2008/05/13(火) 12:52:48UTF8で誤魔化そうとしても、ほんのちょっとの時間稼ぎにしかならない。
0758デフォルトの名無しさん
2008/05/13(火) 18:39:05UNICODE対応してるOSって、どんな状態のOSの事だ?
UTF-32ベースで動いてるOSの事か?
ってか藻前UTF-8、UTF-16、UTF-32の違い分かってないだろ?
0759デフォルトの名無しさん
2008/05/13(火) 19:40:54あなた、もしかして
20世紀からタイムトラベルしてきたんですか?
0760デフォルトの名無しさん
2008/05/26(月) 19:47:30package Klass;
sub new { bless {} }
sub foo { 1 }
package main;
# use feature qw/say/; # これだと大丈夫
use Perl6::Say; # こうしたときに
print Klass->new->foo, "¥n"; # うごく
say STDOUT Klass->new->foo; # うごく
$k = Klass->new;
say $k->foo; # うごく
# なんかこれだけ
# Can't locate object method "say" via package "Klass" at ...
# で死ぬ
say Klass->new->foo;
別にもう Perl6::Say なんて使わなくてもいいのは知ってるけどなんか気持ち悪いです
Perl6/Say.pm ものぞいてみましたがよくわかりません
なにこれー?
0761デフォルトの名無しさん
2008/05/26(月) 23:29:33・Klass->new->foo;
・new Klass->foo;
これが等価なように、
・say Klass->new->foo;
・(Klass->say)->new->foo;
これも等価。
0762デフォルトの名無しさん
2008/05/27(火) 05:47:10�d
>・say Klass->new->foo;
>・(Klass->say)->new->foo;
>これも等価。
うはwwwww
Perl こえーwww
0763デフォルトの名無しさん
2008/05/31(土) 08:21:53以下の2つはどういった意味なのでしょうか
[@array]
@{$array[1]}
0764デフォルトの名無しさん
2008/05/31(土) 13:18:38$array[1]におそらく配列リファレンスがはいっていてデリファレンスしてる。
0765デフォルトの名無しさん
2008/05/31(土) 14:04:49「無名リファレンス」←このキーワード検索で理解できました
0766デフォルトの名無しさん
2008/06/02(月) 08:08:29ここの一番下のサンプルの関数sub write_to_file($$) { .. }についてくる$$って何でしょうか
もしかして明示的に引数の数を指定している?
0767デフォルトの名無しさん
2008/06/02(月) 12:06:10「プロトタイプ」
0768デフォルトの名無しさん
2008/06/02(月) 13:01:15こういう文法、PERLってマルチパラダイムだよなーって感じます。
0769デフォルトの名無しさん
2008/06/15(日) 01:19:00すると DON'T ってとこに
> DON’T
> "$foo"
> $$variable_name
> ‘$userinput‘
> /$userinput/
ってあるんですが、最後を除いて意味がよくわかりません(3番目はシェルコマンドで実行するなってこと?)
特に1番目と2番目は何で代替しろってことなんでしょう?
0770デフォルトの名無しさん
2008/06/15(日) 01:41:23$$variable_name # シンボリックリファレンス氏ね
`$userinput` # 汚い文字列をシェルに渡すな
/$userinput/ # 汚い文字列を正規表現に突っ込むな
0771デフォルトの名無しさん
2008/06/15(日) 02:28:35�d。だいたい理解。
2番目は ttp://kabocha.org/jelfe/07/22.html ですね。
$ perl -e "($hoge,$sl)=('foo','hoge');print qq($sl\n$$sl)"
hoge
foo
知らなかった・・・これは危ない。
0772デフォルトの名無しさん
2008/07/20(日) 10:45:52use warning;
use strict;
0773Perl中級者になりたい
2008/07/23(水) 15:49:05URLを入力するとリンク切れをチェックしてくれるツールです。
http://w7.oroti.com/~webhacks/
ソースコードを公開しますので、厳しいご意見お待ちしてます(汗
0774デフォルトの名無しさん
2008/07/23(水) 16:54:330775デフォルトの名無しさん
2008/07/23(水) 17:06:30http://w7.oroti.com/~webhacks/cgi-bin/linkhacks.cgi?url=%3cscript%3ealert%28%22aho%22%29%3b%3c%2fscript%3e
気をつけろよ。
0776デフォルトの名無しさん
2008/07/23(水) 17:09:05webprog池
0777デフォルトの名無しさん
2008/07/23(水) 17:23:38o print $cgi->header();
0778デフォルトの名無しさん
2008/07/23(水) 17:35:45o use HTTP::Status qw/status_message/;
x 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'
o 'LinkHACKS (+http://w7.oroti.com/~webhacks/)'
x $browser->get(...);
o $browser->head(...);
0779デフォルトの名無しさん
2008/07/23(水) 17:54:32$resp->status_lineで取れるから
>my %http_code = ...;
これはいらないな
0780Perl中級者になりたい
2008/07/23(水) 18:22:40ahoの嵐・・・orz
受け取ったデータのチェックが必要ですね。。頑張って修正します。
>>776
webprog板逝ってきます。
>>777-779
/ \
/ ─ ─\
/ (●) (●) \
| (__人__) | )) なるほど
/ ∩ノ ⊃ /
( \ / _ノ | |
.\ “ /__| |
|\ /___ /|
| ノ
ヽ y /
\ / /
/ /
(___)_)
0781デフォルトの名無しさん
2008/08/10(日) 22:27:23http://dankogai.typepad.com/blog/2006/03/lamda_calculus_.html
また、RubyでもProcオブジェクトの呼び出しに"proc.()"という書き方が採用されようとしています(もう採用されたかは知りません、試してないので)
http://www.rubyist.net/~matz/20071011.html
ここで思うのですが、なんで"$coderef()"じゃなくて"$coderef.()"のような文法を採用するのでしょうか。
前者のほうが、読みやすい+書きやすいようにおもうのですが。確か、javascript では後者だったような気がします。
0782デフォルトの名無しさん
2008/08/11(月) 20:45:520783デフォルトの名無しさん
2008/08/11(月) 22:58:24現行だと$coderef->() だろ?
. の方がバイト数がかせげる & '->' と言う定義をせずに済む。
何しろ > は => だの <=> だの他にも大活躍だから、、、
0784デフォルトの名無しさん
2008/08/12(火) 00:18:26それ答えになってなくね?
0785デフォルトの名無しさん
2008/08/12(火) 02:01:32名前空間とパーザの都合。……Rubyの場合は。
Perlは何故なんだろうねぇ。変数を示すプリフィクスが付いてるんだから問題なさそうな気がするんだが。括弧省略との相性が悪いのかな?
0786デフォルトの名無しさん
2008/08/12(火) 02:48:01例えば、&はP5と違って関数をオブジェクト化したものを返すけど、
これを呼ぶときも、&bar.()と&bar()の両方で書ける。
0787781
2008/08/12(火) 09:24:25ttp://perlcabal.org/syn/S06.htmlの
"Pointy blocks"のコード例がそれなのかなあ。
あとアンパサンドのプレフィクスでオブジェクト化された関数が返るのは
Wrappingのあたりでしょうか。
P6のシンタックスはおもしろいですね。キュンとなる。
時間が取れたら遊んでみます。
0788デフォルトの名無しさん
2008/08/12(火) 19:21:42他にも++なんかの接尾演算子でも、$foo.++; と $foo++; の両方で書ける。
これは演算子がオブジェクトのメンバだっていうイメージなんだろうね。
0789デフォルトの名無しさん
2008/08/12(火) 20:44:56変数Aにオブジェクトが入ってて
オブジェクトに$Cの値を入れようとしてるんですが
下記の1,2の違いについて調べても分からなくて
教えてくださるかたいませんか?_?ヒントだけでもいいので;w;
1: $A->B($C);
2: $A->{B} = $C;
0790デフォルトの名無しさん
2008/08/12(火) 20:57:04「オブジェクトに$Cの値を入れ」るが意味不明。
もう少しちゃんとした言葉を使って説明してくれ。
1は PackageOfA::B($A, $C) とおなじ、
2は ${$A}{"B"} = $C とおなじ。
0791デフォルトの名無しさん
2008/08/13(水) 10:14:092のBはハッシュのキーでCは値
0792デフォルトの名無しさん
2008/08/30(土) 01:16:38Emeditorの正規表現の方がよくね?
0793デフォルトの名無しさん
2008/08/30(土) 01:28:070794デフォルトの名無しさん
2008/08/30(土) 01:30:050795デフォルトの名無しさん
2008/08/30(土) 01:34:300796デフォルトの名無しさん
2008/08/30(土) 01:39:450797デフォルトの名無しさん
2008/08/30(土) 01:54:450798デフォルトの名無しさん
2008/08/30(土) 03:24:450799デフォルトの名無しさん
2008/08/30(土) 08:20:160800デフォルトの名無しさん
2008/08/30(土) 08:28:11もしかして、20世紀から生きてる人ですか?
0801デフォルトの名無しさん
2008/08/30(土) 09:07:510802デフォルトの名無しさん
2008/08/30(土) 11:48:21スパゲッティー作りになることを義務づけられるぞ。
0803デフォルトの名無しさん
2008/08/30(土) 13:30:380804デフォルトの名無しさん
2008/08/30(土) 13:33:410805デフォルトの名無しさん
2008/08/30(土) 13:44:140806デフォルトの名無しさん
2008/08/31(日) 08:33:14算数の勉強頑張れよ。
0807デフォルトの名無しさん
2008/09/09(火) 13:31:522008/08/13の勢いは異常だな
0808デフォルトの名無しさん
2008/10/26(日) 12:34:290809デフォルトの名無しさん
2008/11/11(火) 02:41:57学校の課題で、このプログラムの仕組みをこと細かく説明しろっていうのがでて困ってます
助けてください
0810デフォルトの名無しさん
2008/11/12(水) 02:48:46課題は自分でやれよ。
0811デフォルトの名無しさん
2008/11/12(水) 19:39:55sjisがベタで使われてるとか、htmlのタグの記述に統一性が無いとかで
極力係わり合いになりたくないコードだなぁ
タイトル増やすのも面倒だ
こいつを書き直せって課題なら、嬉々としてやるところだw
0812デフォルトの名無しさん
2008/11/12(水) 20:24:090813デフォルトの名無しさん
2008/11/13(木) 00:23:01ガッコの課題で、そんな例題を出すのかぁ・・・・
そりゃ問題だ!
0814デフォルトの名無しさん
2008/12/18(木) 09:08:52ttp://homepage3.nifty.com/hippo2000/perltips/rcvmail.htm
を参考にプログラムを書こうと思っているのですが、
上記ページのWordDecoderを使ったサンプルプログラムを実行すると、
保存されたファイル名がURLエンコードされている状態になってしまいその原因が分かりません。
実はURLエンコードされている方が扱いやすくてうれしいのですが、
原因が分からないのが気持ち悪くて…。
どなたか教えていただけないでしょうか。
動作環境はFreeBSD6.0で、Jcode, MIME-Toolsはportsでインストールしました。
よろしくお願いいたします。
0815814
2008/12/19(金) 05:30:45失礼しました。
0816デフォルトの名無しさん
2009/01/12(月) 16:26:57使い方として、
・本体(exxeed.pl)は編集の必要がありません。
・cpiファイルにスクリプトを追記して、動作を指定します。
・起動方法
コンソールから
> perl exxeed.pl hogehoge.cpi
とだけ書かれているのですが、これって、
サーバー内のCronなどからコマンドで実行するって事ですか?
0817デフォルトの名無しさん
2009/01/12(月) 17:12:410818デフォルトの名無しさん
2009/01/12(月) 22:20:52>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
0819デフォルトの名無しさん
2009/01/12(月) 22:31:55シェルから
この意味がぐぐってもイマイチ理解できてないです。
要するに、サーバーにアップして使用するのではなく、
コマンドプロンプトとかから実行するものなのですか?
0820デフォルトの名無しさん
2009/01/12(月) 22:42:56そのperlスクリプトが提供する機能がわからんのに答えられるわけがなかろう。
定期的に動かすものならcronに登録するし、
CGIならWebサーバのCGIディレクトリに設置するし、
コマンドラインで実行することになってるプログラムならコマンドプロンプトやターミナルエミュレータから実行するし、
GUIアプリならエクスプローラやファイラーからダブルクリックする。
0821デフォルトの名無しさん
2009/01/12(月) 23:08:34サーバで動かしたいなら、サーバにアップロードしてから
リモートシェルの類で実行すればいい。
なんにしてもperlの使い方の質問じゃないから、
適当なスレを探してくれ。
0822デフォルトの名無しさん
2009/01/13(火) 01:30:46コンソールから
> perl exxeed.pl hogehoge.cpi
これ読んでわからんのなら、パソコンの使い方を勉強しろ。
そうとしか言いようが無い。
駅前のアビバに通った方がいいぞ。
0823816
2009/01/13(火) 04:20:00まだよくわからないので、他スレで聞いて見ます。
0824A
2009/01/13(火) 16:19:41UNIX/Linuxの場合、シェルから起動(実行)する、とも言う。
>>816 何がしたいのか書いてない。
<form method="POST" action="exxeed.pl"> ただこれは無理だと思う。
0825デフォルトの名無しさん
2009/01/13(火) 17:23:000826デフォルトの名無しさん
2009/01/14(水) 02:44:27Windows しか触ったこと無いひと。
0827デフォルトの名無しさん
2009/01/14(水) 17:07:49アビバってそんなこと教えてくれるの?
0828デフォルトの名無しさん
2009/01/16(金) 23:18:15utf-8の"〜"を Encode::from_to で EUC-JPに変換すると、?に文字化けするようです。
-------------------------------------サンプル
#!/usr/bin/perl -w
use strict;
use Encode;
my $str ="〜";
Encode::from_to($str, "utf-8", "euc-jp");
print "Content-type: text/html\n\n<html><head><meta http-equiv='Content-Type' content='text/html; charset=EUC-JP'></head><body>$str</body></html>";
-------------------------------------サンプル
これってEncode.pmのバグですか?対応方法は何かありますか?
0829デフォルトの名無しさん
2009/01/16(金) 23:30:03http://blog.livedoor.jp/dankogai/archives/50488765.html
以降質問はこちらへ。
Perlについての質問箱 38箱目
http://pc11.2ch.net/test/read.cgi/tech/1221967332/
0830デフォルトの名無しさん
2009/01/16(金) 23:32:34�dです。
0831デフォルトの名無しさん
2009/01/17(土) 11:09:28関係無いけどウェブプログラミングなら
>#!/usr/bin/perl -w
>use strict;
>use Encode;
ここは
#!/usr/bin/perl -T
use strict;
use warnings;
use Encode;
のほうが良い。
0832デフォルトの名無しさん
2009/01/28(水) 12:51:50Perlで、ハッシュデータにKEYとKEYに対応した値が多数格納されているとします。
そのKEYに対応した値から、KEY自体を取り出したいのですがそれは可能でしょうか。
可能でしたら簡単なプログラム例を教えて頂けると大変助かります。
0833デフォルトの名無しさん
2009/01/28(水) 13:18:12if ($value eq "うんこ") {
print $key;
}
}
0834デフォルトの名無しさん
2009/01/28(水) 13:21:59reverse使えばできる。
my %new_hash = reverse %old_hash;
これで、元のハッシュの値をキーとして、
元のハッシュのキーを値とするハッシュができる。
ただし、元のハッシュで値が同じものが2つ以上あるときには、
うまくいかないです。
0835デフォルトの名無しさん
2009/01/28(水) 13:27:30なるほど、納得致しました。
お二方とも有り難うございます!
0836デフォルトの名無しさん
2009/01/31(土) 09:16:57<h2 class="title">を正規表現で表すと、(英数字の[0-9|a-zA-Z]は省略)
<h2.\s.class=\"title\">でよいのでしょうか
0837デフォルトの名無しさん
2009/01/31(土) 10:00:450838デフォルトの名無しさん
2009/01/31(土) 10:26:57試したのですが、出来なかったので間違っていると思うのですが
どこが間違っているのかわかりません
0839デフォルトの名無しさん
2009/01/31(土) 10:55:38htmlのタグで一番簡単なマッチはこの2通り
/<.*>/
/<[^>]*>/
てか正規表現のスレで聞けばはやいのでは?
0840デフォルトの名無しさん
2009/01/31(土) 12:21:37"."は文字一つ食べてごちそうさま。
"\s"はスペース一つ食べてごちそうさま。
もうひとつ"."も文字一つ食べてごちそうさま。
何文字用意してあげれば、おなかいっぱいになるの?
うん、三文字。
スペース一文字じゃ、おなかいっぱいにならないね。
食べるの控えたら、だいじょうぶ?
食べるの控えたら、だいじょうぶ?
0841デフォルトの名無しさん
2009/01/31(土) 14:59:32/<.*?>/
こっちは?
0842デフォルトの名無しさん
2009/02/01(日) 02:47:31現在読んでいるコードに、
return 0 if ($hoge < 1);
のような行があるのですが、これはどのような処理になるのでしょうか?
関数の途中にあり以下にも処理の記述があるため、私の想像では
return 0
の後ろに続く、ifが真のときにreturnが実行されるかと思うのですが、
なぜこのような書き方をするのでしょうか?
私が考えるのでは、
if ( $hoge < 1) {return 0;}
とすればいいかと思うのですが、何か理由があるのでしょうか?
質問をいくつもすみませんが、教えていただけるとありがたいです。
0843デフォルトの名無しさん
2009/02/01(日) 02:53:23英語の表現で、
hogehoge if fugafuga
ってのがあるだろ? それをプログラミング言語の文法に組み込んだのが前者。
意味は後者と同じ。
0844デフォルトの名無しさん
2009/02/01(日) 02:59:26ありがとうございます。
やはり、ただの書き方の違いだけでしたか。
0845デフォルトの名無しさん
2009/02/01(日) 04:19:25>return 0 if ($hoge < 1);
>if ( $hoge < 1) {return 0;}
書き方の違いもあるけど直感でわかるかどうかも重要だから
そういう箇所は書き直していったら後から読む人は助かる箇所も出てくると思う。
それで動作しなくなったら問題なので十分に注意、検証は必要だけどね。
0846デフォルトの名無しさん
2009/02/01(日) 07:57:500847デフォルトの名無しさん
2009/02/01(日) 07:59:55さらに
return 0 if $hoge < 1;
とも書ける。前に書く場合は括弧が必須。
文修飾子(statement modifiers)(後ろに付ける if, unless, while, until, foreach)を使うなら
括弧を書かない場合が多いんじゃないかな。
0848デフォルトの名無しさん
2009/02/01(日) 10:14:39まさか単語一致せずにかw
0849デフォルトの名無しさん
2009/02/01(日) 10:43:43C言語脳の恐怖・・・
0850デフォルトの名無しさん
2009/02/01(日) 11:07:45単語一致以前に or と || では優先順位が異なる。
0851デフォルトの名無しさん
2009/02/01(日) 11:24:22ああ、そういう意味ですか。
operatorの「or」も置換して、operat||にしてしまうのかと思った。
0852デフォルトの名無しさん
2009/02/02(月) 00:01:510853デフォルトの名無しさん
2009/02/02(月) 14:48:35zshrcには書いてあるパスの集合がAだとすると、
local/lib/perl5/5.8.8
local/lib/perl5/i386-freebsd-64int
A
local/lib/perl5/5.8.8/BSDPA
local/lib/perl5/site_perl/5.8.8/mach
...
というような並びで並んでます。
Aの前と後にどこからパスを持ってきているのかわからず。perlのコンパイルの時にそんな指定するんでしたっけ?
PERLLIBも指定してなし、よくわからない
0854デフォルトの名無しさん
2009/02/02(月) 14:54:16そうです
0855デフォルトの名無しさん
2009/02/02(月) 15:43:52そんなこと言い出したら "or" が部分文字列として含まれる単語なんて
いくらでもあるじゃないか
このスレ見える範囲で検索しただけでも word, form, ports, livedoor とか出てきた
0856デフォルトの名無しさん
2009/02/02(月) 16:28:22なるほど。ありがとうございます。
コンパイルした後に変えることは無理?
5.8.8をもう一回コンパイルし直すならいっそのこと5.10をコンパイルしようかなと思うのですけど。
0857デフォルトの名無しさん
2009/02/04(水) 02:58:370858デフォルトの名無しさん
2009/02/04(水) 11:48:57use libとか@INCに入れれば解決なのだけど、
そもそもそのリストをどこからどういう順番で取ってきているかを知りたかったのです。
おれの@INC、パスがダブっちゃったりしてるから。
0859デフォルトの名無しさん
2009/02/04(水) 15:59:20ソースのperl.cを参照。
ソースをそのままコンパイルして使うならまあいいんだけど、
一部のLinuxディストリによっては、これにpatchが当たってて、
読み込むパスや順番が異なってる。
0860デフォルトの名無しさん
2009/02/04(水) 21:37:40> コンパイルした後に変えることは無理?
スクリプト単位なら use lib や BEGIN { @INC = ... } 。
ユーザ単位なら環境変数 PERL5LIB / PERLLIB。
システムワイドに設定したければ、sitecustomize.pl が
利用可能ならその中で好きに編集すればいい。
0861デフォルトの名無しさん
2009/02/13(金) 21:46:00最小のコードにしてみたらこうなった
sub a{return [(1)x5];}
@b = @{a()};
for(@b){print;print " ";}print "\n";
2行目の@{ }で囲っているところは何をやっているのか
誰か教えて
0862デフォルトの名無しさん
2009/02/13(金) 22:16:210863デフォルトの名無しさん
2009/02/13(金) 22:43:000864デフォルトの名無しさん
2009/02/14(土) 03:18:56kore nani?
0865デフォルトの名無しさん
2009/02/14(土) 05:50:120866デフォルトの名無しさん
2009/02/16(月) 00:03:57リファレンス作ってデリファレンスしてる。
無名配列を作りたい時に便利。
例えば文字 "," のカウントをしたい場合。
====
my $str = q{a,c,b,d,e} ;
#my $cnt = $str =~ /,/g ; #<= ダメ
#my $cnt = my @tmp = $str =~ /,/g ; #<= tmp 作るの?
my $cnt = @{[ $str =~ /,/g ]} ;
print $cnt . qq{\n} ;
====
最もこのケースだったら以下の方法のが遥にスマート
my $cnt = () = $str =~ /,/g ;
my $cnt = $str =~ tr/,// ;
ちなみに↓コレだと @{[]} する意味があんまり…
@{[ $ref ]} ;
0867デフォルトの名無しさん
2009/02/18(水) 20:18:16これか
0868デフォルトの名無しさん
2009/02/18(水) 20:45:270869デフォルトの名無しさん
2009/03/04(水) 12:28:30(糞レスすまん
0870デフォルトの名無しさん
2009/03/25(水) 23:33:08「exec △△.pl $param1」とexecを使用して呼び出しても、
呼び出し先の△△.plが実行されないです。
環境が原因と思うのですが、
初心者で何が原因かわからないです。
0871デフォルトの名無しさん
2009/03/26(木) 00:01:050872デフォルトの名無しさん
2009/03/26(木) 00:49:200873デフォルトの名無しさん
2009/03/26(木) 02:17:490874デフォルトの名無しさん
2009/03/26(木) 06:22:15ttp://takeshima.2ch.net/test/read.cgi/news4vip/1237983005/50
ベンチの支えあっての原JAPAN 亀井こそが真のMVP
↓
イチロー福留青木稲葉がいる外野においては常にベンチが決まっているような状態で、
でももう一人予備の外野を選ばなくてはいけなくなった。
そのような役は自軍から出さねばならないと考えた原監督は亀井に白羽の矢を立てた。
誰もが落選すると思われていた亀井だったが、最終メンバーに選ばれた。
亀井も一度は監督に辞退を伝えたが、原監督は亀井に説得を行う。
亀井は尊敬する監督にそこまで言われたら、ということで辞退を撤回。
叩かれる事が分かっていながらもベンチから声援を送り続ける。
そんな亀井はMVPに相応しい
0875デフォルトの名無しさん
2009/03/26(木) 16:37:430876デフォルトの名無しさん
2009/03/30(月) 14:32:06フルパス文字列から親ディレクトリ名を取り出す方法を検討中なのですが、
例) /hoge/fuga/var/foo を入れると /hoge/fuga/var が出てくる
$PATH = '/hoge/fuga/var/foo';
$PATH =~ m|.*/|;
$PATH = $&;
$PATH =~ m|\/$|;
$PATH = $`;
こんな風にして一応動いたんですが、カコワルくて人に見せれないコードです。
もっとすっきりキレイに仕上げる方法がある気がしてなりません。
もっとキレイな方法を教えてもらえませんか?
0877デフォルトの名無しさん
2009/03/30(月) 15:28:28my $target = '/var/www/html/index.html';
my($per_dir) = $target =~ m|(.+)/[^/]+/?|;
print $per_dir,"\n";
”親directory”とゆうことなので。
それじゃイヤンってんなら、ググるなりして調べてくれ。
0878デフォルトの名無しさん
2009/03/30(月) 17:18:53ソレダ!�d。
0879デフォルトの名無しさん
2009/03/30(月) 23:25:17File::Basename の dirname 使えば?
0880デフォルトの名無しさん
2009/03/31(火) 01:13:27$path =~ s/[^\/]*$//;
0881876=878
2009/03/31(火) 21:50:51�d。やりたかった事は、レン鯖のDOCUMENT_ROOTの1個上にDBやらパスワードの設定ファイル(xml)を置いて、それを読み込んで処理する作業だったのです。
use XML::Simple;
- 略 -
my $DOCUMENT_ROOT = $ENV{'DOCUMENT_ROOT'}; # httpサーバが表示する / ディレクトリ
my ($SETTING_PATH) = $DOCUMENT_ROOT =~ m|(.+)/[^/]+/?|; # 親ディレクトリ
my $DB_Info_XML = XMLin($SETTING_PATH. '/dbpassword.xml');
my $DB_NAME = $DB_Info_XML->{dbinfo}->{dbname};
- 略 -
という感じで実装しました。あとで>>880のやり方に書き換えます。^^
0882デフォルトの名無しさん
2009/04/01(水) 20:54:35CatalystでDBIx::Class使って pagerやろうとしたのです
my $rs = $c->model(..)->search({}, {page =>1, rows=>10});
$c->stash->{data} = $rs;
.tt にて
[% SET pager = data.pager %]
[% INCLUDE pager.tt %]
で、data.pagerを参照するところで
Can't create pager for non-paged
と言われて困ってます。
どなたか助けて頂けませんか?
0883882
2009/04/01(水) 21:36:58pageに渡している値が空のケースがあるとあのエラーがでるようです。
失礼しました。
0884デフォルトの名無しさん
2009/04/08(水) 18:43:15http://www.itmedia.co.jp/news/articles/0904/08/news088.html
0885デフォルトの名無しさん
2009/04/09(木) 00:13:38sed+awkとして使うまでに留めておくべきだな。
技術者の力量に依るような自由な言語は、プロジェクトとしてはなるべく使いたくない。
0886デフォルトの名無しさん
2009/04/09(木) 01:49:170887デフォルトの名無しさん
2009/04/09(木) 02:43:41PerlはLL界のCOBOLになったな。
0888デフォルトの名無しさん
2009/04/09(木) 09:15:17こういうの見ると「終わった感」が増して逆効果だと思うんだが・・
団結して良さを説明ようとか、方法論からして前世紀かよって思う。
0889デフォルトの名無しさん
2009/04/09(木) 09:32:040890デフォルトの名無しさん
2009/04/09(木) 09:54:31そんな風潮。
perl はWEBアプリ専用言語じゃないのに
PHPやらASPやらJSPやら出てきたら
perl はお払い箱?・・・それじゃ、かわいそうだよ。
0891デフォルトの名無しさん
2009/04/09(木) 20:48:27環境がPERL5.8.* Jcode 2.6.5
PERL5.6.1 Jcode2.0から移したら
今までCGIで文字化けしなかったものが化けました。
$str = '�莞ゲマン;
$hoge = Jcode->new($str, euc)->h2z->euc;
print "$hoge";
今までは �潟zゲマン
と表示されていたのに、 ?ホゲマン
となります。
原因を調べていたら、5.8移行は機種依存文字は無視しないで?に変換してしまうとのことで。。。
これを �潟zゲマン となるように
解決したいのですが、どなたかご教授ください。
0892デフォルトの名無しさん
2009/04/09(木) 20:49:26UTF8でやれとかも無理な状態です
0893デフォルトの名無しさん
2009/04/09(木) 21:04:36他で聴くためこちらの回答は不要です
失礼しました
0894デフォルトの名無しさん
2009/04/09(木) 21:13:490895デフォルトの名無しさん
2009/04/10(金) 00:36:43蛇足情報として書いておくと、米国は perl / python 使いが多い。
0896デフォルトの名無しさん
2009/04/13(月) 00:37:36PerlはCみたいに残るでしょ・・・
awkは使ったこと無いw
0897デフォルトの名無しさん
2009/04/13(月) 00:53:40バッチファイルは残った。
だから Unix が GUI になっても
Perl は残る。
0898デフォルトの名無しさん
2009/04/14(火) 00:13:45まあ、perl がなくなるようなことはないだろうけど。
0899デフォルトの名無しさん
2009/04/15(水) 12:40:440900デフォルトの名無しさん
2009/04/16(木) 23:33:240901デフォルトの名無しさん
2009/04/17(金) 00:26:460902デフォルトの名無しさん
2009/04/17(金) 01:39:51http://search.cpan.org/dist/psh/
0903デフォルトの名無しさん
2009/04/18(土) 15:51:410904デフォルトの名無しさん
2009/04/18(土) 16:28:160905デフォルトの名無しさん
2009/04/18(土) 18:59:380906デフォルトの名無しさん
2009/09/11(金) 06:54:14最近はMakefileでもPerlがインストールされているのを前提に
Perlスクリプトが走ったりするのがある。既にshの代替として
機能している部分があるのでなくなりはしないと思う。
逆にpythonやrubyでそんんあのみたことない。
0907デフォルトの名無しさん
2009/09/11(金) 07:47:57安い人間しか雇わないなら学習コストを考えるとPerlはないな。そういう人はPHPでも使えばいい。
>>889
MooseとかモダンCatalystとかよくわからんのなら買うべき。ただし天然なのか内容が結構ピンボケしてるので、
ある程度理解したら他のソースで情報を補完する必要がある。他に代替となる本がないから「モダンPerl入門」一択なのが現状。
>>891
解決したなら解決方法書け。EUC-JPにはそんな文字ないから文字化けして当たり前。
jcode.pl使ったら解決しましたとかそういうオチじゃないだろうなw
>>895
昨日YAPCで会った米国人が、日本の本屋にPerlの本が異常に少ないのに驚いていたな。
ちなみになる早で1回作って終わりなプロジェクトならPHPでもいいが、保守を続けていくようなプロジェクトはPerl
でかっちり書くのがいい。mixiは置いといて、はてなをPHPで書いてたら今のはてなはなかった。
>>903
Perlのことならもう来てるから。ここんとこPerlの案件激増。PHPの仕事も多いがは糞なのが多く蹴ってる。
0908デフォルトの名無しさん
2009/09/15(火) 20:49:32use encoding "cp932";
binmode STDERR, ':encoding(cp932)';
$key = <STDIN>;
chomp $key;
if ($key ne 'quit') {
&print_randomnum;
} else {
print "owari\n";
exit;
}
sub print_randomnum{
$num = int(rand 1000000);
print "$num\n";
}
__END__
こんな簡単なプログラムなのに期待通りに動作しません。
quitと入力しても乱数が表示されてしまいます。どこがおかしいのか教えてください。
使用しているのはActivePerl 5.8.8 on XP Pro SP2です。
0909デフォルトの名無しさん
2009/09/15(火) 21:42:23デバッグはしたの?
0910デフォルトの名無しさん
2009/09/15(火) 22:26:25一応Pythonにはsconsがあるが、google以外では見ないな。
0911デフォルトの名無しさん
2009/09/16(水) 00:00:11use encoding "cp932";
binmode STDERR, ":encoding(cp932)";
の二行消したらなったぞ
0912908
2009/09/17(木) 18:08:55use encoding "cp932";
binmode STDERR, ":encoding(cp932)"; はウェブ上の入門講座を見て付加しました。
どうしてこの二行がこんなにおそろしい悪夢を招くのかよかったら教えてください。
講座ではシフトJISでコードを書くときに必要と説明していました。
0913デフォルトの名無しさん
2009/09/17(木) 21:43:59use encoding(cp932);
とした場合、STDINからの入力値を律儀にCRLF(\r\n)にしてくれる。
でもデフォルトの場合、特殊変数$/(デフォルトの改行文字)はLF(\n)なので、
chompした際に、LF(\n)しか消してくれない。
例 入力:AAA(エンターキー)
use encoding(cp932)あり → 'AAA\r\n'
use encoding(cp932)なし → 'AAA\n'
となる。
ちなみに、(binmodeなしで)入出力時に\n←→\r\nになるのは、ActivePerl(Winのみ?)
のIOのデフォルト動作。
0914デフォルトの名無しさん
2009/09/17(木) 22:59:17\r が来ても \r\n が来ても、どっちでも正しく動作するよう
コーディングするもんだよ。
0915デフォルトの名無しさん
2009/09/18(金) 00:20:49> \r が来ても
そうきますか。
0916908
2009/09/18(金) 10:04:450917デフォルトの名無しさん
2009/09/24(木) 02:14:38LinuxのGUIアプリならPython依存をそこそこ見るが、コマンドラインだと見ないな
0918デフォルトの名無しさん
2009/10/07(水) 13:12:18pl の関連付けを perl.exe から wperl.exe へ変更
wperl.exe は perl.exe と同じ場所にあります
それか、コマンドプロンプトの初期設定がコンパネから出来たような気がする
0919デフォルトの名無しさん
2009/10/30(金) 09:21:360920デフォルトの名無しさん
2009/11/03(火) 12:52:070921デフォルトの名無しさん
2009/11/03(火) 19:03:21例えば2で割り切れない番目の数値を倍にするって事を
やってみたのですが、$countをmap式の中に入れられる物なのでしょうか?
気持ち悪いので入れたいのですがどうすればいいんでしょう?
my @input_digbit = (1,2,4,8,16,32,64);
my $count;
my @result = map {
my $input = $_;
$count += 1;
if ($count % 2) {
$input = $input * 2;
} else {
$input;
}
} @input_digbit;
0922デフォルトの名無しさん
2009/11/03(火) 19:51:360923デフォルトの名無しさん
2009/11/03(火) 20:07:51mapで書けることは大抵foreachでいけるよ
0924デフォルトの名無しさん
2009/11/03(火) 20:24:32my @h = map { state $c = 0 ; $_ + $c++ } 0 .. 3 ;
0925デフォルトの名無しさん
2009/11/04(水) 10:11:01mapを2回することになるけど、どうかな?
my @result =
map $_->[0] % 2 ? $_->[1]*2 : $_->[1],
map [ $_ + 1, $input_digbit[$_] ], 0..$#input_digbit;
0926デフォルトの名無しさん
2009/11/04(水) 12:31:18reduceを使うとか?
ちょっとトリッキー?
use List::Util qw(reduce);
my @result = @{( reduce {
[ @$a, $input_digbit[$b] * ( $b % 2 ? 1 : 2 ) ]
} ([], 0..$#input_digbit) )};
0927デフォルトの名無しさん
2009/11/04(水) 14:19:19はは
my @result = map $input_digbit[$_] * ($_ % 2 ? 1 : 2), 0..$#input_digbit;
0928デフォルトの名無しさん
2009/11/04(水) 14:44:36>>927
一粒($_)で二度美味しい。目からウロコでした。
0929デフォルトの名無しさん
2009/11/06(金) 02:03:40//とかstateとか欲しい機能満載
0930デフォルトの名無しさん
2009/11/13(金) 12:13:390931デフォルトの名無しさん
2009/11/13(金) 13:40:46say "hoge" when 1;
say "huga" when 2;
}
みたいなことがしたかったけどwhenは後置できないんだな
0932デフォルトの名無しさん
2009/12/04(金) 12:40:06すでにuse feature qw/say/;とかsub say {print shift . "\n"} とかしてるやつ手を挙げろ。
0933デフォルトの名無しさん
2009/12/04(金) 19:18:260934デフォルトの名無しさん
2009/12/05(土) 00:04:06派
exe 'inoreabbrev <buffer> say '. 'print, "\n";'. "<C-O>F,"
派
0935デフォルトの名無しさん
2010/03/07(日) 23:52:030936デフォルトの名無しさん
2010/03/08(月) 00:18:350937デフォルトの名無しさん
2010/03/08(月) 23:59:23REMOTE_PORT関数で調べれると思ったのですがうまくいかなくて・・・
0938デフォルトの名無しさん
2010/03/09(火) 08:35:01telnetででも80番叩いてみればいいじゃん。
0939デフォルトの名無しさん
2010/03/13(土) 13:37:020940デフォルトの名無しさん
2010/03/14(日) 02:32:42スレタイ読めないの?
0941デフォルトの名無しさん
2010/03/14(日) 02:39:43最近、phpしか触ってないのでperlの方を忘れたけど、phpならこんな感じ。
function is_online($server_ip)
{
$ip = gethostbyname("{$server_ip}");
if ($fp = @fsockopen($ip, 80,$un,$sinn,2)) {
fclose($fp);
return true;
} else {
return false;
}
}
要するに、ソケットをオープンして成功すれば、そのポートが開いてるってこと。
「perl ソケットオープン」
で検索汁
0942デフォルトの名無しさん
2010/03/14(日) 02:41:04スレタイ読めないの?
0943デフォルトの名無しさん
2010/03/15(月) 07:09:23お手元のブラウザで
ttp://12.34.56.78/
(頭にtをつけてね)
ってやってサーバーが見つかりませんってエラーがでたら80番空いてない。
何かしら出てきたら空いてる。
これでどうよ。
0944デフォルトの名無しさん
2010/03/15(月) 11:21:04あぁ、ごめん、perlスレだったw
use LWP::Socket;
my($server, $port) = ('localhost', '80');
my $socket = LWP::Socket->new;
$socket->connect($server, $port);
ただ確かめるだけならこんなんでいいんじゃない?
0945デフォルトの名無しさん
2010/03/15(月) 21:52:130946デフォルトの名無しさん
2010/03/16(火) 03:03:36read FILE, my $text, -s FILE;
close FILE;
みたいなスクリプトで cp932 *以外*のファイルを読んでしまうと
cp932 "\xEF" does not map to Unicode at C:\workspace\hoge\fuga.pl line **.
ってワーニングが出ますが、perlスクリプトはそのまま続行してしまいます。
ほんとうは停止してほしいんですけど、
read FILE, my $text, -s FILE or die; としても止まってくれません。
eval { ..... } die if $@; でも止まってくれません。
何か方法があれば教えてください。
0947デフォルトの名無しさん
2010/03/16(火) 03:20:17local $SIG{__WARN__} = sub{ die @_ } ;
スクリプトの最初の方にでも突っ込んどけば?
0948デフォルトの名無しさん
2010/03/16(火) 22:45:43use Encode qw[ :fallbacks ]; # 定数の import
$PerlIO::encoding::fallback = Encode::DIE_ON_ERR;
open ...
という風に $PerlIO::encoding::fallback に定数を入れてやると
PerlIO で Encode がまずったときの動作を指定することが出来たはず.
定数については Encode の check に書いてあったと思う.
0949デフォルトの名無しさん
2010/03/17(水) 04:34:23encoding使わないでdecode_utf8すれば良いんじゃない?
出力でencodeし直せばおけー
0950デフォルトの名無しさん
2010/04/15(木) 09:11:18だれかこの部分だけでいいから、Cにしてくれ〜。
/^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"/;
0951950
2010/04/15(木) 11:15:490952デフォルトの名無しさん
2010/05/24(月) 01:43:38ttp://anchorage.2ch.net/test/read.cgi/siberia/1235319741/680
> プログラミング初心者です。以下の課題が出されたのですが、まったくわかりません。助言おねがいします。
0953デフォルトの名無しさん
2010/05/24(月) 02:30:38http://lll.physics.gifu-u.ac.jp/~tasaka/perl/fig/msdos.gif
183 jpg
http://www.moongift.jp/wp-content/uploads/2008/06/183.jpg
18 tm3 jpg
http://www.moongift.jp/wp-content/uploads/2008/06/18-tm3.jpg
xampp 0130 setupstart gif
http://www.mtde.info/images/xampp_0130_setupstart.gif
xampp perl addon04 jpg
http://www19.atpages.jp/imagelinkget/get.php?t=v&u=www.dakiny.com/archives/image/2007/11/xampp_perl_addon04.jpg
0954デフォルトの名無しさん
2010/05/24(月) 05:03:52Perl じゃないじゃん
0955デフォルトの名無しさん
2010/06/11(金) 13:46:42/ ヽ、. _ノ \
| (●)(●) |
| (__人__) | ヨナも そうおもう
| ` ⌒´ |
| }
ヽ }
人_____ノ"⌒ヽ
/ \
/ へ \
( ヽγ⌒) | \ \
 ̄ ̄ ̄\__/
0956デフォルトの名無しさん
2010/07/21(水) 22:32:12初歩的な質問で申し訳ないですが、よろしければご教授ください。
0957デフォルトの名無しさん
2010/07/22(木) 01:53:340958デフォルトの名無しさん
2010/07/22(木) 22:32:22> クライアントがサーバへファイル名を送り、
ieとかでwww.yahoo.co.jp/index.htmlと入れる。
> サーバがそれを検索しそのファイルを送る
apacheがindex.htmlの内容を返す。
つまり、apache のソースを提出すればよろし
0959デフォルトの名無しさん
2010/08/05(木) 06:17:400960デフォルトの名無しさん
2010/08/07(土) 12:37:44事例って、どんなのがあるの?
0961デフォルトの名無しさん
2010/08/07(土) 15:03:000962デフォルトの名無しさん
2010/08/07(土) 15:50:22暗黙の文字列→数値変換で、文字列が数値以外の文字が含まれてるとき。
> perl -Mstrict -Mwarnings -e 'print int("1a")'
Argument "1a" isn't numeric in int at -e line 1.
1
> perl -Mstrict -e 'print int("1a")'
1
0963デフォルトの名無しさん
2010/08/07(土) 17:58:46なるほど・・・
じゃああえてそういう文字列食わせたいときとかは
一時無効にする必要があるわけか
0964デフォルトの名無しさん
2010/09/15(水) 07:02:48use libでパスを複数指定するとエラーになったりしますか?
例えば、
hoge.pmが/home/***/perl5とかに入ってて
fuga.pmが/home/***/perl5/i386-freebsdに入ってる時
二つのパスをuse libすると500になります。
かといって片方しかパスを指定しない場合はCan't locateのエラーが出ます。
どうすれば両方のモジュールを使用することが出来るのでしょうか?宜しくお願いします。
0965デフォルトの名無しさん
2010/09/15(水) 10:20:36それ多分違うところでエラーでてるかContent-Type吐いてないかパーミッションがおかしいかそんなとこだろ
どうにかしてエラー内容特定汁
0966デフォルトの名無しさん
2010/09/15(水) 10:56:25use lib qw(/home/***/extlib/lib/perl5 /home/***/extlib/lib/perl5/i386-freebsd);
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use AnyEvent::HTTP;
use Coro;
print "Content-type: text/html\n\n";
print "hoge";
↑500が出る
/home/***/extlib/lib/perl5/i386-freebsdを残して
/home/***/extlib/lib/perl5の部分だけ切り取り
↑Can't locate AnyEvent/HTTP.pm in @INC (...
/home/***/extlib/lib/perl5を残して
/home/***/extlib/lib/perl5/i386-freebsdの部分だけ切り取り
↑Can't locate loadable object for module Coro::State in @INC (...
/home/***/extlib/lib/perl5/i386-freebsd/auto/Coro/Stateを追加
use AnyEvent::HTTP;があると500になるので削除
/home/***/extlib/lib/perl5だとCoroで500が返るので /home/***/extlib/lib/perl5/i386-freebsdに
↑Can't locate loadable object for module Guard in @INC (...
/home/***/extlib/lib/perl5/i386-freebsd/auto/Guardを追加
↑Can't locate common/sense.pm in @INC (...
0967デフォルトの名無しさん
2010/09/15(水) 11:00:35↑変わらずCan't locate common/sense.pm in @INC (...が出る
今この状態です。
もちろん
#!/usr/bin/perl
use strict;
use warnings;
print "Content-type: text/html\n\n";
print "hoge";
これはちゃんとhogeが出力されます。
どういった原因が考えられますでしょうか?
2レスに渡り長々とすみません。どうかよろしくお願いします。
0969デフォルトの名無しさん
2010/09/16(木) 02:31:40extlib/ をつくった環境とちがう環境でうごかそうとしたりしてませんか?
/home/***/extlib/lib/perl5/i386-freebsd 以下のディレクトリは環境依存のものがはいっているので、環境がちがうところにコピーしてつかったりはできませんけども。
(ここでいう環境とは OS, アーキテクチャ, -Dusethreads の有無, perl5 のバージョンのことです)
0970デフォルトの名無しさん
2010/09/16(木) 02:41:08レスありがとうございます!!!
でも俺のレベルだとちょっと理解しきれ無いので、教えてもらった内容に含まれてるキーワードで早速ググッてきます!
0971デフォルトの名無しさん
2010/09/16(木) 03:31:29解決しました!
環境が違うってのがどういうことかわかりました!#!/usr/bin/perl環境じゃなくてモジュールをインストールしたperl環境じゃないとダメ…みたいなことですよね?
どうもありがとうございました!
0972デフォルトの名無しさん
2010/09/25(土) 00:56:56もう一度先頭行からループし直す時どうすればいいのでしょうか?
カーソルを先頭行に戻すやり方を教えて下さい。
0973perl入門者
2010/09/26(日) 10:59:18perlで、以下のような処理を実現したいのですが、
作成された方がいらっしゃいましたら、ご教授お願いします。
(1)「javaのプログラム内の全てのコメントを削除」して表示する
(2)「javaのプログラム内のコメントのみ」を表示する
よろしくお願いします。
0974デフォルトの名無しさん
2010/09/26(日) 11:02:530975デフォルトの名無しさん
2010/09/26(日) 11:07:03でも、もしJavaがコメント内の文字列リテラルとかも認識するなら
正規表現だけでは対応できないよ、多分
0976デフォルトの名無しさん
2010/09/26(日) 11:11:03行コメントは簡単だろうけど、ブロックコメントは
コメントの中にいるかどうかっていう状態変数を作って
読みこみながら処理していけばいい
(コメントの中にいなくて/*にであったらコメントに入る)
(コメントの中にいて*/に出会ったとき、コメントの外に出る、みたいな感じで)
Javaがコメント内の文字列も認識するなら
コメントの中の文字列の中にいるっていう状態変数も作る
もっと複雑なことをする予定ならパーサを作るほうが楽
0977デフォルトの名無しさん
2010/09/26(日) 11:13:170978デフォルトの名無しさん
2010/09/26(日) 17:38:110979デフォルトの名無しさん
2010/09/26(日) 20:50:19で、文字列とコメントとそれ以外を定義
0980デフォルトの名無しさん
2010/09/26(日) 21:58:05http://www.ibm.com/developerworks/jp/linux/library/l-perl-parsing/stat-comments-dos.pl.txt
0981デフォルトの名無しさん
2010/10/07(木) 01:11:18レス数が950を超えています。1000を超えると書き込みができなくなります。