Perlコーディング初心者質問スレ Part 46
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/01/18(水) 02:17:46ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0261nobodyさん
2006/01/28(土) 07:23:22ID:???そうと信じて最後に・・・
my($mailaddress, $newhost);
if($mailaddress =~ /abc/i){
$newhost = 'hoge.ne.jp';
}elsif($mailaddress =~ /def/i){
$newhost = 'hogehoge.ne.jp';
}else{
$newhost = 'heogehogehoge.or.jp';
}
0263nobodyさん
2006/01/28(土) 07:35:30ID:???これが sort に関してだったら返事してないw
>262
面倒だから正規表現でやったお
0264nobodyさん
2006/01/28(土) 07:37:21ID:???0265nobodyさん
2006/01/28(土) 07:38:02ID:???0266255
2006/01/28(土) 07:45:20ID:ZADCbzDwどれもできませんでした(^^;
>>261さん、わかりにくいくてすみません
アドレスをフォームで送ってもらい、そのアドレス欄
$mailに docomoの文字が入っていた場合、
$mailto = [email protected]
$mailに ezの文字が入っていた場合、
$mailto = [email protected]
みたいな文字列を返したいんです
わかりにくいですかね(^^;
0267nobodyさん
2006/01/28(土) 07:59:12ID:???my($user, $host) = split(/\@/, $mail);
if($host =~ /docomo\.ne\.jp$/i){
# DoCoMo の場合の処理
}elsif{$host =~ /ezweb\.ne\.jp$/){
# au の場合の処理
}elsif{$host =~ /[dhtcrknsq]\.vodafone\.ne\.jp$/i){
# vodafone の場合の処理
}else{
# どれにも一致しない場合
}
0268nobodyさん
2006/01/28(土) 08:00:51ID:???my($user, $host) = split(/\@/, $mail);
if($host =~ /^docomo\.ne\.jp$/i){
# DoCoMo の場合の処理
}elsif{$host =~ /^ezweb\.ne\.jp$/){
# au の場合の処理
}elsif{$host =~ /^[dhtcrknsq]\.vodafone\.ne\.jp$/i){
# vodafone の場合の処理
}else{
# どれにも一致しない場合
}
0269nobodyさん
2006/01/28(土) 08:09:12ID:???0270nobodyさん
2006/01/28(土) 08:21:36ID:Tyr9AIOh知ったかすんな(^ω^)
0271nobodyさん
2006/01/28(土) 08:25:12ID:???0272nobodyさん
2006/01/28(土) 08:26:52ID:???0273nobodyさん
2006/01/28(土) 08:28:37ID:???>272
0274255
2006/01/28(土) 08:29:15ID:ZADCbzDwもし分かるようでしたら教えてください
お願いします
0275nobodyさん
2006/01/28(土) 08:35:41ID:???>270は突付いてみただけで何も書けない人なので待つだけ無駄だよん(^ω^)
0276255
2006/01/28(土) 08:43:35ID:ZADCbzDwそうでしたか
皆様ありがとうございました
できなかったんですが
これを参考にsplit(よくわかんない)から勉強しなおしてきます
どうもありがとう
0277nobodyさん
2006/01/28(土) 08:46:09ID:???/\@docomo\.ne\.jp$/i
とかでもOKです。
0278nobodyさん
2006/01/28(土) 08:53:28ID:ZADCbzDw&ReadParse(*in);
って数字以外扱えないとかありますか?
0279nobodyさん
2006/01/28(土) 08:54:03ID:???0280nobodyさん
2006/01/28(土) 09:14:12ID:ZADCbzDw#!/usr/bin/perl
require 'cgi-lib.pl';
&ReadParse(*in);
my $acc = $in{'a'};
my $url = $in{'u'};
if($url = ~/ne\.jp$/i){
$st = "31";
}else{
$st = "23";
}
$ge = $st*$acc;
print <<"EOM";
content-type:text/html\n
<html><head><title>hoger</title></head><body>\n
<a href="$url">$url</a><br>
答えは$geです。<br>
</body></html>
EOM
exit;
0281nobodyさん
2006/01/28(土) 09:16:38ID:???主語述語どころかさっきよりも日本語変になってんじゃんけ
0282nobodyさん
2006/01/28(土) 09:23:48ID:ZADCbzDwすいません
言葉ではうまくいえないので
スクリプトさらしたほうがいいかと思って…
0283nobodyさん
2006/01/28(土) 09:25:17ID:???どこか間違えてますでしょうか?
ソース開始
エラー内容開始
って書くのが普通じゃないかなと
0284nobodyさん
2006/01/28(土) 09:29:23ID:ZADCbzDwフォローありがとうございます
エラーは
<a href="$url">$url</a>が正しく表示されない(31となる)
どんなURLでもすべて["31"]が返ってくる
です
一応動作はします
0285nobodyさん
2006/01/28(土) 09:31:49ID:???=~ ne\.jp$/i は「文字列の最後が ne.jp で終わっていれば」って意味だから
日本の大概のプロバイダのメールアドレスは一致するだろう
0286nobodyさん
2006/01/28(土) 13:28:07ID:Tyr9AIOh0287nobodyさん
2006/01/28(土) 13:40:33ID:???前も見たな、こんなの
> if($url = ~/ne\.jp$/i){
正規表現マッチは =~ であって = ~ は意味が違う
0288nobodyさん
2006/01/28(土) 13:59:03ID:ZADCbzDwありがとうございます!
それが原因でしたm(_ _)m
でもこれって最後の文字が[ne.jp]だったらってことですよね?
文の途中に入ってても処理してくれるようにはできないんですか?
しつこいようですがお願いいたします
0289nobodyさん
2006/01/28(土) 14:05:22ID:???0290nobodyさん
2006/01/28(土) 17:23:41ID:ZADCbzDw正規表現マッチかなり便利そうですね
まだPerlかじりかけでして、
初歩的な質問ばかりしてご迷惑かけたことお詫びします><
これ見てやってみようと思います
0291nobodyさん
2006/01/28(土) 17:52:35ID:???LWPやHTTP:Liteというモジュールを使う方法をがあるようですが
これらが一般的でしょうか?
プロバイダのサーバにはインストールされていないようなので
他にも方法があれば教えてください。
0292nobodyさん
2006/01/28(土) 18:32:38ID:???だうそして、例えば Lib というディレクトリにおいて、
use lib "./Lib";
とやれば普通に require したり use したりできるようになるはずだべ。
0293nobodyさん
2006/01/28(土) 18:34:53ID:kB13KdYyクッキーをセットするサブルーチンで、
print "Content-type: text/html; charset=Shift_JIS\n";
print "set-Cookie: $COOKIE_NAME=$value; expires=$date\n\n";
と出力していて、うまくセットされていたのですが、このサブルーチン
より先に別のサブルーチンを呼び出すよう変更した途端、クッキーがセ
ットされなくなりました。その先に呼び出すサブルーチンその中に
print "Content-type: text/html; charset=Shift_JIS\n";
があるためと思われますが、クッキーセットのサブルーチンの
print "Content-type: text/html; charset=Shift_JIS\n";
を削ってもうまくセットされません。どうしてでしょうか?
0294nobodyさん
2006/01/28(土) 18:43:16ID:???0295293
2006/01/28(土) 18:54:28ID:HCtuTUwqはい。その通りです。どうしたら良いでしょうか?
0297nobodyさん
2006/01/28(土) 19:08:44ID:???>print "Content-type: text/html; charset=Shift_JIS\n";
お前、この文の意味わかってるか?
0298293
2006/01/28(土) 19:43:54ID:3C15B2MWすいません。分かりません。教えて下さい。
0300293
2006/01/28(土) 21:21:54ID:wIuX5Wplどなたか引き続き教えて下さい。
0301nobodyさん
2006/01/28(土) 21:24:40ID:???0303nobodyさん
2006/01/28(土) 22:56:49ID:???何%終了のようなメッセージをどうしたら出力できますか?
0304nobodyさん
2006/01/28(土) 23:19:15ID:???0305nobodyさん
2006/01/28(土) 23:23:24ID:???CGIスレじゃないし、ローカル上のやりとりだと仮定すればできる。
具体性に欠ける質問には答える気0だけどな。
0306nobodyさん
2006/01/28(土) 23:25:39ID:???stat関数でファイルサイズを求めておき、read,writeのループをしながら読んだ・書いたバイト
数を累積していき、時々%を計算してprintすれば良いんじゃない?
0307nobodyさん
2006/01/29(日) 02:18:43ID:???Ajaxからめたら強引にできそうだけど。
0308nobodyさん
2006/01/29(日) 02:24:18ID:???0309nobodyさん
2006/01/29(日) 09:20:15ID:???Ajaxとか... FTPとか...
キミ達の妄想力には呆れるばかりだよ。
0310nobodyさん
2006/01/29(日) 10:29:17ID:???0312309
2006/01/29(日) 11:15:29ID:???0314309
2006/01/29(日) 11:58:10ID:???0315nobodyさん
2006/01/29(日) 12:05:03ID:???0316309
2006/01/29(日) 12:48:06ID:???0318nobodyさん
2006/01/29(日) 13:09:37ID:???(゚∀゚)ノ
0320309
2006/01/29(日) 13:18:43ID:???煽ったのは俺だが、騙ったのは別の誰かだ。
煽ってないとは一回も発言してない。
まさかとは思うが「騙る」を「あおる」と読んでる?
0321nobodyさん
2006/01/29(日) 13:20:01ID:???0323nobodyさん
2006/01/29(日) 14:40:08ID:???まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
0324nobodyさん
2006/01/29(日) 16:53:38ID:???chomp;
last if $_;
}
で入力待ちしているときに、
カウンタダウンを表示させたいとすれば、どういった方法を取ればいいのでしょうか?
0325nobodyさん
2006/01/29(日) 16:59:54ID:???0326nobodyさん
2006/01/29(日) 17:00:47ID:???0 とだけ書いた行が出て来るとループ抜けるですね。
0327nobodyさん
NGNG0328nobodyさん
2006/01/29(日) 18:21:45ID:???キー入力を受け付けたいのです。
0329nobodyさん
2006/01/29(日) 18:27:58ID:???具体的に描写してください
0330nobodyさん
2006/01/29(日) 18:43:57ID:???0331nobodyさん
2006/01/29(日) 19:00:16ID:???どうみても、print "set-Cookie: $COOKIE_NAME=$value; expires=$date\n";
print "Content-type: text/html; charset=Shift_JIS\n\n"; です。
本当にありがとうございました;
0332309
2006/01/29(日) 20:25:54ID:rcECZvhlム板でバカにされてるのもうなずける。
0333nobodyさん
2006/01/29(日) 20:30:23ID:???ここは騙ることで報復したと思えるお子様が住み着いているスレでしたか。
ム板でバカにされてるのもうなずける。
0334ム板 Perl スレ住人
2006/01/29(日) 21:02:27ID:???お前もこっちくんな
0336309
2006/01/29(日) 21:25:22ID:???最底辺を自慢してどうしたいんだよ。
0337nobodyさん
2006/01/29(日) 23:13:56ID:???0338nobodyさん
2006/01/29(日) 23:31:23ID:???0341nobodyさん
2006/01/30(月) 13:40:11ID:???0342nobodyさん
2006/01/30(月) 14:41:41ID:???0343nobodyさん
2006/01/30(月) 22:51:00ID:???$a や $b を使った場合に、
実際に不具合が起こるケースにはどういうケースがあるでしょうか?
「これこれこういうことが起こりうるから使っちゃダメ」
みたいな具体例があれば教えていただきたく。
0345nobodyさん
2006/01/31(火) 00:05:32ID:???サンプルを見る限り、どれもEUCで書かれたページしか対象になってないので・・。
ShiftJIS対応のサンプルとかあれば、参考になるのでありがたいんですけど・・。
Encode.pm使ってコード変換とかしたらなんとかなります?
0347nobodyさん
2006/01/31(火) 00:28:18ID:???#!/usr/bin/perl
use strict;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new( autocheck => 1 );
$mech->get( "http://www.excite.co.jp" );
print "Content-type: text/html\n\n";
print $mech->content;
exit;
0348nobodyさん
2006/01/31(火) 01:15:51ID:???0349345
2006/01/31(火) 01:22:22ID:???データを取得するだけなら、Mechanizeじゃなくても・・。
フォームに自動入力させたり、リンクたどったりするために使いたいんですけど・・。
そのときに文字コードが関連してうまくいかなかったりするのかなぁと思って
聞いてみたんですけど・・。
見当違いの発言してますか?・・・多分してるんだろうなぁ・・。
0350nobodyさん
2006/01/31(火) 01:53:08ID:???見当違いと言うか、試す前に質問するのが間違いだな。
>>1
> 1: 自分はこういう事がしたい。
> 2: それでこんな風にやってみたが・・・
> 3: こんなエラーが出て上手く行かなかった。
0351347
2006/01/31(火) 03:09:04ID:???いや、何となく意図は分かったが、
質問力と実践力の無さを婉曲的に指摘してみた。
EncodeでもJcodeでも
自分なりに試して、それでどうしてもダメだったら聞けば?
質問文に書かれている以上のことを
「おそらくこういうことが言いたいんだな」と想定してあげて、
もし質問者の意図と違ってたら、
回答者の労力って本当に無駄だよね。
0352nobodyさん
2006/01/31(火) 03:13:54ID:???ある意味矛盾ってやつですなw
0354nobodyさん
2006/01/31(火) 03:26:28ID:???Mechを挙げた時点で、シンプルにページのデータ取得だけを目的としたものではないと
検討がつくはず。データ取得ならLWP::Simpleでもできる。
>>345
Spidering Hacksって本の最後のほうに解決策があるよ。ググってみて。
0355nobodyさん
2006/01/31(火) 04:29:56ID:???だから、何でわざわざ推測してやらにゃって話だろ?
書かれた問いに対しての回答としてひとつも間違っちゃいない
0356nobodyさん
2006/01/31(火) 12:17:22ID:h8hzbfFvどんな性格かは言わずもがなだが。
0357nobodyさん
2006/01/31(火) 12:58:54ID:FkRWAlIzまずlogin画面があり、認証後サイトを見れるという感じなのですが
認証後のサイトURL直入力などを防止する為にはどのような対応が良いのでしょうか?
idとパスワードを画面遷移ごとにpostデータとして送るというのはなんか
パスワードがソース内に表記されているという事で嫌な感じがしますが
一般的なのでしょうか?
最近のセキュリティソフトではリファラを出さないそうなのでこれも使用しない
方向で考えています。
どなたかお知恵を拝借願います。
0359nobodyさん
2006/01/31(火) 13:06:20ID:???http://www.shtml.jp/htaccess/basic.html
以上。
0360nobodyさん
2006/01/31(火) 13:17:20ID:???クッキー使用(クッキーにはユーザー名もパスワード名も入れない。セッションIDのみ)
■ このスレッドは過去ログ倉庫に格納されています