【Perl】初心者コーナー Part14
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
02/07/18 16:34ID:jemWJhH31:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【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あたりを見よう。
0893878
02/08/06 20:31ID:+CLAZ6EKsub printhtml{
my($htmlbody,$mime)=@_;
my $nc="\n"
.'<meta http-equiv="Pragma" content="No-Cache">'
.'<meta http-equiv="Cache-Control" content="No-Cache">'
.'<meta http-equiv="Expires" content="Monday, March 01, 1999 00:00:00 AM GMT">';
&Jcode::convert(\$htmlbody,'sjis');
&Jcode::convert(\$::debug,'sjis');
if($::isnocache){
print $cgiutil::httpheader_nc;
$htmlbody=~s/\<head\>/<head>$nc/;
}else{
print $cgiutil::httpheader;
};
print $htmlbody;
if($::isdebug){print "<h4>DEBUG START</h4>\n".$::debug;};
1;
};
ってやってるんだが、IEのcashに残る。
でもこれはPerlの文法とかじゃねぇから、わっかんねぇな。
スレ違いスマソ
0894nobodyさん
02/08/06 20:31ID:+On492A+0895nobodyさん
02/08/06 20:52ID:???cgiutilパッケージの中身は分からんは $htmlbodyの中身は分からんは、、、
とりあえずDOSプロンプトかShellで試して出力結果のヘッダに
Pragma: no-cache
Cache-Control: no-cache
<head>〜</head>に
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="co-cache">
が含まれてるか見てみれ
>>894
http://search.cpan.org/
0896878
02/08/06 21:29ID:+CLAZ6EK色々スマソ。
HTTPリクエストにもhtmlにも含まれてます。
で、理由としては隠し属性項目でイベントを保存していたため、
戻るで戻ってこられるとイベントが初期値ではなくなっていたためなんですよ。
で、リロードをかけさせるために有効期限とキャッシュレスにしようとしてい
たんですがうまくいかなかったもので。。
java-scriptでリロード時に強引に書き換えるようにして対応しました。
本来リロード時のイベントが、ボタン押下時のイベントを知っているわけ
ないんですが、これしかうかびませんですた。
スレ違いにもかかわらず、申し訳ありませんでした。
それはZIP圧縮?
0898Piano
02/08/06 23:37ID:???降順で表示させようと
reverse sort (@count);
で実行すると、
9
9
8
7
4
2
16
・・と、なぜか16が最後に来てしまいます。
どなたか分かる方いらっしゃいませんか?
0899nobodyさん
02/08/06 23:41ID:Fh8h+3RQreverse sort {$a <=> $b} @count
で、どうでしょ。チェックしてないけど。
0903899
02/08/06 23:51ID:Fh8h+3RQ0904
02/08/07 00:24ID:ulRsWHQgはないでしょうか?
御存じの方、教えてください。お願いします。
0905nobodyさん
02/08/07 00:36ID:nEZxoP/q0906nobodyさん
02/08/07 06:28ID:4Lzws0bXダウンロードする
属性をCGIを755 LOGを666に変更する
HTMLページに<!--#exec cmd="○○/lacerta/lacerta.cgi"-->
と、埋め込んで
CGIと同じディレクトリにアップする
この設置の仕方は間違ってるのでしょうか?
アップしたHTMLページを開いても何も表示されません・・・。
どなたか、教えていただけませんでしょうか?
ttp://www.kz-island.net/cgi/lacerta.htm
0907nobodyさん
02/08/07 07:12ID:???0908907
02/08/07 07:15ID:???「SSI が有効な設定になっていて
拡張子が shtml になっているのか?」
と言いたかったんだ。
0909nobodyさん
02/08/07 07:54ID:???0910nobodyさん
02/08/07 09:02ID:fr9q9q5sxmlをhtmlに変換する事はできますか?
xmlとxslだけではIEでしか表示できないので普通に手作業で、
msxsl.exeを使ってhtmlへ変換していましたが
今回はcgiでxmlを生成してそこからhtmlへ変換することになったのです。
なのでmsxsl.exeの役割をcgiの中でも出来るのかどうかというわけなのです。
0912nobodyさん
02/08/07 10:56ID:7jIJ9A+d送信するものがファイルのみならうまくいくのですが、
一行コメント等もいっしょに送るにはどうすればいいでしょうか?
というのも、
binmode(STDIN);
とやって標準入力をバイナリモードにしちゃうやりかたしかわからないので
テキストは受信してもめちゃめちゃなんですよ。
0913nobodyさん
02/08/07 11:26ID:???ただ\nとかいう表現方法はお勧めできない。
0914nobodyさん
02/08/07 12:02ID:biTmKPZ6わけじゃないよね。
0915nobodyさん
02/08/07 12:05ID:???テキストファイルをアップロードしたら、まんま送られるだろ。どうめちゃめちゃなの?
>>914
アップロード時に日本語がエンコード???
0924920
02/08/07 16:50ID:???それでも>>921の見解は間違いなことにはかわりない。
とりあえず日本語をHTTPでやり取りするときには(ブラウザ側で
自動的に)URLエンコードされるのは当然なんだが、それは知って
いるのかな?
0927921
02/08/07 17:44ID:rbDAoZ/oenctypeがapplication/x-www-form-urlencoded(デフォルト)なら日本語はURLエンコードされる。
しかしアップローダということなので恐らくenctypeはmultipart/form-dataと思われる。
multipart/form-dataではURLエンコードはされない。
以上
0928nobodyさん
02/08/07 18:06ID:???漏れもファイルのほうはそう思うが、
送られてくるテキストの方が掲示板のデータように送られてくるのだとしたら、
URLエンコードされてしまうと思う。
つーか、>>912現れてどうめちゃくちゃなのか言え!
0929921
02/08/07 18:23ID:IJRoW2QJ<input type="text" name="hoge" value="日本語">
<input type="submit">
</form>
これでエンコードはされない
だけどboundaryとかが入るのでnameとvalueの受け取りが面倒。
0930nobodyさん
02/08/07 18:38ID:sSYiyIo60931nobodyさん
02/08/07 18:41ID:mhNc4G4w0932921
02/08/07 18:43ID:2dLUgCtT正解でし(UTF-8)
0934nobodyさん
02/08/07 20:42ID:???これは?
%82%A4%82%F1%82%B1
0936nobodyさん
02/08/07 21:19ID:???0937nobodyさん
02/08/07 21:21ID:???0939 nobodyさん
02/08/07 21:30ID:???perldoc -q comments
で、C Styleのコメントを取り除くscriptを解説してくれている。
それを参考にしる。
0940nobodyさん
02/08/07 23:13ID:???$val =~ s/"/"/g;
$val =~ s/</</g;
$val =~ s/>/>/g;
$val =~ s/\0//g;
このような処理はデコードとはいいませんよね?
なんて言うんでしょうか?
0941nobodyさん
02/08/07 23:15ID:???0942nobodyさん
02/08/07 23:20ID:???もしコメントとして書く場合はどれが適当でしょうか?
■[置換]のEXCEED和英辞典からの検索結果
ちかん
置換
substitution; replacement; 《数学》 a permutation. 〜する substitute; replace; 《数学》 permutate.
0943nobodyさん
02/08/07 23:32ID:???esuke-pu;
↑ これが伝説のPGにだけ許される最高の称号
0944nobodyさん
02/08/08 00:00ID:???ぜんぜんPerlの話じゃないやん。
CGIすれに統合!でめでたしめでたし終わり。
0945nobodyさん
02/08/08 00:19ID:???http://pc.2ch.net/test/read.cgi/php/1025930486/462-
0946nobodyさん
02/08/08 00:22ID:???モジュールはちと面倒くさいけど、普通のスクリプトからコメントを
取るなら多分 perl -MO=Deparseが一番簡単だと思う。B::Deparseなら
q#foobar# とかの"#"に惑わされる事はないし。
0948nobodyさん
02/08/08 00:31ID:???0949nobodyさん
02/08/08 00:32ID:zM69Q9o6アイウエオという文字列があったときに
ア イ ウ エ オ
文字ごとに空白を
ってあける方法ってありますか?
あるとしたらどうやるのでしょうか?
簡単にできそうで2バイト文字の扱いがよくわかりませんでした・・・
0950nobodyさん
02/08/08 00:41ID:???ttp://www.din.or.jp/~ohzaki/perl.htm#JP_Split
ここ参照。
0951947
02/08/08 01:25ID:???#!/usr/bin/perl
my @files= ('/path/file.pl');
for my $file ( @files ){
open(R, $file) || next;
open(W, ">$file.txt") || next;
while (<R>){
last if /^__(?:END|DATA)__$/;
next if /^[\s;]*$/ || (/^[\s;]*#/ && $.!=1);
1 while s/^(.*[\w"'\)\]\}\s];|.*\)\s*\{)\s*#.*/$1/;
s/;[;\s]+\n$/;\n/;
print W unless (!/^=cut/ && /^=\w+/) .. /^=cut/;
}
close(R); close(W);
}
0952nobodyさん
02/08/08 01:34ID:htQeibpH正規表現じゃなくて良いなら。応用は自分で考えて。
$hoge = index($value,'アイウエオ');
if($hoge > -1){
for($count = 0; $count < 4; $count++){
substr($value,$hoge+2,0) = ' ';
$hoge += 3;
}
}
0954947
02/08/08 01:48ID:???あ、書き忘れたけどSJIS対応ね。 EUCなの?
0955947
02/08/08 01:52ID:???s/(\216[\241-\337]|\217?[\241-\376].|.)/$1 /g;
0956nobodyさん
02/08/08 02:44ID:???0958947
02/08/08 03:04ID:???$n= $_=~ tr/#//;
0959感謝する956
02/08/08 03:15ID:???0961nobodyさん
02/08/08 03:26ID:???0962nobodyさん
02/08/08 04:31ID:???古いi-modeではログが化けてしまう模様
調べたところ解決策はどうもないっぽいんで駄目押し覚悟でここへ来た
質問。
解決策はあるますか。
0963nobodyさん
02/08/08 04:35ID:???0965nobodyさん
02/08/08 04:37ID:???それとも最初からSJISで保存する?
0968nobodyさん
02/08/08 04:56ID:???0969nobodyさん
02/08/08 05:01ID:???てなかんじ?
0970nobodyさん
02/08/08 06:23ID:???こういうこと?
対象に上書きするので注意。
#! /usr/bin/perl
$perlfile = 'ファイル名';
open(FILE,"+<$perlfile");
while($tmp = <FILE>){
$tmp =~ s/\#+[^;]*\n/\n/;
$dat .= "$tmp";
}
seek(FILE,0,0);
print FILE "$dat";
truncate(FILE, tell(FILE));
close(FILE);
print "Content-type: text/plain\n\n終了\n";
0971970
02/08/08 06:28ID:???×$tmp =~ s/\#+[^;]*\n/\n/;
○$tmp =~ s/\#+[^;{}]*\n/\n/;
0972nobodyさん
02/08/08 06:47ID:???その2
[問題]
ひとつの箱があります。その中に0から9までの数を書いたカードが
それぞれ3枚ずつ入ってます。(計30枚)
A君が3枚、その箱からカードを取り出すとき8と5と3のカードの組み合わせが
(583,853など)でる確立を求めなさい。:制限時間3分
0973nobodyさん
02/08/08 08:32ID:???0976nobodyさん
02/08/08 09:43ID:???0977nobodyさん
02/08/08 10:12ID:???Web Prog 板で Perl 初心者てことは、 Web Prog の初心者は来るなと?
最終回記念カキコ
0978964
02/08/08 10:35ID:???いや、俺は最初の質問者じゃないんだけど、回答を試してみたら
何も起こらなかったという事を報告したかっただけ。
ちなみに>>970のヤツだとやっぱり
qw/
#foobar#
/;
sprintf(
'%s-000',
$foo = q#foobar#,
);
とかもちょんぎられちゃうから駄目だと思う。
(だから確かなのはO::Deparseくらいしかないと思うわけだが・・・)
0979nobodyさん
02/08/08 11:18ID:???0980947
02/08/08 12:24ID:???#!/usr/bin/perl
my @files= ('/path/file.pl');
for my $file ( @files ){
open(R, $file) || print "Can't open $file\n";
open(W, ">$file.txt") || print "Can't open $file.txt\n";
while (<R>){
next if (!/^=cut/ && /^=\w+/) .. /^=cut/;
last if /^__(?:END|DATA)__$/;
next if (!/^\s*$/ && /^[\s;]+\n$/) || (/^[\s;]*#/ && $.!=1);
1 while s/^(.*[\w"'\)\]\}\s];|.*\)\s*\{)\s*#.*/$1/;
s/;[;\s]+\n$/;\n/;
print W;
}
close(R); close(W);
}
0981nobodyさん
02/08/08 14:14ID:???0982nobodyさん
02/08/08 14:25ID:???│ |
│ |
│ |
│ |
│ ∧_∧ |
│ ( ・∀・) |
│ ( ) |
│ | | | |
│ (__)_) |
| WebProg |
│ |
│ 【Perl】初心者コーナー を終了しています… |
│ |
│ |
| |
| |
└───────────────────────――┘
0983nobodyさん
02/08/08 15:59ID:N0Sb7H4r↓
http://hp.vector.co.jp/authors/VA014700/l_goodhp.html
0984nobodyさん
02/08/08 16:11ID:???読みこむ方で(モジュールファイルをModule.pmとして)、
use Module;
とやる。
モジュール作れたんなら、分かっているはずだが...?
0985nobodyさん
02/08/08 18:04ID:UER6B09Rページを更新したり、そのページを訪問しただけで投稿記事が増えてしまします。
どのような対処法があるのですか?
locationを使おうと思ったのですが、うまくいきません。
よろしくお願いします。
0986sa
02/08/08 18:07ID:???0987nobodyさん
02/08/08 18:10ID:???0988985
02/08/08 18:15ID:UER6B09Rそうします。
ついでに、もしよろしければ
どのような記述を参考にすれば良いのかヒントだけでもいただけま戦火?
0990nobodyさん
02/08/08 18:56ID:???0991nobodyさん
02/08/08 19:34ID:???モジュールってインストールしなきゃつかえないんですよね?
module.pmをmoduleっていうフォルダにいれてるんですがそれを
呼び出すのは無理?
0992nobodyさん
02/08/08 19:57ID:???何か壮大な勘違いをしている可能性アリ。
呼び出す側のルーチンで
use Module;
デスヨ?
レス数が950を超えています。1000を超えると書き込みができなくなります。