Perl コーディング初心者質問コーナー Part37
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/08/22 01:41ID:???誰もが最初は初心者。
だからって、初心者に甘んじた質問の仕方は意味がないよ。
【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0577565
04/09/20 03:24:21ID:WP+I8Woy勘違いしていたようです。汗
indexは文字列検索に使う関数だと思っていたのですが、文字列の位置を返す関数なのですね。
CGIの本に書かれていたサンプルソースがパターンマッチっぽい例だったので、文字列検索向けの関数かと思っていました。
ifは数値が 「0」 か 「空」 の場合には偽、それ以外の場合には真なんですよね。
負の値も偽と判断されると思い込んでいました。
>>567さんのやり方で確実に動作する事を確認しました。
結構、適当にPearlを勉強していたのですが、もっと真面目にやろうと思います。汗
有り難う御座いました。
0579nobodyさん
04/09/20 04:16:07ID:???0580nobodyさん
04/09/20 06:08:04ID:???そお遠いわけでもないがな。
0581nobodyさん
04/09/20 09:22:55ID:???0582nobodyさん
04/09/20 10:17:23ID:???まあ、ガンガレ
0583nobodyさん
04/09/20 18:56:55ID:???3
と表示されました。どうなっているんでしょうか?
print "Content-type:text/html\n\n";
@_ = ("あ<>か","い<>き","う<>く");
@value = split(<>, @_);
print $value[0],<br>;
print $value[1],<br>;
print $value[2],<br>;
print $value[3],<br>;
print $value[4],<br>;
print $value[5],<br>;
print $value[6],<br>;
print $value[7],<br>;
0584nobodyさん
04/09/20 19:01:04ID:???0585nobodyさん
04/09/20 19:13:51ID:???0587nobodyさん
04/09/20 19:26:10ID:???0588583御破算
04/09/20 20:29:46ID:???え、そうなんですか(;_;)
>586
404は出ませんでした。httpdとinfoseekで確認しました。
>585>587
ありがとうございます。今携帯から見ているので、後で試してみます。
0590nobodyさん
04/09/20 20:47:03ID:???0591nobodyさん
04/09/20 21:15:09ID:???@value = split(<>, '3');
と同じ
0592nobodyさん
04/09/20 21:27:36ID:???0593583
04/09/20 22:31:17ID:???403でしたorz
>590
httpdがバグった、と思ったので…httpdで試してsyntax errorが出ず、永久ループでなくてもダメですか?
>591
ありがとうございます。それも調べてみます
>592
ローカルとはmyのことですか?だとしたらどこをローカル化すればいいんですか?
0594nobodyさん
04/09/20 22:39:12ID:???|
∩___∩ |
| ノ _, ,_ ヽ (( | プラプラ
/ ● ● | (=)
| ( _●_) ミ _ (⌒) J ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0595nobodyさん
04/09/20 22:52:17ID:???ttp://support.microsoft.com/default.aspx?scid=kb;ja;879066
httpdがバグったって・・・。
何故プログラムを先に疑わないんだ。
0596nobodyさん
04/09/20 22:52:25ID:???0597nobodyさん
04/09/20 22:56:31ID:???@_ = ("あ<>か","い<>き","う<>く");
foreach(@_){
$baka .= $_;
}
@value = split(<>, $baka);
print $value[0],<br>;
print $value[1],<br>;
print $value[2],<br>;
print $value[3],<br>;
print $value[4],<br>;
print $value[5],<br>;
print $value[6],<br>;
print $value[7],<br>;
0599nobodyさん
04/09/20 23:20:32ID:???print "Content-type:text/html\n\n";
print $_."<br>",for split /<>/ ,join("<>",@_);
0600nobodyさん
04/09/20 23:27:37ID:???0601nobodyさん
04/09/20 23:28:38ID:???0602nobodyさん
04/09/20 23:29:06ID:???echo hage| perl aa.plすると、確かに3と出力される。
何が起こっているか誰か解説してくれ。
0604nobodyさん
04/09/20 23:34:53ID:???http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perldata.html#List_value_constructors
0606583
04/09/20 23:55:49ID:???よく強制終了するので…クロック数300�rヘルツ鯖(´・ω・`)
>599
join関数なんてあったんですね。知りませんでした
>591
>603で気付いた、前スレ誤解スマソ
>604
そういうことだったのか…
0608nobodyさん
04/09/21 21:16:47ID:UQFv84yKナイスなライブラリがないでしょうか・・・
もう自分で書くしか?
0610nobodyさん
04/09/21 22:12:03ID:???0611nobodyさん
04/09/21 22:56:33ID:???判別したり、容量、日時を読み出しているのですが
どこかにそういう関数とか解説されたHPないですか
>>1あたりのリンクにはなかったです
0613nobodyさん
04/09/21 23:24:42ID:VDADrx76ヘッダを作成し、その内容にそってメールを送信するようにしているのですが、
特定の環境下で文字化けが発生してしまうようです。
ヘッダに
Content-Type: text/plain; charset="ISO-2022-JP"
と追加しているのですが、コレだけではダメなのでしょうか?
もう一点、質問なのですが、Beckyなどのメーラーから送信するとヘッダに
Content-Transfer-Encoding: 7bit
が付属されていますが、この内容も文字化けに関係しているのでしょうか?
質問内容が、Perlとちょっと離れているかもしれませんが・・・
よろしくお願いします。
0615608
04/09/21 23:38:12ID:UQFv84yKPurePerlだと、PPMとか使ってインストールしなくても、
任意の場所にモジュールファイルを置いて、requireすればOKなんでしょうか?
0616nobodyさん
04/09/21 23:44:41ID:???0617nobodyさん
04/09/21 23:59:06ID:VDADrx76スイマセン、RFCって何でしょうか・・・・
このような質問は、そちらですれば良いと言う事ですか?
0618nobodyさん
04/09/22 00:09:08ID:???0619nobodyさん
04/09/22 01:11:45ID:???0621nobodyさん
04/09/22 10:52:47ID:???0622nobodyさん
04/09/22 11:54:45ID:???http://www.google.co.jp/search?q=RFC&hl=ja&lr=lang_ja
http://pc5.2ch.net/test/read.cgi/php/1095633323/
0623nobodyさん
04/09/22 15:34:38ID:???Perlを使用してDBアクセスを行いたいのですが、
開発環境はどのように作成したら宜しいのでしょうか?
インタプリタ等、必要ですよね・・・
0624nobodyさん
04/09/22 15:56:04ID:???0625nobodyさん
04/09/22 16:07:28ID:???環境構築は特に必要ないのでしょうか?
何も入っていないPCに
PerlインスコしてOracleインスコして
それから、FTPでCgiをUpすれば良いということでしょうか?
0628nobodyさん
04/09/22 17:03:07ID:???例えば、http://hoge.com/xxx/test.cgiのtest.cgiにアクセスした時に、
ディレクトリ名のxxxを変数として取得したいのですが。
よろしくお願いいたします。
0631nobodyさん
04/09/22 17:46:12ID:???んー、難しい。
0632nobodyさん
04/09/22 17:55:43ID:???あれ!?そうだっけ、すまん。
んじゃ
$ENV{'SCRIPT_FILENAME'}, $ENV{'SCRIPT_NAME'}, $ENV{'REQUEST_URI'}
でどお?
0635nobodyさん
04/09/22 19:23:37ID:???0636nobodyさん
04/09/22 21:15:51ID:???0638nobodyさん
04/09/23 12:05:23ID:???0639nobodyさん
04/09/23 12:07:07ID:???0640nobodyさん
04/09/23 13:49:58ID:+nr7omoUURIエンコードされてる文字列を元に戻すコードは
$buffer =~ s/%([a-zA-Z0-9][a-zA-Z0-9])/pack "H2",$1/eg;
$buffer =~ s/%([a-zA-Z0-9][a-zA-Z0-9])/pack "C",hex($1)/eg;
この二つのどちらでもデコードできますが、どちらがおすすめですか?
前者の方が処理は速いです。でもだいたいの入門サイトには後者のコードが載ってます。
そこらへんで悩んでます。みなさんあどちらを使ってますか?
0642nobodyさん
04/09/23 13:52:47ID:+nr7omoUどうしてそういうこと言うんですか!?
0644nobodyさん
04/09/23 14:06:57ID:+nr7omoUそんなっ・・・・・
Cでやるのは明らかにに非効率で、処理時間も倍かかるのに何故かCの方がスタンダードな
理由をあたしと話してみてもいいじゃないですかっ!
もういいもん。あたし帰るからねっ!
0646nobodyさん
04/09/23 14:30:55ID:+nr7omoU何よあんたっ!?すっごいむかつくっ!信じらんない!
もうやめて!あなたここにこないで!絶対にこないでよ。
0647nobodyさん
04/09/23 14:49:03ID:???0648nobodyさん
04/09/23 14:50:28ID:qhT0f5z2my ($a=1,$b=2); だとエラーになります
定義したあとに一つ一つ代入していくしかないのでしょうか?
0649nobodyさん
04/09/23 14:52:57ID:+nr7omoUmy ($a,$b) = (1,2);
0650nobodyさん
04/09/23 14:56:18ID:???0651nobodyさん
04/09/23 15:01:42ID:???my @a = qw/ a b c/;
my @b = qw/ a b c d/;
二つの配列があって、@bには@aの持ってない値を持つことを禁じたいのです。
なので@aにない値なら削除したいのですが、どうかけばよろしいですか?
for ( 0..$#b)
とかやるとブロック内で@bの要素を減らすと問題がありますよね・・・おねがいします。
あ、あと追加で済みませんが、
my $a = [qw/1 2 3 4/];
のような場合のラストインデクスの求め方は
@$#a
でうまくいかないのですが、どうかくのですか?
0655nobodyさん
04/09/23 15:28:26ID:+nr7omoUmy @c;
foreach my $value (@b){
if ( map /$value/, @a ) { push @c,$value }
}
これで@cの中には@aにあるものしか入らないよ。>>653はむかつくやつだから
無視した方がいいよっ!だって私回答したんだから、それくらい言う権利あるわよね!
0656nobodyさん
04/09/23 15:30:20ID:???前半:
my %a;
map $a{$_}++, @a;
@b = grep !$a{$_}, @b;
後半:
$#$a
0657nobodyさん
04/09/23 15:33:08ID:+nr7omoU何あんたっ!もう私が答えてるのよ!失礼なことしないでよっ!バカじゃないの!
0659nobodyさん
04/09/23 15:56:18ID:???0660651
04/09/23 16:04:15ID:+nr7omoU0661nobodyさん
04/09/23 16:56:25ID:???0663nobodyさん
04/09/23 17:06:44ID:EIIt3BOR簡易的なサンプルのグラフが出力でき、目的の棒グラフを作ろうと
思って、棒グラフと、点ぐらふで、左軸と右軸にそれぞれ違った
数値を持たせようと思い、オプションのセットの部分で、
$graph->set(
(略)
two_axes => true,
y1_max_value =>100,
y1_min_value =>0,
y2_max_value =>50,
y2_min_value =>0
);
と表してみたのですが、左の軸しか出力されません。
true_axesの値がtrueの時と言うことは、書いてあったので、
そこがおかしいのかと思い、two_axes => "true",としてみたり
two_axes => 1,としてみたり、色々試してみたのですが、
だめでした。どのようにしたら、左右別々の軸の値を出すことが
できるでしょうか?ご教授お願いいたします。
0664nobodyさん
04/09/23 18:28:51ID:???もしも$aの値の中にa-zA-Zとハイフン(-)以外を含んでたら処理発動ていうのがしたいんですが、
$a =~ /[a-zA-Z\-]/;
としてもうまくいきません。ハイフンをエスケープできてないのでしょうか?
0665nobodyさん
04/09/23 18:48:23ID:???処理
}
0666nobodyさん
04/09/23 19:43:29ID:???0667664
04/09/23 20:46:29ID:???すみません。そこ書き間違えてました。
[^a-zA-Z\-]としてます。
my $a = "abcdeFGRYEHDU-sss-";
print "ok" if $a =~ /[^a-zA-Z\-]/;
これだと普通にうまくいくようなので、どうやら初めから他の部分のコーディングにミスがあったんだと思います。
すみません。
0668nobodyさん
04/09/23 21:16:21ID:???CGI::Liteのparse_cookiesを呼ぶと、
なぜかフォームの内容までが取得されてきてしまったり、
逆にparse_form_dataでクッキーの内容まで取得されたり、ということが起きています。
parse_cookiesは、parse_form_dataとほとんど同じ動きをする、
というのをどこかで見ましたが、同じ内容が取得されるということなのでしょうか?
0669nobodyさん
04/09/24 00:20:24ID:???いちいちif文で$a>=$b && ...... とやる以外に方法はありますか?
0672nobodyさん
04/09/24 01:07:35ID:AJG/3HYEEditorでいじろうかと思ったのですが
文字が文字化けして何を書いてあるのかわからないのですが
この文字化けを解決する方法ないでしょうか?
0673nobodyさん
04/09/24 01:23:51ID:???0674nobodyさん
04/09/24 01:26:51ID:QHIu4qbQなにか手軽な方法はないでしょうか?
キーは不定なので直接指定することはできません
今は↓のようにいったん key を配列にしてからソートして目的の key を
指定してるんですが他に何かいい方法はないでしょうか?
my @tmp = sort keys(%abc);
my $data1 = $abc{$tmp[0]};
my $data2 = $abc{$tmp[$#tmp]};
0675nobodyさん
04/09/24 02:22:53ID:???ハッシュのキーには順番はないんだからそれでもしょうがないんじゃない?
ところで連番って、キーは数字なのか?
もしそうならそれだと最後は得られないけど。
sortだけだとキーが1〜10としたら 1 10 2 3 4 ・・・になってしまう。
@tmp = sort { $a <=> $b } keys(%abc); にしないと。
■ このスレッドは過去ログ倉庫に格納されています