Perlコーディング初心者質問スレ Part 63
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/09/09(金) 18:11:49.71ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >>2 以降
前スレ http://hibari.2ch.net/test/read.cgi/php/1295170172/
0341326
2011/11/28(月) 16:21:49.46ID:???を実現するためググってみました。
ttp://hatsugen.zakzak.co.jp/qa6717936.html
↑ここの「ANo.3」で下記のように書かれていました。
たとえば、httP://hoge.com/A/B というURLをブラウザに与えると、ブラウザはHTTPサーバー(hoge.com)に対して、/A/Bという
ファイルを送れと要求します。
サーバーはこれを探しますが、Bというファイルがなければ、それをディレクトリとみなして/A/B/として/A/B/を探します。
それが存在していれば開いてみます。
httpd.confや.httaccessで下のように指定してあれば、
<IfModule dir_module>
DirectoryIndex index.html index.htm index.cgi index.sh
</IfModule>
前から順番にファイルを探して表示します。いずれもなければ、またこれも設定にしたがってディレクトリ内のファイル一覧を表示するか、
エラーを返すか、その指定もなければ/B/を切り捨てて環境変数に格納し、/Aについて同様な処理を繰り返します。
つづく
0342326
2011/11/28(月) 16:23:22.87ID:???そこで下記を行いました。
@ttp://example.com/ の階層にindex.cgiと下記一行を書いた.htaccessを置きました。
DirectoryIndex index.cgi
Attp://example.com/で、ttp://example.com/index.cgiにアクセスしたことを確認しました。
Bttp://example.com/a/にアクセスするとエラーになりました。
ttp://example.com/a/というディレクトリは存在していないので、
一つ上がったttp://example.com/のindex.cgiを探しに行くのではないかと思うのですが
何か間違えているのでしょうか?
どこをどうすればできるようになるのか教えてください。
0343nobodyさん
2011/11/28(月) 16:28:04.90ID:???>>1
Apache〜嗜みとして〜 Part3
http://hibari.2ch.net/test/read.cgi/php/1043851302/
【Apache】mod_rewriteについて語るスレ
http://hibari.2ch.net/test/read.cgi/php/1023791370/
0345nobodyさん
2011/11/30(水) 10:29:57.17ID:gvpuZTLB今行ったら見つかりませんでした
どのページの、どの部分からダウンロードにいけるのでしょうか?
また、以前ダウンロードした時はは内容が英語でした
出来れば日本語版があればそちらをダウンロードしたいのですが、どこか内でしょうか?
0346nobodyさん
2011/11/30(水) 10:51:48.72ID:???0347nobodyさん
2011/11/30(水) 21:09:58.63ID:???そういうオプションとかってデフォルトの機能にはないですよね?
出力されたhtmlファイルを開く→先頭に書き足す→末尾に書き足す→上書き保存
という処理をするスクリプトを書くということ以上の解決策ってないですよね?
0348nobodyさん
2011/11/30(水) 23:31:46.18ID:???先頭を書き出す→markdown.plを呼び出して結果を書き出す→末尾を書き出す→保存
でいいんじゃね?
0349nobodyさん
2011/12/03(土) 17:25:31.47ID:???>上書き保存という処理をするスクリプトを書くということ以上の解決策
何をもって上/下と言っているのか分からんが、Markdown.pl に書き足す
方法はなぜ思い浮かばないのか。
0350nobodyさん
2011/12/03(土) 19:26:36.05ID:???まあMarkdown.plはいじらないでそのまま使う方が自然だろう。
やるとしたら別名にリネーム(コピー)してから自分専用にカスタマイズ、かな。
ついでに350ゲト
0352nobodyさん
2011/12/05(月) 11:39:58.61ID:???下記の@の所って$ENV{'HTTP_REFERER'}が空だったら$refererはundefになりますよね?
ということはAの $referer eq "" でワーニングになるから、
修正したほうがいいですよね??
if ($referer eq "") { #→ ×
if (defined($referer) && $referer eq "") { #→ ○
#####################################################
# Copyright 2009 Google Inc. All Rights Reserved.
use URI::Escape;
use constant GA_ACCOUNT => 'MO-1887809-14';
use constant GA_PIXEL => '/ga.pl';
sub google_analytics_get_image_url {
my $url = '';
$url .= GA_PIXEL . '?';
$url .= 'utmac=' . GA_ACCOUNT;
$url .= '&utmn=' . int(rand(0x7fffffff));
my $referer = $ENV{'HTTP_REFERER'}; #@
my $query = $ENV{'QUERY_STRING'};
my $path = $ENV{'REQUEST_URI'};
if ($referer eq "") { #A
$referer = '-';
}
$url .= '&utmr=' . uri_escape($referer);
$url .= '&utmp=' . uri_escape($path);
$url .= '&guid=ON';
$url =~ s/&/&/g;
$url;
}
0353nobodyさん
2011/12/05(月) 13:46:44.74ID:???my $referer = exists $ENV{'HTTP_REFERER'} ? $ENV{'HTTP_REFERER'} : '-';
Referer: 0 は明らかに無効だから単に
my $referer = $ENV{'HTTP_REFERER'} || '-';
あと、uri_escape()でやるならURIつかったら
sub {
my $uri = URI->new(GA_PIXEL);
$uri->query_form(
'utmac' => GA_ACCOUNT,
'utmr' => $ENV{'HTTP_REFERER'} || '-',
...
);
return $uri;
}
0354352
2011/12/05(月) 15:34:16.27ID:???my $referer = $ENV{'HTTP_REFERER'} || '-';
が自分にはしっくりきました。
ありがとうございます。
よくみたら $query は使ってないですね。
よくみてたら何か色々おかしなコードだ。
とりあえず感謝です。
0355Web初級
2011/12/08(木) 16:43:00.58ID:bceXKvCi職場では私しかDTPの経験がありません(Webかじったのも私一人)。
イラストレーターからドリームウエバーへ、やっと持って来れるようになりましたが、
コーディングがさっぱり上手く行きません。2度ほどWebスクールにデータ持参で習いに
行きましたが、真似してもさっぱり上手く出来ません。
これじゃ何回習っても、金捨てに行くようなもので困っております。
簡単なビジュアルなので、ハイレベルな技術はいらないと思います。
分かりやすい本とかあれば最高なんですが、なにか名案ありませんか。
よろしくお願いします。
0357Web初級
2011/12/08(木) 18:06:56.56ID:bceXKvCinobodyさんが即答するスレでしたか、暗号のようなQAで驚きました。
おみそれしました。
0360nobodyさん
2011/12/09(金) 10:54:15.39ID:???そりゃコーディング違いだ。
私もコーディングは外注した方が幸せになれると思う。そんな付け焼き刃じゃどうにもならんでしょ。
0361Web初級
2011/12/10(土) 08:46:00.83ID:Suxg5Gi2「3週間でマスターWebデザインの教室」の2冊、これ見て仕上げる
しかありません。やっと再就職して、よこされたのがこの仕事。
試用期間中だし、だれもウエブの事は知りません。
やるしかありません。
0364nobodyさん
2011/12/10(土) 09:49:06.29ID:???. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チラシの裏にでも書いてろ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0365nobodyさん
2011/12/10(土) 16:44:40.44ID:???なかなか通じません。
チラシの裏エディタを紹介しておきますね。
(私も愛用しています)
ttp://yuukiremix.s33.xrea.com/chirashi/
>>361
たぶん、それはくびっていう意味だと思うけど。
0366nobodyさん
2011/12/10(土) 17:53:31.12ID:bJAhMBsmWEBページにラジオボタン、チェックボックスを配置して、
保存ボタンで各項目のチェック状態をDBに保存して、
次回ページを表示するときに、前回のチェック状態を再現させたいのです。
DBに保存まではできたのですが、ラジオボタンとかのチェック状態を設定するにはどうやればいいのでしょうか?
0367nobodyさん
2011/12/10(土) 18:04:10.96ID:???ラジオボタンやチェックボックスなら該当するinput要素に、
checked="checked"
ってすればいいとおもいます。
0368nobodyさん
2011/12/10(土) 18:14:29.61ID:bJAhMBsmHTMLのコードを出力する時に
if (checked) {
print <input type="radio" checked="checked">
else {
print <input type="radio">
}
とかやるってことですか?
数が多くてすごい大変なんだけど、これ普通のやり方なのかな
0369nobodyさん
2011/12/10(土) 18:16:11.86ID:phxklYwZどんだけ馬鹿なの?消えろ
おおwwwwだっせーーーーーーーwwwwwwwwwwwwww
そんなチェック状態とか簡単に考え付くだろwwwwwwww
引き継げばいいだけなのにwwwwwwwwwww
頭悪すぎ
自分=ウサギ
お前ら=カメ
まじまだまだ寝てても平気みたいだね
0370nobodyさん
2011/12/10(土) 18:18:06.55ID:phxklYwZ低レベルすぎる
やっぱりセンスが違うんだなあ
0371nobodyさん
2011/12/10(土) 18:23:07.58ID:???ヒアドキュメントに変数埋めといて、該当箇所だけにchecked="checked"が展開されるようにするとか、
input要素はループで生成するようにしておいて、if文減らすとか、とか、
0372nobodyさん
2011/12/10(土) 18:27:04.72ID:???ループで処理かなぁ。
0373nobodyさん
2011/12/10(土) 21:39:06.91ID:???0374nobodyさん
2011/12/10(土) 22:10:18.53ID:???0375nobodyさん
2011/12/11(日) 11:50:08.36ID:???0376nobodyさん
2011/12/11(日) 12:15:53.32ID:???0377nobodyさん
2011/12/11(日) 16:38:26.87ID:???Perlでやれって言われたの?
今から短時間で実装するならPHPしかないんじゃないの。
Perlでテンプレートエンジンとウェブアプリケーションフレームワークの環境構築とかしてる時間はたぶんないんでしょう?
0379nobodyさん
2011/12/12(月) 11:29:18.56ID:8Y5nZNmR質問がざっくばらんすぎなのでは?
0380nobodyさん
2011/12/12(月) 12:26:49.55ID:???アバウトすぎるとでも言いたいんだろうけど
0381nobodyさん
2011/12/12(月) 14:15:46.02ID:???そのページをperlで取得しようと思っています。
ですが何度やっても401が帰ってくるばっかりでまったく進展しない・・・
#!/usr/local/bin/perl
$|=1;
print "Content-type: text/html\n";
print "\n";
#*一度authorization_basicでやってみました。*
#*他のサイトではうまくいったのですが 目的のサイトでは動作しなかった為*
#*ntlmを試しています*
use LWP::UserAgent;
use HTTP::Request::Common;
my $url = '認証が必要なURL';
# Set up the ntlm client and then the base64 encoded ntlm handshake message
my $ua = new LWP::UserAgent(keep_alive=>1);
# $ua->credentials('ホスト:80', '', "???\\ID", 'パスワード');
$request = GET $url;
print "--Performing request now...-----------<br>\n";
$response = $ua->request($request);
print "--Done with request-------------------<br>\n";
if ($response->is_success) {print "It worked!->" . $response->code . "<br>\n"}
else {print "It didn't work!->" . $response->code . "<br>\n"}
????の部分に思い当たる物が無いので ????\\を消して見てもだめでした。
どういった動きをしているのか、またなぜ失敗しているのかも負えず・・・困っています
宜しくお願いします
0382nobodyさん
2011/12/12(月) 18:29:36.74ID:8Y5nZNmRちゃんと調べろよカス。
use strict;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => 'http://www.example.com/secret.html');
$req->authorization_basic('fuga', 'hoge'); # 'ID', 'PASS'
my $res = $ua->request($req);
あと credentials はダイジェスト認証用じゃないかなと。
ベーシック認証なら authorization_basic を使う。
「ダイジェスト認証 領域名」 でググれば、知識も深まるかと思います。
ちなみに、僕は HTTP::Request::Coomon を使って $req = GET('http://www.example.com/secret.html'); って
やる方が好きです。
0383nobodyさん
2011/12/12(月) 18:48:35.31ID:???どうもありがとう御座います
やってみましたが401が帰ってきました・・・
何でなんだろう?
WWW-AuthenticateにはNegotiateとNTLMって出てるのにorz
0384nobodyさん
2011/12/12(月) 19:57:09.04ID:???http://perldoc.jp/docs/modules/libwww-perl-5.813/LWP/Authen/Ntlm.pod
領域名の部分をちゃんと指定すれば、最初のコードで認証できるかと。
とりあえずサーバーにIISを使ってるなら、そう書いた方が良いと思う。
0385nobodyさん
2011/12/12(月) 20:04:00.94ID:???すみませんサーバー側でIISを使ってるのかどうか 確認はしたのですが、確かではないのでorz
perlのコーディングとは違う質問で申し訳ありませんが、領域名っていうのはいったい何を指定すれば・・・
クライアント側で調べて分かる物なんでしょうか
0386nobodyさん
2011/12/12(月) 20:39:55.27ID:???0388nobodyさん
2011/12/15(木) 18:36:11.15ID:???セルはAからZ列があってそこから先はAA,AB,ACと続くのはご存知だと思います。
このアルファベットを数字に対応させたいと思ってますがアイディアがでませんのでどなたかご教示くださいませ。
1→A ,2→B,26→Z まではできるのですが( chr($_ + 0x60) )、27→AA,28→AB 以降をどうするかがわからないのです。
よろしくお願いいたします。
0389nobodyさん
2011/12/15(木) 19:08:41.22ID:???0390388
2011/12/15(木) 19:27:18.02ID:???数字が26なら一発でZに、28なら一発でABに変換したいのです。
0391nobodyさん
2011/12/15(木) 20:03:59.53ID:???0392nobodyさん
2011/12/15(木) 20:45:17.94ID:???my $n = shift;
my $al = shift || '';
return $n > 0 ? convert(int(($n - 1) / 26), chr(0x41 + ($n - 1) % 26) . $al) : $al;
}
print convert(28); #=> 'AB'
0394nobodyさん
2011/12/15(木) 21:08:20.48ID:???Spreadsheet::WriteExcel って、行・列ともに数値で指定できなかったっけ?
http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel-2.37/lib/Spreadsheet/WriteExcel.pm#Cell_notation
0395nobodyさん
2011/12/16(金) 07:33:02.00ID:???0396nobodyさん
2011/12/31(土) 11:42:50.17ID:uq+4+jAHcgiに送るデータを
index.cgi?user=foo
ではなく、例えば
http://favstar.fm/tweets/popular
のようにディレクトリ風に送って
CGI側で受け取るにはどうすれば良いんでしょうか?
0397日系アメリカ人 ◆japYJPNx6A
2011/12/31(土) 11:53:18.05ID:???0398nobodyさん
2011/12/31(土) 11:54:05.80ID:???0400nobodyさん
2011/12/31(土) 17:34:33.56ID:ELwS00/V0401nobodyさん
2012/01/02(月) 00:05:58.15ID:xN/cFjEo以下のソースでコマンドプロントから入力しても必ず失敗してしまいます
エラーはなく、perl -cw を使ってもOKになり問題はありませんでした
$datfile = "./add.dat";
open(DAT,"+< $datfile");
flock(DAT, 2);
$lock = <<"EOD";
<html><head><title>ページ</title></head>
<body>認証許可</body></html>
EOD
$line = <STDIN>;
chomp($line);
if ($line eq <DAT>) {
print "$lock";
}
else {
print "認証失敗";
}
close(DAT);
datファイルの中身は「t」という一文字が入っています
詳しい方、教えてください
0402nobodyさん
2012/01/02(月) 00:34:00.94ID:???print によるデバッグがしやすいから、面倒でも最初は変数に入れるクセをつけてみると良いかも。
0403nobodyさん
2012/01/02(月) 07:39:45.76ID:???0404nobodyさん
2012/01/02(月) 09:01:46.53ID:???0405nobodyさん
2012/01/02(月) 09:19:16.84ID:???0406nobodyさん
2012/01/03(火) 02:35:21.75ID:???0407nobodyさん
2012/01/03(火) 08:07:23.54ID:???0409nobodyさん
2012/01/03(火) 08:59:10.49ID:???0410nobodyさん
2012/01/03(火) 11:26:01.27ID:???0411nobodyさん
2012/01/03(火) 11:59:37.15ID:???0412nobodyさん
2012/01/04(水) 19:27:09.19ID:???私が欲しい情報はJavaScriptにより出力されたものであるために、
単純にPerlを用いただけでは難しいと分かりました。
どのように対処すれば、JavaScriptの表示部分を取得できるのでしょうか?
よろしくお願いいたします。
0413nobodyさん
2012/01/04(水) 22:01:40.66ID:???0414nobodyさん
2012/01/05(木) 01:03:58.26ID:???0415nobodyさん
2012/01/05(木) 01:39:51.36ID:???それで見張ればいい。
firefox 入れなくない!っていうなら snooper で見ればいい。
0416nobodyさん
2012/01/05(木) 22:01:42.38ID:???みなさんIDEは何をお使いですか?
今んとこ慣れないEclipseでやろうと
思ってます。
0417nobodyさん
2012/01/05(木) 22:27:56.90ID:???コード補完もリファクタリングもヘルプも
中途半端にしかならないからIDEは重いだけだよ。
0418nobodyさん
2012/01/05(木) 22:34:01.35ID:???最近はブロックの折り畳みとかあるんで、充分強力
0419nobodyさん
2012/01/05(木) 22:54:26.32ID:???効果が薄いようですね。
腹くくってエディタでやります。
0420nobodyさん
2012/01/06(金) 02:05:15.33ID:???モジュール ( .pm) を作ったときって、何かエラーが合った場合に
die でスクリプトを止めてしまってエラーを通知するべきか、
それとも STDERR にエラーを出力しつつスクリプトは止めないようにするべきか、
どちらがオススメのコーディングの仕方なんでしょう?
0421nobodyさん
2012/01/06(金) 02:11:20.73ID:???0423nobodyさん
2012/01/07(土) 06:25:16.35ID:???croak が分からなかったので調べてみた。
呼び出し元が分かる die か。なるほど。
ワーニングには carp か。
ありがとう!
>>422
根本的に文章が読みとれてないですよ。
0425nobodyさん
2012/01/07(土) 13:19:20.03ID:???422が正解だと思うが。
0426nobodyさん
2012/01/12(木) 05:19:37.52ID:???420は場合によりけりということがわかった上で、基本的なスタンスはどっちがいいか聞いてんじゃないの?
俺はプロセス殺すなー
変な値入ってんのに処理続けても意味ないし
warnなんてデバッグでしか使ったことないや
0427nobodyさん
2012/01/12(木) 12:02:21.96ID:???おまえも読解能力の欠陥持ちか。
「場合によりけり」では結局何も答えてないに等しいが、>>422はそんなこと書いてないだろ。
どういう時にどっちを選択すればいいかが簡潔に書いてあるだろ。
0428nobodyさん
2012/01/14(土) 02:03:55.49ID:???2038年1月19日3時14分7秒以降のUNIX時間を取得してみるよりスマートな方法で。
学校の宿題でカレンダーを作ったら2038年2月でずれちゃいました。
0429nobodyさん
2012/01/14(土) 05:41:58.49ID:???日付がどうなってるか確かめればよい
0430nobodyさん
2012/01/14(土) 10:28:47.22ID:???これで充分スマートじゃないか?
0431nobodyさん
2012/01/14(土) 12:11:45.71ID:???本当に知りたいことは、2038年1月19日3時14分7秒以降が扱えるかだろう? (キリッ)
0432nobodyさん
2012/01/14(土) 12:21:34.67ID:???0433nobodyさん
2012/01/14(土) 15:29:38.07ID:???年が4桁で有限なのと同じでしょ。
0434nobodyさん
2012/01/14(土) 15:46:35.43ID:???・Time::y2038 モジュールを使う
・DateTime モジュールを使う
のどれかで解決
0435nobodyさん
2012/01/14(土) 16:24:02.91ID:???"トレーニング" である宿題ではそうすべきではない。むしろ
time_t にさえ依存せず、自力で10桁年カレンダーのような無駄
なものを作って自分自身の糧とすべし。
0437nobodyさん
2012/01/14(土) 18:26:43.69ID:???自分で考えろ。こんな所聞くな。
他の人の労力で解決すんな。
0438nobodyさん
2012/01/14(土) 21:36:35.23ID:???既存モジュールの中身を読んでくれ。
0439nobodyさん
2012/01/14(土) 23:37:55.97ID:???0440nobodyさん
2012/01/15(日) 20:18:01.72ID:???■ このスレッドは過去ログ倉庫に格納されています