【Perl】初心者コーナー Part12
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/04/27 23:17ID:1NNXdNspいらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。
CGIの質問は【CGIだけどなんか質問ある Pert 6 】
http://pc.2ch.net/test/read.cgi/php/1019561283/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4 】
http://pc.2ch.net/test/read.cgi/php/1012839651/
過去ログ、その他の役立ち情報は>>2-10を見よう。
0236nobodyさん
02/05/03 09:04ID:6+RS1vf9gdsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgs
xs5r6rs56rs56rs56rs56rs56rs56rs56jtx,7wz434w34w34w34w34w34w34w34w34w34w34,........
0237nobodyさん
02/05/03 10:54ID:6+RS1vf90238nobodyさん
02/05/03 10:54ID:6+RS1vf90240nobodyさん
02/05/03 11:05ID:6+RS1vf90241nobodyさん
02/05/03 11:09ID:6+RS1vf9スキルの低い奴ばっかり
0242こてはん ◆W181N/6Q
02/05/03 11:22ID:???0244nobodyさん
02/05/03 11:26ID:6+RS1vf9スキルの低い奴ばっかり
0245nobodyさん
02/05/03 11:48ID:KcX/dW600246nobodyさん
02/05/03 12:01ID:6+RS1vf9要するに初心者以下のレベルってことよ(ゲラ
おめーら小学校からやりなおせよ(ハゲワラ
0248nobodyさん
02/05/03 12:10ID:???0249nobodyさん
02/05/03 12:11ID:6+RS1vf90251245
02/05/03 12:21ID:KcX/dW60my (%s) = @_;
my %test;
%h_test = ("1", "h1",
"2", "h2");
%$s = %h_test;
}
これでは駄目でしょうか?
0252245
02/05/03 12:24ID:KcX/dW60my %test; -> my %h_test
0255nobodyさん
02/05/03 12:36ID:6+RS1vf9はげ指導医
0256nobodyさん
02/05/03 12:37ID:6+RS1vf9激しく同意
0257nobodyさん
02/05/03 12:59ID:6+RS1vf90259_gnuzip
02/05/03 13:18ID:???すまど
0261nobodyさん
02/05/03 13:43ID:6+RS1vf9│□ ■2ch BBS . − Microsoft Internet Explorer 囗曰区| |
├───────────────────────┬─┤
│ファイル(F) 編集(E) 表示(V) お気に入り(A) モナー(∀) |::田|
├────────────────┬──────┴─┤
| ← → × 圍 合 | Q 》|
| 戻る 進む 中止 更新 ホーム | 検索 |
├────┬───────────┴──┬─┬───┤
│アド レス(D) | □http://www.2ch.net/2ch.html. . |▼|⇒移動|
├────┴───┬┬─────────┴─┴──┬┤
│ ├┤ ├┤
|2ちゃんねる.. || ||
│2chの入り口.. || ||
│2ch総合案内┌───────────────────────┐
│. | 2ch. |
│ ├───────────────────────┤
│おすすめ | 1は不正な処理を行いました 。 ┌───┐ |
│モナー | 残念ですが1の人生を | 終了.... | |
│ | 終了させてあげて下さい。(推奨). └───┘ |
│ | |
│ └───────────────────────┘
│特別企画 ├┤ ├┤
├┬──────┬┼┼┬────────────┬┼┤
├┴──────┴┴┴┴──┬─┬─┬─────┴┴┤
│□ エラーが発生しました | | |●インターネット |
└─────────────┴─┴─┴───────┘
0262nobodyさん
02/05/03 15:29ID:???0263nobodyさん
02/05/03 15:50ID:7hc2ohlWただ、<img src="image.png">などの場合の""の中は変換したくないのですが。
0264nobodyさん
02/05/03 15:57ID:???すっごいめんどうくさい正規表現を組む。
0265nobodyさん
02/05/03 16:19ID:???$str = join '', map {
/^</ and $_ = join '', map { /^"/ or $_ = lc; $_ } split /("[^"]*")/; $_
} split /(<[^>]*>)/, $str;
$strにHTML文書を入れれ。
0266nobodyさん
02/05/03 16:21ID:???alt='この中では"が使えます'
が入ってた場合は?
0267nobodyさん
02/05/03 16:43ID:???$str = join '', map {
/^</ and $_ = join '',
map { /["']$/ or $_ = lc; $_ } split /(["'])([^\1]*\1)/; $_
} split /(<[^>]*>)/, $str;
こんな感じかな? 適当スマソ。
0268nobodyさん
02/05/03 18:01ID:7wVKBbUQprint "Content-type: text/plain\n\n";
print "Hello Perl !";
これをローカルで試そうとして、http://127.0.0.1/chapter1/1.cgi
と入力しました。が、なぜかダウンロードしてしまいます。(保存するか聞いてくる)
text/htmlにするとちゃんとブラウザに表示されます。
解決策教えてください。
0269nobodyさん
02/05/03 18:06ID:???0271nobodyさん
02/05/03 18:13ID:7wVKBbUQダウンロードせずに、結果をブラウザで表示させたいんです。
>>270
Netscape6で確かめたらちゃんとできました。Opera6.01だとだめでしたが。
どうもありがとうございました。
0272nobodyさん
02/05/03 19:17ID:???0274cova
02/05/03 19:26ID:???スカラ変数 = (stat(ファイルハンドル または ファイル名))[インデックス番号];
---------------------------------------------------------------------
インデックス番号
0 → ファイルシステムのデバイス番号
1 → iノード番号
2 → ファイルのモード
3 → ハードリンクの数
4 → ファイル所有者のユーザID
5 → ファイル所有者のグループID
6 → デバイスID
7 → ファイルサイズ(バイト単位)
8 → 最終アクセス時間
9 → 最終変更時間
10→ iノード変更時間
11→ ファイルシステムI/Oの最適ブロックサイズ
12→ 割り当て済みのブロックサイズ
0275cova
02/05/03 19:27ID:???data.datというファイルの最終アクセス時間を取得する場合は
$accesstime = (stat(data.dat))[8];
という感じ
0276nobodyさん
02/05/03 19:29ID:7hc2ohlWそれだと Foo="Bar" の組み合わせが複数あると最初の一つしかできませんでした。
というか自分がその事書いてなかった。。逝ってきます。
0278nobodyさん
02/05/03 20:01ID:???ごめんなさい……。
直すついでにPerlメモの『HTMLタグの正規表現』(のコメント抜き)を取り入れてみました。
ttp://www.din.or.jp/~ohzaki/perl.htm#HTML_Tag
my $tag_regex_ = q{[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$(?!\n))};
$str = join '', map {
/^</ and $_ = join '',
map { /["']$/ or $_ = lc; $_ } split /(["'])(.*?\1)/s; $_
} split /(<$tag_regex_)/o, $str;
で、試してみたら <!DOCTYPE まで小文字になって鬱。
0282nobodyさん
02/05/03 20:40ID:???うまく動きました。ありがとうございました。
あと、<!DOCTYPEは削除してしまうので特に問題ないです。
0283nobodyさん
02/05/03 21:05ID:vg/qOBA6さっそくですが、質問です。
これはどういういみですか?第2引数がわかりません。
push(@sqcookie, "${name}_${value}");
0284nobodyさん
02/05/03 21:05ID:???$url = '([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\=\@\;\#\:\%]+)';
$FORM{'comment'} =~ s/$url/<a href=\"$url\" target=\"_top\">$url<\/a>/g;
こうしても上手くリンクされますか?
0285284
02/05/03 21:06ID:???こうしても上手くリンクされますか?
↓
こうすると上手くリンクされますか?
0289nobodyさん
02/05/03 21:13ID:???$scalar = "10";
$scalar += 10;
とやらないで,いきなり
$scalar += 10;
とやるとスカラ変数'$scalar'にはundef値である0が代入されていますが
このundef値って何て読むんですか?アンダフ値でいいの?
0290284
02/05/03 21:21ID:???実際に試してみましたが、無理でした・・・。
どうすればURLが自動リンクされるのでしょうか?
0292nobodyさん
02/05/03 21:29ID:???なるほど アンデファイン undefine の略か
じゃあ人前で使うときはアンデファインでいいや
0293nobodyさん
02/05/03 21:29ID:???後方参照($1とか$2とか)は知ってる?
0295nobodyさん
02/05/03 21:34ID:???0296_gnuzip
02/05/03 21:34ID:???(_____)ゝ、 (_____) y (_____)
/ :: :: :: ヽ 〉 /-‐:: ::‐-ヽ / / :: :: :: ヽ
_./ (・ )ll(・ ) ∨ _/ 0) i! 0) ∨ _/ ( ・)i!(・ ) ゙、_
// :: :: ∈ゝ :: ::ヽ // :: ‐-‐ :: ヽ // :: ー一 :: ヽ\
. ゝ/:: :: :: :: :: ::ヽ ゝ/ :: :: :: :: :: ヽ ゝ/ :: :: :: :: :: ヽく
 ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄
| | | | | |
⊂! !つ ⊂! !つ ⊂! !つ
教えてあげないよ!ジャン!
0298さゆ ◆ugYa5.J6
02/05/03 21:51ID:???()でくくった部分にマッチした文字列は$1とか$2で参照できる。
$FORM{'comment'} =~ s/$url/<a href="$2" target="_top">$2<\/a>/og;
0300nobodyさん
02/05/03 22:08ID:CL/oAkFo0301nobodyさん
02/05/03 22:10ID:???役に立たない細かい事を色々と。$urlの中の([^=^\"]|^)は余分。
あと、文字クラス[〜]の中ではほとんどの文字はエスケープしなくてもいい。
ただし"-"はマジカルインクリメント(例:[a-z])の効果があるから最初か最後に置く。
[\w\.\~\-\/\?\&\=\@\;\#\:\%]+ → [\w.~/?&=@;#:%-]+
つかここで聞くよりPerlメモを・・・・ (ボソ
0302pear@空気固定 ◆FRUIT8pk
02/05/03 22:27ID:???意味がわかりません。
<a href="test.cgi" accesskey="1">
ということかな?
0304nobodyさん
02/05/03 23:02ID:apBthE5H\n\n〜 と複数続いていたら
\n一つだけに やるのは どうすればよいのでしょうか?
s/[\n]*$/\n/g
でうまくいきませんでした
0305nobodyさん
02/05/03 23:14ID:???0310nobodyさん
02/05/04 00:05ID:???テキストファイル内の文字列をjcode.plにてEUCに変換後、
ひらがだけを抜き出したいのですが、検索対象文字リストを
tr/ぁ-ん//cd にすると結果が文字化けしてしまいます。
この場合、検索対象文字リストはどのように指定したら良いのでしょうか?
0311303
02/05/04 00:08ID:???Perlでは、数字じゃないものもインクリメントできるから、マジカル。
perlop の Auto-increment and Auto-decrement のとこに
「オートインクリメントオペレータには、ちょっとしたマジックが
仕込んである」と書いてある。
perlopには
「レンジオペレータは、数字じゃないものが来た時、マジカルインクリメント
アルゴリズムを使う」
って書いてあるよぅ。
0316nobodyさん
02/05/04 00:26ID:GNJILI/Xログファイルの$hoge[3]にそれぞれ数字がありまして
その数の合計を求めるにはどうすれば宜しいのでしょうか?
ログファイルは\tで区切ってあります。
0317310
02/05/04 00:26ID:???実はすでにあちらのメモも試したのですが、うまくいかなかったのです。
でも、実際のところはどこがうまくいっていないのか理解できていないので
うまく適用できていなかったのかもしれませんが・・・。
0318nobodyさん
02/05/04 00:33ID:???改善されてねーな
112 :nobodyさん :02/05/03 18:40 ID:???
>>110
「ログファイルの$hoge[3]」って何よ。
「ログファイルは\tで区切ってあります」ってのはレコード区切りが\nでデータ区切りが\tって事か?
わかるように書いてくれ。いや、大体わかっているんだけどな。
0319nobodyさん
02/05/04 00:35ID:???\tで区切ってるログファイルの4番目のとこに数字があるってこと?
$count=0;
open(FILE,"./$filename");
while(<FILE>){
@hoge=split(/\t/);
$count+=$hoge[3];
}
close(FILE);
print $count;
0321nobodyさん
02/05/04 00:49ID:???$_ = '文字コードがEUCの場合ね';
s/\x82[\x9F-\xF1]//g;
print;
これでひらがなだけ削れる
逆は自分で考えれ
0322nobodyさん
02/05/04 00:49ID:???$hoge ="123あいうえ456さしすせ-*/アイウabcdエオ";
$Zhiragana = '(?:\xA4[\xA1-\xF3])';
$hoge =~ s/$Zhiragana//g;
EUCこれでできるよ。
実行したら print $hoge; で表示されるのは
123456-*/愛上尾アウabcdエオ
あなたはどう書いてるの?EUCにコンバートするところとかは?
0323nobodyさん
02/05/04 00:53ID:/IfudcOZ0324nobodyさん
02/05/04 00:54ID:???EUCはこうか
s/\xA4[\xA1-\xF3]//g;
0326310
02/05/04 00:56ID:???ありがとうございます!うまく動きました。
trを使っていたのが間違いだったのでしょうか??
兎にも角にも、ありがとうございました。
0327nobodyさん
02/05/04 00:56ID:???LWPを使う。
0328nobodyさん
02/05/04 00:57ID:???0331310
02/05/04 00:59ID:???お答えありがとうございます。そちらも試したのですが
SCALAR(0xc963c4)
のエラーがでてしまいます・・・。なぜでしょう?
0332_gunzip
02/05/04 01:00ID:???レベルが低いよ。
0333310
02/05/04 01:02ID:???とりあえず、入力される文字列は全て
jcode::convert(\$hoge, 'euc');
にてeucにコンバートしております。
で、とりあえずいまはWin2000上のコマンドプロンプトで動かしているので
出力前にsjisにして出力しています。
0334nobodyさん
02/05/04 01:04ID:/IfudcOZLWPですか・・
ちょっと調べてきます・・・
■ このスレッドは過去ログ倉庫に格納されています