Perlコーディング初心者質問スレ Part 46
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2006/01/18(水) 02:17:46ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0892nobodyさん
2006/02/25(土) 02:56:47ID:???0893nobodyさん
2006/02/25(土) 02:58:46ID:???$ENV{"REQUEST_METHOD"} = "GET";
$ENV{"QUERY_STRING"} = "data=1";
my $data = `gaibu.cgi`;
0896nobodyさん
2006/02/25(土) 11:37:16ID:JV6sbN7wを読み込んで、その最終行だけを行ごと削除して出力したいのですが
ググっていろいろ調べて試したんですがうまくいきません。
よろしくお願い致します。
0898nobodyさん
2006/02/25(土) 13:50:14ID:???ロックとかエラー処理は自分で付け加えてね
open(IN, "inputfile.csv");open(OUT, ">outputfile.csv");while(my $inline = <IN>){if($inline =~ /XXX/){print OUT $inline;}}close(IN);close(OUT);
… どこのセルにXXXが含まれてるか分からんからこれ以上は無理
0899nobodyさん
2006/02/25(土) 13:51:44ID:???if(!($inline =~ /XXX/)){〜
0900nobodyさん
2006/02/25(土) 14:08:44ID:???0901nobodyさん
2006/02/25(土) 15:47:11ID:???0902nobodyさん
2006/02/25(土) 16:01:54ID:???0904nobodyさん
2006/02/25(土) 18:21:00ID:???>>901 と >>902 が上級者である根拠は?
0905nobodyさん
2006/02/25(土) 18:22:11ID:???0906nobodyさん
2006/02/25(土) 18:26:41ID:???0907nobodyさん
2006/02/25(土) 18:26:45ID:???0908nobodyさん
2006/02/25(土) 18:27:58ID:???0909nobodyさん
2006/02/25(土) 21:51:05ID:???0910nobodyさん
2006/02/25(土) 22:35:17ID:???今Perlの勉強の為に掲示板を作ってるんですが、
例えば十バイト毎に段落を変えたい場合どうすれば良いのでしょうか?
なにとぞご教授下さい。
0911nobodyさん
2006/02/25(土) 22:37:34ID:???0913nobodyさん
2006/02/26(日) 00:33:33ID:???0914nobodyさん
2006/02/26(日) 00:39:08ID:???1) 10バイトを別の文字列にコピー
2) その文字列を正規表現などで、正しい文字列かチェック
3) 正しくなければ、1バイト減らしてコピーして2)へ戻る
4) 正しければ終了
0915nobodyさん
2006/02/26(日) 02:24:54ID:???0916nobodyさん
2006/02/26(日) 14:45:09ID:???0917nobodyさん
2006/02/26(日) 16:03:42ID:QDNmTDhHですが宜しくお願い致します。
Q.関数の値を代入する際、サイズの制限はあるのでしょうか?
例えば私が考えているので
$test = "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">・・・";
などのように関数にそのままHTMLソースを入れているのですが結構なサイズ
になってしまうので不安です。
0918nobodyさん
2006/02/26(日) 16:05:28ID:???> ですが宜しくお願い致します。
ということにしたいのですね。:)
ちなみにどう「初め」たのか教えてください。
0919nobodyさん
2006/02/26(日) 17:06:28ID:???2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
もちろんどこまで「結構なサイズ」が変数に代入できるかを試した上での質問だよな?
0920nobodyさん
2006/02/26(日) 17:11:02ID:???自鯖でテストしろよ
0922nobodyさん
2006/02/26(日) 17:55:40ID:???0923nobodyさん
2006/02/26(日) 18:01:28ID:???0924nobodyさん
2006/02/26(日) 18:09:45ID:???末期かな
0925nobodyさん
2006/02/26(日) 18:23:15ID:???0926nobodyさん
2006/02/26(日) 18:57:50ID:???ごめんなさい、自鯖というのは何でしょうか?
それでテストということは、テストを行う環境ということでしょうか?
0927nobodyさん
2006/02/26(日) 19:40:19ID:???0928nobodyさん
2006/02/26(日) 19:48:41ID:???0929nobodyさん
2006/02/26(日) 21:04:48ID:???0930nobodyさん
2006/02/26(日) 21:54:22ID:???どのように書いたら良いのでしょうか?変数の選び方が間違っているのでしょうか?
ちなみに、現在は下のプログラムで、"192.168.0.1:80"をポートチェックしています。
for ($i = 0; $i<3; $i++)
{
$port=80;
$ip_add=192.168.0.1;
#↑の行を $ip_add=192.168.0.1+$i; みたいにしたい。
&CheckPort($portNo,$ip_add);
}
0931勉強中
2006/02/26(日) 22:16:58ID:???「NULL」と「LOW-BALUE(1バイトの'00')」は
違うものなのでしょうか???
0932nobodyさん
2006/02/26(日) 22:33:06ID:???0933nobodyさん
2006/02/26(日) 22:35:33ID:???32bits整数にしちゃうと楽かも♪
0935nobodyさん
2006/02/26(日) 22:57:08ID:???Cと違ってperlは文字列長を管理してるからヌル文字が境界にならない。
1文字だけの文字列を作っても、
内部ではreallocが多くならないように、長めにメモリが割り当てらる。
で、文字列長は1文字、とスカラ構造体のどっかに値が入る。
なので文字列にヌル文字入ってても平気。
0936nobodyさん
2006/02/26(日) 23:59:32ID:???my $port = 80;
for (my $x = 0; $x < 256; $x++) {
for (my $y= 0; $y < 256; $y++) {
my $ip_addr = sprintf("192.168.%d.%d", $x, $y);
CheckPort($port, $ipaddr);
}
}
0937nobodyさん
2006/02/27(月) 00:22:17ID:???0939nobodyさん
2006/02/27(月) 01:17:08ID:???ただ、自分の環境でしかテストしてないので間違いがあるかもしれないです
戻り値が 0 の場合はエラー判定してください
sub ip2dec{
my($ip) = $_[0];
my($basedec) = 256 * 256 * 256 * 256; # ベースとなる値
my(@quadip) = (0, 0, 0, 0);
my($ipdec) = 0; # 10進に変換された IP
@quadip = split(/\./, $ip);
# 全ての値が 0 〜 255 に収まってるかチェック
for(my $i = 0; $i < 4; $i++){
if(($quadip[$i] < 0) || ($quadip[$i] > 255)){
return 0;
}
}
for(my $i = 0; $i < 4; $i++){
$basedec = $basedec / 256;
$ipdec += $basedec * $quadip[$i];
}
return $ipdec;
}
0940nobodyさん
2006/02/27(月) 01:17:53ID:???shift 使えよ。
0941nobodyさん
2006/02/27(月) 01:23:23ID:???my($ip) = $_[0] || "";
0942nobodyさん
2006/02/27(月) 01:29:03ID:???取りあえずfor (my $x = 0; $x < 256; $x++)→for (0 .. 256)な。
0943nobodyさん
2006/02/27(月) 01:29:05ID:???0945nobodyさん
2006/02/27(月) 01:49:09ID:???foreach(1..65537){
print join('.', @ip), "\n";
foreach(reverse @ip){
($_ = $_+1 & 255) and last;
}
}
0946nobodyさん
2006/02/27(月) 01:52:39ID:???でさ、65537 って、0x10001 なんだけど。
0947nobodyさん
2006/02/27(月) 01:58:31ID:???$x なんて使ってないし・・・
>943
my($ip) = $_[0] || "";
そこには書かれてないけど
if(!$ip){ return 0; }
で抜けるようにした
ちなみに
&ip2dec("220.110.54.66");
みたく呼ばれることを想定
0948ヽ(´ー`)ノ ◆.ogCuANUcE
2006/02/27(月) 01:59:20ID:???0949nobodyさん
2006/02/27(月) 02:00:59ID:???出来るところは自分で書いた次第です
0950945
2006/02/27(月) 02:02:33ID:???foreach(0..65536){
print join('.', unpack("C4", pack("N", $ip+$_))), "\n";
}
>>946
ただのカウンタだから。
カウントする回数は適当にどうぞ。
0951nobodyさん
2006/02/27(月) 02:02:44ID:???すごいスーパーハカーですね。
for ($x = 0; $x < 256; $x++)
と
for $x (0 .. 256)
って同じ結果を得られるんですかね?
0953nobodyさん
2006/02/27(月) 02:04:32ID:???0954nobodyさん
2006/02/27(月) 02:05:17ID:???それでforのなかで$xが扱えるの?
いい事しりました
0955nobodyさん
2006/02/27(月) 02:06:48ID:???うっせ!そんなので下らない文字レスするなハゲ!あああ、私が悪うござんした。ケアレスミスぐらい多めに見ろやハゲ。
0956nobodyさん
2006/02/27(月) 02:07:28ID:???デスマ中でつか?
0957nobodyさん
2006/02/27(月) 02:08:31ID:???0958nobodyさん
2006/02/27(月) 02:11:54ID:???0959nobodyさん
2006/02/27(月) 02:12:47ID:???0960945
2006/02/27(月) 02:14:36ID:???これ忘れ物ですよ。
ttp://images-jp.amazon.com/images/P/4759222197.09.LZZZZZZZ.jpg
0961nobodyさん
2006/02/27(月) 02:21:18ID:???0962nobodyさん
2006/02/27(月) 03:10:33ID:???0963nobodyさん
2006/02/27(月) 07:31:56ID:???0964nobodyさん
2006/02/27(月) 08:37:23ID:???$string =~ s/?([0-9]+);/chr($1)/eg;
print $string; #ABC
0965nobodyさん
2006/02/27(月) 08:38:12ID:???my $string = "ABC"
0966nobodyさん
2006/02/27(月) 09:47:10ID:???0967nobodyさん
2006/02/27(月) 09:59:42ID:???0968nobodyさん
2006/02/27(月) 10:15:42ID:???0969nobodyさん
2006/02/27(月) 23:11:57ID:???可能であれば教えてくらはい。
ページAからページBに遷移した場合は1としてカウントし、
ページB内で何度更新しても1としてカウントする。
ページBからブラウザの戻るボタンを押してページAに戻り
再びページBに戻ってきた場合は1としてカウントする。
ただし、ページAはこちらでは操作出来ない(弄くれない)ものとする。
最初はリファラーチェックすればいけるかなぁと思ったんですが
ページAから遷移した状態のページBで何度更新してもページAの
リファラーが返っていたのでタメポですた。
何かいい案があれば教えてくらはいませ〜。
0970nobodyさん
2006/02/27(月) 23:27:41ID:???なのでページBでリロードしてもクッキーが取得できないのでカウントアップしない
ってのはどうだろか
0971nobodyさん
2006/02/27(月) 23:34:59ID:???0972nobodyさん
2006/02/27(月) 23:39:18ID:???レスありが�d
しかしながら>>969で書かせて頂きましたように
ページAはこちらでは操作出来ません。
よってページAでクッキーをセットってのが不可能となります。
またクッキーやJavaScript等は一切使えません。
そこ(ページAやページB)へアクセスしてくるのが
クッキーやJavaScriptに対応したものだけとは限らない為です。
わがまま言ってすいません。
0973nobodyさん
2006/02/27(月) 23:46:22ID:???早い話が「他人のサイト」扱いだと思えばいいの?
0975nobodyさん
2006/02/27(月) 23:51:05ID:???基本だから、セッション、リロードチェック辺りでぐぐって。
Bで毎回uniq IDを生成するんだよ。
0976nobodyさん
2006/02/27(月) 23:51:34ID:???リロードしてそのIPあったらカウントしないってのはどう
0977nobodyさん
2006/02/27(月) 23:52:53ID:???CookieやJSオフにしているユーザのことを考えるなら、
リファラを送らないように設定しているユーザも考えることになると思うが。
0978nobodyさん
2006/02/27(月) 23:57:02ID:???簡単すぎるのか、検索では出てきません。
よろしくお願いします。
0979969
2006/02/27(月) 23:59:40ID:???了解です。
いろいろとググりましたが
もっとググってみます。
>>976
>>戻るボタン押した時にそのIP削除
知識不足で申し訳ないです。↑はどのようにやればいいんでしょうか?
>>977
確かにそうですね。
ごめんなさい。
0980nobodyさん
2006/02/28(火) 00:00:59ID:???検索語に何を使っているのか気になる。
ttp://www.google.co.jp/search?q=perl+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
0981nobodyさん
2006/02/28(火) 00:16:04ID:???PHPのサンプルを見ると分かるかもね。
「セッション リロード対策」とかでググって。
そこまでやるかは別だけど。
0982nobodyさん
2006/02/28(火) 00:37:08ID:???<form action="cgiファイル" method=post>
<input type=hidden name=mode value=back2A>
<input type=submit value="Aに戻る">
</form>
--------
上で呼んだcgiファイル(Bでもいいや)で
・IPをログファイルから読み込んで削除
・最後にLocationでAに飛ばす
0983nobodyさん
2006/02/28(火) 16:43:39ID:???0984978
2006/02/28(火) 23:58:59ID:???でも、いまやって見たら、無事にできました。 ありがとうございました。
0985nobodyさん
2006/03/01(水) 13:00:29ID:042Ft4VLここみたいに画像を加工するツールを作りたいんですが、perlだけでできますかね?
0986nobodyさん
2006/03/01(水) 13:08:50ID:???0987nobodyさん
2006/03/01(水) 13:49:58ID:???無事送信出来る時と出来ない時があるのは、
Perlの書き方がまずいのでしょうか?
ググってみたものの、送信できない事はよくあるようですが、
(注意書きで「送信できない場合は[email protected]までご連絡ください」のような)
原因は何なんでしょうか?
0988nobodyさん
2006/03/01(水) 13:58:52ID:???> (注意書きで「送信できない場合は[email protected]までご連絡ください」のような)
これは action="mailto:〜" で片づけてる場合が多いんじゃないのかな。
あと、JavaScriptが効いてないと送信できないサイトでも見かけた。
0989nobodyさん
2006/03/01(水) 14:05:37ID:???0990nobodyさん
2006/03/01(水) 14:09:58ID:???画像処理にimagemagicとGDと2種類あるようですが、
グラフとか書きたいならGD
グラフを書くこと以外ならImageMagic
っていう認識でいんでしょか?
0991987
2006/03/01(水) 14:35:24ID:???ソース見てもらうのは悪いかなと思てたのですが…
うpしましうた。
※設定部分は省いてあります
http://up.spawn.jp/file/up12772.txt
ちなみに、JavaScriptは使ってません。
>>989
見れます。で、見てみました。
が、どうやら入力フォーム→確認画面までは到達し、その後送信ボタンを押しても何の反応もしなく
エラーすらも発生しないようなのです。
なので、それらしいログはなかったです。(まだざっと見ですが)
セキュティソフトとかが悪さしてる場合があるらしいですが、
4分の1の人が送れないらしいので、
さすがに問題は別なのかなと思ってます。
0992nobodyさん
2006/03/01(水) 15:21:35ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。