人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perl についての質問です。

HTMLとのやりとりに関してですが、

<html>
<form action="data.cgi" method="post">
<input type="hidden" name="data1" value="あいうえお">
<input type="hidden" name="data2" value="かきくけこ">
<input type="hidden" name="data3" value="さしすせそ">
</form>
</html>

というHTMLファイルを用意して、(送信ボタンがありませんが割愛させて下さい。)CGIファイルには、

for ( $i = 1; $i < $4; $i++) {
$data[$i] = $in_data{'data' . $i};
}

というコードで、@dataに読み込んでいます。現在はこのような方法でやっていますが、HTMLから連続したデータを受け取る際に、もっと効率のよい方法がありましたら教えてください。

よろしくお願いいたします。(はてなユーザーの皆さんに、ここ数日大変お世話になっているので、また少し高めのポイントでお礼をしたいと思います。)(;;){はてながないと最近生きていけません


●質問者: zachouR
●カテゴリ:インターネット ウェブ制作
✍キーワード:HTML Perl はてな はてなユーザー コード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

効率よく、という点ではこれ以上は難しいのではないでしょうか?

十分シンプルですし。

変わった方法なら、

@data = map { $in_data{"data$_"; } (1..3);

とかやっちゃいますけど。

◎質問者からの返答

map 関数はいいですね!その方法があった!

ありがとうございます!


2 ● ootatmt
●35ポイント

1の方と同じく、

@data = map { $in_data{$_} } ('data1', 'data2', 'data3');

として受ければいいと思いますけど、

フォームの方を少し変えてみてはどうですか?


<input type="hidden" name="data" value="あいうえお,かきくけこ,さしすせそ">


としておいて、

@data = split /,/, $in{'data'};

みたいな感じで。

つまりCSVで書き出して、CSVデータを配列に分解して格納するって感じです。

◎質問者からの返答

返答ありがとうございます。

しかし、

の部分が

に場合によっては変わってしまう場合も多く、ユーザーに入力してもらう時も多いのです(^^;

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ