トップページphp
981コメント337KB

くだすれPerl(超初心者用)3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/03/31(火) 22:20:27ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Perl使いが優しくコメントを返しますが、
お礼はPerlの布教と初心者の救済をお願いします。

前スレ
くだすれPerl(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1204488452/

関連スレ
Perlについての質問箱 39箱目
http://pc12.2ch.net/test/read.cgi/tech/1234181856/
Perlコーディング初心者質問スレ Part 59
http://pc11.2ch.net/test/read.cgi/php/1234752149/
【Perl上級者コーナーPart01】
http://pc11.2ch.net/test/read.cgi/php/1024741312/
04824802009/12/15(火) 04:07:33ID:???
>>481
そのままで大丈夫でしたか
ありがとうございました

外部から読み込むというのは、元ファイルで使用する変数も書いたhmtlを記述したファイルを作成して、
適当に変数に代入して分割、適所に読み込んではめ込む感じで良いんでしょうか?
(配布物をいじるだけという程度ですので的外れなことを言ってそうですが
0483nobodyさん2009/12/15(火) 08:45:12ID:???
そういうことを簡単に行うために、Template-Toolkit, HTML::Template or Tenjinといった
テンプレートエンジンがいくつも開発されてる
04844802009/12/16(水) 08:47:58ID:???
>>483
検索した所、十分に利用できるまで、私には障害が多そうなので今回は諦めます
ありがとうございました
0485nobodyさん2009/12/18(金) 22:53:46ID:kWIKrWct
すいません。超初心者です。
$hoge[0]->{'age'} = 20;
$hoge[0]->{'tall'} = 165;
$hoge[1]->{'age'} = 18;
$hoge[1]->{'tall'} = 180;
$hoge[2]->{'age'} = 13;
$hoge[2]->{'tall'} = 170;
のとき、
{'tall'}が小さい順に
@hoge の中を$hoge[0],$hoge[2],$hoge[1]と並び替えたいとき、どうすればいいでしょうか。
初心者なので、言っている意味が分からなかったら、すいません。。。orz
よろしくお願いします。
0486nobodyさん2009/12/18(金) 23:03:48ID:???
@hoge = sort { $a->{tall} <=> $b->{tall} } @hoge;
0487nobodyさん2009/12/18(金) 23:42:19ID:???
お早いご解答ありがとうございます!
助かりました。
04884852009/12/18(金) 23:43:08ID:???
あ、↑は485です。
0489nobodyさん2009/12/29(火) 07:31:09ID:???
>>481
ディスクI/Oは時間を含めいろいろとリソースを食うので、
速度がクリティカルになる場面や頻繁にI/Oがある場面では
ヒアドキュメントの方が良い。

まあこれはHTMLのテンプレートみたいだから外部ファイルの方がいいだろうな。
1アクセス1ディスクアクセスは大した負荷じゃないし、テンプレートはファイルに
分けた方がモダン。
0490nobodyさん2009/12/29(火) 21:37:25ID:???
> ディスクI/Oは時間を含めいろいろとリソースを食うので、
> 速度がクリティカルになる場面や頻繁にI/Oがある場面では
> ヒアドキュメントの方が良い

cache すればよくね
0491nobodyさん2009/12/30(水) 01:00:40ID:MRCq7PuI
常にキャッシングしてくれてればいいけど・・・
0492nobodyさん2009/12/31(木) 06:31:42ID:???
っmemcached
0493nobodyさん2009/12/31(木) 08:05:41ID:???
ヒアドキュメントを使うのはコードの可読性にも影響するから
短けりゃコード埋め込みでもいいと思うし(ファイルにするとかえって
可読性が落ちることがある)、何百行とかやたら長いのならファイルに
入れてそれこそキャッシュしてやればいいと思う。
0494nobodyさん2009/12/31(木) 18:54:26ID:???
CGI初心者なので、見当違いな事を言っていたらごめんなさい。
CGIで、srandを使用せず(勝手に呼び出される物だけで)にrandを使用していた場合、
srandが呼び出されるのはいつになりますか?
複数ファイルに別れていて、複数のクライアントからアクセスした場合、いつ初期化が行われるかが知りたいのです。
宜しくお願いします。
0495nobodyさん2009/12/31(木) 22:44:41ID:???
perlのverは?
0496nobodyさん2009/12/31(木) 22:55:44ID:???
5.8.8です。
よろしくおねがいします。
0497nobodyさん2010/01/01(金) 17:23:01ID:???
組み込み関数だからソースを当たれ
http://www.cpan.org/src/5.0/

まぁここらへんだろうねぇ
pp.c(2717): PP(pp_rand)
embed.h(1985): #define pp_rand Perl_pp_rand
embed.h(4027): #define pp_rand() Perl_pp_rand(aTHX)
opcode.h(858): MEMBER_TO_FPTR(Perl_pp_rand),
pp_proto.h(145): PERL_PPDEF(Perl_pp_rand)
0498nobodyさん2010/01/01(金) 18:26:27ID:???
>>497
ありがとうございます。
とりあえず実際にやってみるのと併せて、頑張ってみます…
0499nobodyさん2010/01/01(金) 19:12:18ID:???
今頃ソースを見てるんだろうけど
PL_srand_calledをチェックして種を初期化するルーチンが入ってる
つまり最初にrandを呼んだ時点でsrandが呼ばれる

ではrandはいつ呼ばれるのか?
それはあんたにしか分からんよ
0500nobodyさん2010/01/01(金) 21:35:42ID:???
>>499
ありがとうございます。
ソース単位で最初に呼ばれた時に初期化されるようですね。
もう少し勉強してみようと思います。
0501nobodyさん2010/01/03(日) 08:19:35ID:???
>>500
srandは過去の遺物だから、今はrandは何も考えずに純粋に
擬似乱数発生器として使って問題ない。

つーかソースなんか読まなくても普通にperldoc -f randすりゃ
いいだけだと思うが。マニュアル読むよりソース読む方が速いとか
どんだけだよ。
0502nobodyさん2010/01/03(日) 17:40:19ID:???
マニュアルを信用するな
0503nobodyさん2010/01/04(月) 05:20:30ID:???
厳密な乱数ならともかく擬似乱数が発生してるかどうかなんてマニュアルもソースも不要だろ。
テストスクリプト数回走らせればいいだけの話。
0504nobodyさん2010/01/04(月) 15:37:53ID:???
<form action="CGIのURL" method="postかget">
<input type="text" name="○○">
<input type="submit" value="送信">
</form>

このような形で文字列を違うページに送り、そのページに表示たいのですがどうしたらいいのでしょうか?
CGIとなるファイルの中身(?)と表示させる方法がいまいちわかりません。
0505nobodyさん2010/01/04(月) 15:40:38ID:???
日本語が下手なので何がやりたいのかさっぱりわからない
0506nobodyさん2010/01/04(月) 16:03:07ID:???
値の受け取りかたも標準出力に何を吐くのかも全然わからないんだと思う。
0507nobodyさん2010/01/04(月) 16:07:33ID:???
>>504
とりあえず簡単な雛形を書いたので、それから細かい質問を受けるとしよう。

use CGI;

my $q = new CGI;
my $some_str = $q->param("○○");

print $q->header( -type => 'text/html', -charset => q{} );
print "<p>$some_str</p>";
0508nobodyさん2010/01/04(月) 16:18:11ID:???
>>505さん
すみません…
 
>>506さん
今まで携帯のレンタルスペースを使用していました。
(独自タグでフォームで送信した文字を受けとったりすることはできました。)

勉強する為にレンタルスペースを離れ、昨日サーバーを借りたんです。
借りたのはいいんですが独自タグに甘えていたせいなのかどうやって受け取っていいのかも全然わからない状態です。
0509nobodyさん2010/01/04(月) 16:59:28ID:???
そもそもPerlが関連しているのか?
0510nobodyさん2010/01/04(月) 17:19:32ID:???
すでにHTMLファイルがあって、その中にフォームから受け取ったパラメータを埋め込みたいと予想。
HTMLテンプレートエンジンを紹介すればいいんでないかな?

それよりPHPでしたほうが楽?
0511nobodyさん2010/01/04(月) 17:24:47ID:???
>>510
そりゃCSRFもSQLインジェクションも何も考えない単純フォームなら
PHPの方が楽だろうよ。
0512nobodyさん2010/01/04(月) 17:37:50ID:???
>>508さん
 
use CGI;

my $q = new CGI;
my $some_str = $q->param("○○");

print $q->header( -type => 'text/html', -charset => q{} );
print "<p>$some_str</p>";
 
これにformで指定した値(○○)を○○に入れるんでしょうか?
 
PerlはHello Worldをコマンドプロンプトでできた位で書いてもらったのもほとんど理解できていません…

>>509さん
 
関係していないのでしょうか?
 
Perlを勉強したいと思い、レンタルスペースを離れたのもあるんですが…
formで送信するにはレンタルスペースでないとCGIが必要と聞いたのでここで質問させてもらったのですが…
 
とりあえず今はCGIのURLの部分にあたるCGIを作ってみたいと思っています。
0513nobodyさん2010/01/04(月) 17:45:19ID:???
勉強するんだったらサーバを借りる前にXAMPPなどを自分のマシンに入れて
ローカル(手元の)マシンでやればいいのよ・・・
0514nobodyさん2010/01/04(月) 17:59:01ID:???
>>512
>formで指定した値(○○)を○○に入れるんでしょうか?
そうです。
name="○○"の、"○○"に相当する部分です。
0515nobodyさん2010/01/04(月) 17:59:11ID:???
>>513さん
XAMPP(?)というのはApache(?)というものと同じで自分のパソコンをサーバー化するみたいなやつですか?
(私はActivePerlをインストールしてあり、Apache(?)はインストールしていない状態です)

サーバーを借りた目的は携帯サイトを作りたいのとPerlの勉強をしたかったからなんです…
0516nobodyさん2010/01/04(月) 18:01:13ID:???
>>504
俺だったらTemplate::ToolkitかClearSilverを使う。
0517nobodyさん2010/01/04(月) 18:02:24ID:???
>>515
ですね。
0518nobodyさん2010/01/04(月) 18:12:56ID:???
>>514さん
ありがとうございます。そこは理解できました。
他のところがどのような意味をしているのか全くわからないのですが
コピーしてメモ帳で拡張子を.cgiで保存してサーバーにアップロードしてもいいのでしょうか?
 
>>516さん
それは携帯にも対応できますか…?
パソコンは2カ月前に購入したので正直わからないことだらけです…
 
>>517さん
ありがとうございます。
0519nobodyさん2010/01/04(月) 18:16:58ID:???
>>516
レンタルサーバーでそれ使えるんですか?
0520nobodyさん2010/01/04(月) 18:20:35ID:???
>>518
アップロードしてもいいけど、今後のことも考えて、自分のパソコンにWebサーバーを構築
しておいて、そこで試してうまくいってから本サーバーにアップするようにしたほうがいいよ。
0521nobodyさん2010/01/04(月) 18:24:04ID:???
どうせなら、Mojolicious::Liteを使って欲しいな
0522nobodyさん2010/01/04(月) 21:07:54ID:???
>>520さん
ありがとうございます。

--
 
use CGI;

my $q = new CGI;
my $some_str = $q->param("○○");

print $q->header( -type => 'text/html', -charset => q{} );
print "<p>$some_str</p>";
 
--

name="○○"の"○○"を○○にいれてアップロードすれば動く(?)のでしょうか?
アップロードするのが心配です…
 
また送信した文字を表示するにはどのようにしたらいいのですか…?
送りたいのはURLの違うページなんですが…
0523nobodyさん2010/01/04(月) 21:17:53ID:???
>>522
それは送信した文字を表示するだけのスクリプトですので害はないです。
ただ、できれば自分のパソコンにWebサーバーを構築して試すことをお薦めします。
0524nobodyさん2010/01/04(月) 21:41:05ID:???
>>523さん

ありがとうございます。

ちょっとわからないのですがサーバーはロリポップです
 
use CGI;

my $q = new CGI;
my $some_str = $q->param("○○");

print $q->header( -type => 'text/html', -charset => q{} );
print "<p>$some_str</p>";
 
○○以外にいじる必要があるところはあるのでしょうか?
○○の部分をname="○○"と同じにしてtest.cgiで保存、アップロードしてみたところ
test.cgi.txt となってしましました…
from側もCGIのURLというところにURLをいれて文字を入れて送信しても
「※CGI もしくは SSI が正しく動作していません。」とでてしまいます…

0525nobodyさん2010/01/04(月) 21:43:03ID:???
すみません、文字打ち間違えてしまいました。
○ test.cgi.txt となってしまいました…
です
0526nobodyさん2010/01/04(月) 21:52:38ID:???
>>524
後ろの.txtを消してください。
パーミッションを700(rwx------)にしくてください。

パーミッションについて / ホームページ / マニュアル - ロリポップ!
http://lolipop.jp/manual/hp/permission/
0527nobodyさん2010/01/04(月) 21:55:28ID:???
shebang も書いてないだろうし先が長そうだね。
勉強したいんだったら、何か入門用の読み物見ながらゆっくりいろいろ遊んでみたらどう?

今まで使ってた独自タグとかいうのと同じことをしたいだけなら
<?php echo htmlspecialchars($_GET['hoge']) ?> こんな感じのを埋め込むほうが楽だと思う。
0528nobodyさん2010/01/04(月) 22:01:17ID:???
>>524
そうだね。
先頭行に、これを付け加えてください。

#!/usr/bin/perl

use CGI;

my $q = new CGI;
my $some_str = $q->param("○○");

print $q->header( -type => 'text/html', -charset => q{} );
print "<p>$some_str</p>";
0529nobodyさん2010/01/04(月) 22:01:57ID:???
>>526さん
何度も何度も申し訳ないです、本当にありがとうございます。

.txtは消しました。
パーミッションというのはどこにある(?)のでしょうか…?
 
/usr/local/bin/perl もしくは /usr/bin/perl
 
これは関係ないのですか?
0530nobodyさん2010/01/04(月) 22:03:50ID:???
ロリポップならPHPが使えるからPHPにしたほうがいいかもね
0531nobodyさん2010/01/04(月) 22:04:25ID:???
>>504の質問だけで何レス伸びるかなー
みんながんばれー
0532nobodyさん2010/01/04(月) 22:06:27ID:???
>>529
>>528のように先頭行に書いてください。
パーミッションの設定方法は、>>526のURLを見てください。
0533nobodyさん2010/01/04(月) 22:09:00ID:???
PHPは別名脆弱性製造言語と呼ばれるくらい、初心者が作ると攻撃に弱いからなぁ
単純なことなら問題ないのだろうけど
0534nobodyさん2010/01/04(月) 22:24:36ID:???
今のhtmlファイルがこうです。

<html>
<head>
<body>
<form action="http://○○.△△/test.cgi" method="post">
<input type="text" name="id">
<input type="submit" value="送信">
</form>
</body>
</head>
</html>

--

cgiファイルが
 
#!/usr/bin/perl 700(rwx------)

use CGI;

my $q = new CGI;
my $some_str = $q->param("id");

print $q->header( -type => 'text/html', -charset => q{} );
print "<p>$some_str</p>";
 
こうなっているんですが、これでいいのでしょうか…?
間違っている場所があれば教えてください。
 
皆さん本当にありがとうございます。
0535nobodyさん2010/01/04(月) 22:29:40ID:???
>>527さん
明日近くの本屋さんに行ってPerlの本を見てきたいと思います。
 
Perlを最初にやるとPHPはわかりやすいと聞いたので
Perlから勉強しようと思ったのですがPHPを最初に勉強することも考えてみます。
0536nobodyさん2010/01/04(月) 22:30:45ID:???
正直、ものすごい初期のレベル(perl以前)から始めないとダメな気がする
0537nobodyさん2010/01/04(月) 22:32:10ID:???
>>534
ここ↓は、

#!/usr/bin/perl 700(rwx------)

こう↓です。

#!/usr/bin/perl

パーミッションは通常、FTPソフトで設定します。
>>526のURLのパーミッションの設定方法を見て設定してください。
0538nobodyさん2010/01/04(月) 22:59:36ID:???
>>537さん

ありがとうございます。
おかげでformで送信したものを.cgiファイルのほうに表示することができました。
 
0539nobodyさん2010/01/04(月) 23:02:35ID:???
それ以前にPerlの文法を知れ
0540nobodyさん2010/01/04(月) 23:28:35ID:???
>>539
すみません
 
0541nobodyさん2010/01/04(月) 23:42:56ID:???
後のCatalystやMooseを超えるものを作るPerl Mongerになろうとはこのときは誰もが思わなかった
0542nobodyさん2010/01/04(月) 23:46:49ID:???
>>541
Perl6の実装が安定するのとどっちが先かな
0543nobodyさん2010/01/05(火) 17:14:37ID:???
>>542
ただの喩えだからPerl6がどうとか関係ないと思うが。

昔はこういう質問で溢れてたよなあ。フォーム作れなくて困ってるとか
久しぶりに見たわ。

XSSとかCSRFとかにも一応気をつけろよ(CSRF対策とかできなさげな気がするが)
0544nobodyさん2010/01/05(火) 17:25:53ID:???
>>543
とりあえずリファラ見ればいいんじゃない?
CSRFは防御が難しいけど
0545nobodyさん2010/01/05(火) 17:30:49ID:???
>>544
まあ、実際にはリファラ見れば大抵のCSRFは防げるわけだが、
http://〜からマッチかけると可搬性がなくなるし、かといってファイル名部分で
マッチをかけると罠サイトも同じにしてくる可能性もある。
リファラに送らないUAに対応しようとすると非直リンでCSRFの穴があく、
などであまり対策にならない。

GET->POSTもしないよりはマシだが、そもそも悪意のサイトだったりXSSされてれば簡単に穴空くしな。
0546nobodyさん2010/01/05(火) 23:08:06ID:???
こんばんは。昨日の者です。
今日、近くにある本屋をいろいろ見てまわってきました。
「10日でおぼえる Perl/CGI 入門教室 第2版」という本しかなかったのでそれを購入しました。
いろいろ読んで勉強してみたいと思います。
 
昨日は本当にありがとうございました。
0547nobodyさん2010/01/06(水) 05:58:47ID:???
>>546
一番買ってはいけない類の本を買ったな・・・。
普通にらくだ・りゃま本とCatalystのマニュアルでよかったのに。
0548nobodyさん2010/01/06(水) 06:25:15ID:???
別にいーんじゃね?ド初心者の入口としては。
それで一応ソース読み書きできる程度になって、
その後はネット上なりリャマなりでいろいろ学んだり実践していけば、
そのうち最初に買った本の内容にツッコミ入れながら読めるようになるだろ。
0549nobodyさん2010/01/06(水) 07:02:49ID:???
>>547さん
そうだったのですか…
なんかよくわからないところばかりです…
Apacheではなく借りたサーバーのほうでやっているせいなのか
本の通り書いても動かないんですよね…
今日は少し遠くに行って探してみます。
0550nobodyさん2010/01/06(水) 07:03:06ID:???
アマゾンの書評を見たけど、Perlの文法の説明がなく初心者用ではないって書いてあるけど。。
0551nobodyさん2010/01/06(水) 07:42:36ID:???
あーレン鯖じゃCatalystは動かないか。
俺はあまり関係ないが、早くPlack対応のレン鯖が現れるといいな。
CGIはいいかげんもういーだろ。
0552nobodyさん2010/01/06(水) 07:43:05ID:???
突っ込まれそうだから一応いっとくけど厳密にはPSGI対応な。
0553nobodyさん2010/01/06(水) 13:08:53ID:???
ド初心者にCatalystを勧める男の人って・・・
0554nobodyさん2010/01/06(水) 17:26:03ID:U4hPtr/3
〜日で覚える

みたいなシリーズは一番買ってはいけない本だと思うのだが・・・
0555nobodyさん2010/01/06(水) 17:28:41ID:???
他サイトで教えていただいたPerlのプログラム(?)なんですがわからないので
解説をしていただきたいのですがここに載せても大丈夫なのでしょうか?

教えていただいた方とは連絡がとれなくなってしまいその人に解説していただくのは不可能です。
捨てメールアドレスを作ってここに載せ連絡をくれた方に送り解説していただく、という形のほうがいいでしょうか?…
0556nobodyさん2010/01/06(水) 17:47:20ID:???
後出しじゃんけんなしで、長くならないように。
あとソースをどこかにアップして、それへのリンクを貼ればよいかと。
0557nobodyさん2010/01/06(水) 18:26:00ID:???
http://www.dotup.org/uploda/www.dotup.org534661.zip.html
pass:2perl です

アップローダーを使ったことないのでちょっと不安ですが…
.txtファイルを一応ALZipで圧縮しています…
0558nobodyさん2010/01/06(水) 18:35:10ID:???
s{qw /:seandard/}{qw/:standard/};

>>557
昨日辺りに「10日でおぼえる Perl/CGI 入門教室 第2版」を買った記憶はない?
0559nobodyさん2010/01/06(水) 18:49:20ID:???
>>558さん
 
購入しました。

use CGI qw /:seandard/;っていうのが買った本には載っていなく検索してみたら
モジュール(?)みたいなことがでてきてここで戸惑っていました
 
他の部分は見て、調べてを繰り返していてparamがパラメータを指している(?)
などということがわかってきたって感じです
0560nobodyさん2010/01/06(水) 23:50:12ID:???
連絡が取れなくなってしまいってこのスレだろwwwwwwww
何モンだあんた
0561nobodyさん2010/01/07(木) 13:58:16ID:???
>>507を書いた自分が来ましたよ
0562nobodyさん2010/01/07(木) 18:03:26ID:cG1x4224
>>560さん
>>557を教えていただいたのはこのスレではなく違うサイトでメールで個人的に教えていただきました。

>>557はまだよく理解できていません…
 
>>561さん
あれから動かなく(?)なってしまいました
 
携帯サイトで使いたいです。
また一度に複数送信したいのですが…
0563nobodyさん2010/01/08(金) 08:56:16ID:???
>>562
ご自分のパソコンにWebサーバーの構築はされましたでしょうか?
ご購入された本にWebサーバー構築のことは書かれてはいませんか?

それから、まずコマンドラインから実行して、最低限のバグは取りましょう。
DOSプロンプトから

C:\>perl xxx.cgi

と打てばいいだけです。

>#!/usr/bin/perl
これは必ずファイルの”先頭行”に書かなければいけません。
Perlを実行するプログラムがどこにあるのかを記述しています。

>use CGI qw /:seandard/; → use CGI qw/:standard/;
use文は、モジュール(特定の機能を集めた関数とデータ群)を現ファイルに読み込みます。
この場合、CGIに必要な機能を集めたCGIモジュールをこのファイルに読み込んでいます。

qw/ /で、その機能のどれを(どのように)使うかを指定します。
今回の:standardは、オブジェクト指向形式でなく関数形式でも使うという指定です。
0564nobodyさん2010/01/08(金) 08:57:47ID:???
>my $q = new CGI → my $q = new CGI;
CGIモジュールのオブジェクトを作り、それを$qという変数に入れています。
$qには、各種データが入っています。
以降、この$qを用いて様々な処理をすることができます。

>my $a = $cgi->param('a'); → my $a = $q->param('a');
>my $b = $cgi->param('b'); → my $b = $q->param('b');
フォームで送られてくるデータを取り出します。
name="○"の○を引数にすることで、そこで入力された値が取り出せます。
$q->xxxとは、$qというオブジェクトに関連付けされた関数xxxを呼び出すという記述です。

>print $q->header;
サーバーからブラウザに送られてくるデータ(レスポンス)はヘッダーと本文に分かれますが、
ブラウザに出力されるのは本文のみです。

ヘッダーには、様々な制御命令が記述されています。
この文は、そのヘッダーを出力しています。

>print $q->start_html;
HTMLの冒頭に必要な各種情報を出力します。

>print << "EOF";
>$aはaで受け取る
>$bはbで受け取る
>EOF
ブラウザに実際に書かれるHTML文章です。

>print $q->end_html;
HTMLの最後に必要なタグを出力をします。

>exit;
プログラムを終了する関数です。
0565nobodyさん2010/01/08(金) 17:40:50ID:???
解説ありがとうございます。

私自身がCGIモジュールというものを作らなければならないのでしょうか?…
サーバーにはよくわからないのでパーミッションを700であげています

外部のサイトには送れるんですが自分のサイトの中でフォームの送受信がいまだにできない状態です…
難しいですね…
0566nobodyさん2010/01/08(金) 17:42:37ID:???
自分のサイト内ってのがよくわからんのだけど、LAN内にメールサーバー立ててるの?
だとするとDNSも立てないとダメだよ?
0567nobodyさん2010/01/08(金) 18:01:17ID:???
今の目標がページAで入力した文字列「あいうえお」をページBに送り「あいうえお」と表示させたいのです。
携帯でも使えて、表示する部分は自分で選べる、複数(入力欄1に「あいうえお」、入力欄2に「かきくけこ」)にも対応させたいです。
 
一番簡単にたとえると、メールフォームで文字を打つ→送信前の確認ページ→送信完了
の「メールフォームで文字を打つ→送信前の確認ページ」ここです。
 
説明が下手で申し訳ないです。
0568nobodyさん2010/01/08(金) 18:05:11ID:???
いや、そうじゃなくて「自分のサイト」ってどこの話?
LAN内? レン鯖?
0569nobodyさん2010/01/08(金) 18:46:14ID:???
LAN内ってなんでしょうか…?

レンタルサーバーです。
0570nobodyさん2010/01/08(金) 18:51:46ID:???
>>565
CGIモジュールは先駆者が既に作っています。
標準で入っているので、どこからか持ってくる必要はないです。

use CGI;の一文で使えるようになります。

Perlの場合、必要そうなモジュールは大概、誰かが作っていて、様々なモジュールを組み合わせて
プログラミングしていくことになります。

WAF(Web Application Framework)と呼ばれている大きなモジュール群あり、これはページ遷移等
の大枠が既に作られていて、比較的簡単に大規模Webアプリを作ることができます。
0571nobodyさん2010/01/08(金) 19:27:43ID:gGxGm+Hx
sub password{
my @u; open(IN,$guestfile); @u=<IN>; close(IN); chomp(@u);
@u=grep($in{'handle'},@u);
return $u[0];
}

● $guestfile: 文字通りゲストの password, handle, etc. を記録したファイルの path.
● $in{'handle'}: STDIN から受け取ったゲストのハンドル.

読み取った情報からハンドルが一致するパスワードを選び出せるはずだったのに,
ハンドルが一致しなくてもパスワードが返って来るっぽ (`д´)うわぁ〜ん.
ど, どうして ?
0572nobodyさん2010/01/08(金) 19:31:55ID:???
$guestfile: $in{'handle'}: の方のコードも見せてもらえないとなんともいいようがないが
スコープ周りが怪しい
0573nobodyさん2010/01/08(金) 19:36:42ID:???
>>569
レン鯖でperlの勉強してるの!?
つかよく許してるなそのレン鯖屋も
0574nobodyさん2010/01/08(金) 19:45:07ID:gGxGm+Hx
>>572
す, 素早い回答ありがとうございます.
もしかして grep() がダメなら loop でぶん回すしかないかな? とアレコレ...

>$guestfile: $in{'handle'}: の方のコードも
zip 圧縮して後ほど upload します.
(叩きどころ満載かと思いますが...)
0575nobodyさん2010/01/08(金) 19:52:08ID:???
後怪しそうなのは、引数の型か
0576nobodyさん2010/01/08(金) 20:06:41ID:gGxGm+Hx
>>530
お手数ですが...
 ttp://homepage2.nifty.com/alter/bbs.zip
0577nobodyさん2010/01/08(金) 20:07:39ID:???
> @u=grep($in{'handle'},@u);

$in{'handle'}が真であるという条件だけで素通ししてるように見えるんですけど
0578nobodyさん2010/01/08(金) 20:10:57ID:gGxGm+Hx
>>530
母音を省略した subroutin, valiable が ほとんどなので
他人様に解読していただくのは極めて困難を極めるかと orz...
0579nobodyさん2010/01/08(金) 20:16:04ID:???
>>573さん

そうです。携帯サイトを作りながら開いたスペースで練習しています。
なのでフォームの送受信というのでしょうか、それができるようになりたいのですが…
0580nobodyさん2010/01/08(金) 20:17:54ID:gGxGm+Hx
訂正: valiable -> variable
0581nobodyさん2010/01/08(金) 20:29:36ID:???
じゃあこっちもだな
subroutine
■ このスレッドは過去ログ倉庫に格納されています