CGIを改造中です。
変数の処理なのですが、サブルーチン内で利用するときに「$in{'~'}」と言う形でしか表示してくれません。これを「$~」の形にしたいです。
数が少なければ「$~ = $in{'~'}」を個数書けばいいのでしょうけど、結構数があるので、何か簡単な方法で変換できないかと考えています。
良い方法があれば教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

ハッシュのままで何か不都合があるのかなと


疑問に思いつつ・・・
#実際ハッシュは
#「(変数の)値に別の値を対応させる」
#ために存在するわけだから

けど,まあ,やろうと思えばkeys関数でできますよ.

%in=(
'X' => 1,
'Y' => 2,
'Z' => 3,
);

for $key (keys %in){
${$key}=$in{"$key"};
print "key; $key ${$key}\n";
}

print "$X $Y $Z";

strictとwarningsのプラグマを外さないといけないので
副作用の方が大きいでしょうが.

この回答への補足

すみません。方法が良くわからないのですが…

やりたいことは#1さんへの補足に記入してあります。

手順としては…
新規データ記入フォーム→ログへの書き込み→html出力。
この場合、$~でhtml出力サブルーチンへデータが移動します。
修正データ入力→ログへの書き込み→記事Noのhtmlファイル削除→html出力。
この場合、$in{'~'}で修正サブルーチンへデータが移動します。

と言うことで、html出力の手前で「$~ = $in{'~'}」と言う処理をさせたいです。
何か良い方法は無いでしょうか?

補足日時:2007/07/02 00:34
    • good
    • 0

#2 の strictとwarnings の話は、無視して構いません。



このキーワードで”ピン”とくる人だけに
対しての注意書きです。
    • good
    • 0

「$~ = $in{'~'}; を実行する」のが (基本的には) #2 の for 文なんだけどなぁ. だから, #2 を試せば問

題は氷解するはずなんだけど....
    • good
    • 0

私はPerlしか知らないので、そのCGIスクリプトがPerlであれば、の話になってしまいますが・・・



格納先はスカラー変数じゃないとダメなのでしょうか?
だとすると($one,$two,$three,$four,$five....)=values %in;
という方法しか私には思いつかないです・・・。
配列でもよければ、
@form=values %in;
で一気に格納できるのですが・・・。

この回答への補足

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

現在、データベース的なものを作ろうとしています。
そして、その結果(レコード)をhtml出力しようとしています。

その「htmlファイルに出力」をする際、「新規作成」と「修正」の処理をさせる必要がありますよね。
html作成部分を、「新規作成」と「修正」の部分で共用しようと考えています。
しかし、「新規作成」の時は「$~」でちゃんと出力するのですが、修正時は「$in{'~'}」でないと出力してくれません。

その為、「$in{'~'}」を「$~」の形に修正する必要があります。

さて、ご指摘のとおり、やってみたのですが、どういう法則かわからないのですが、うまく当てはまりません。ずれて保存されている感じです。(もしかして、フォームの順番順?)
その他の方法があればお願いします。

補足日時:2007/07/01 23:39
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPEの力糸は電車結びで本気で投げても切れないですか?

PE1号に1~5号のPEテーパーラインを電車結びで結んだのですが、
本気で投げても切れないでしょうか?(サーフの投げ釣り)
PEのテーパーラインは高価なので・・・。
何か良い結び方、強化の仕方等ありましたら教えて下さい。

また、その結び目は気にせず投げてもいいのでしょうか?
できれば結び目がスプールの一番下にくるように巻くのがいいのは
分かるのですが、弓角なので1投1投気にしてられないと思うのです。
もし何かアドバイスがあれば教えて下さい。

Aベストアンサー

基本的に投げ釣りであれば問題ないと思います。
PEであろうがナイロンであろうが力糸の長さは10m以上あるので
キャスト時に結び目は直接力が掛かることは無いからです。

PEライン同士の有効な結束方法はあまり記憶に無いので、
電車+抜け止めの意味でのハーフヒッチ程度しか思い浮かびません。

Q$hts =~ s/##([^#]+)##/$FORM{$1}/g の意味を教えてください!

お世話になります。
perl素人なのですが必要に迫られてWEBで調べながら
ソースを解析していますが、次のコードで完全に止まってしまいました。

$hts =~ s/##([^#]+)##/$FORM{$1}/g

この場合、
#hts から ##([^#]+)## を探して $FORM{$1} に全て置き換えようとしていると思うのですが、以下2点が理解できず困っています。

1.##([^#]+)## の意味
$htsに##で囲まれた文字列が複数あるのでそれら全てを探すということでしょうか?

2.$FORM{$1} の意味
$1は1.で検索した結果だと思いますが、$FORM{ }は一体なんでしょうか?

素人がいきなり解析するのは無謀なのは承知の上ですが、
どうしても業務で必要なので、お知恵をお貸し下さい。
よろしくお願いいたします。

Aベストアンサー

1.
perlを基準に「正規表現」で調べてごらん

2.
同じくperlでHTMLのformデータを受け取る方法を調べてごらん

QPEラインとリーダーを結び方

PEラインとリーダーを結ぶ時に今まで電車結びをしていたのですが、なかなか時間がかかり、強度もあまりよくないのですぐはずれてしまいます。何か簡単で頑丈な結び方はないものでしょうか?よろしくお願いします。

Aベストアンサー

私も電車結びにてエギングしています。
エギングデビュー当初はよくすっぽ抜けていました(5回巻き)。一投で新品のエギをロストすることも度々あり、一投目の恐怖といったらありませんでした。
しかし現在は、リーダ側は5回程度 PE側は7回巻きとし、さらに「ラインにシュッ」をスプレーすることでスッポヌケは皆無であります。多く巻けば電車結びでも問題ないいと思います。

FGノット等 他の結び方を覚えればよかったのでしょうが、めんどくさくて未だに電車結びしかできません。
スピードに関してですが、やはりみなさんおっしゃる通り回数を重ねるしかないと思います。

ちなみに リーダーは1.75~2号 PEは0.6号を使用しています。

Q$ENV{'HTTP_COOKIE'}は例えば

a=x;b=y;c=z;
のようなフォーマットになっているのでしょうか?
そうすると
自分のサイトが使っているクッキー名と
他のサイトが使っているクッキー名が偶然に一致していたとき
あるブラウザに書かれている自分のサイトのクッキーが
そのブラウザが他のサイトをアクセスしたときに上書きされてしまうのでしょうか?
そのためにクッキー名をつけるときには偶然に一致しないように一定の長さ以上で特異な名前にしたほうがいいのでしょうか?
クッキーについて基本的なことを教えてください

Aベストアンサー

Cookieは、ドメインごとに設定され、パスで出力先が限定されます。パス指定されない場合、ドメインのルートパスとなります。

おっしゃる通り、同一ドメイン内で設定されたCookieが、全てHTTP_COOKIEで取得出来ます。(無論ドメインが違うと駄目。)もしも、Cookieにパス指定がある場合は、そのパス以下では該当のCookieが取得可能、それ以上の階層では取得不可能になります。(デフォルトだとルートパスなので、ドメイン内のどの階層でも取得可能です。)

このような仕様の為、同一ドメイン・パス指定以下の階層で利用されるものでは、偶然一致してしまうと、他のクッキーを上書きしてしまう可能性はあります。他と重複しない用に、プログラム名等を含ませる形で名付けてあげると良いでしょう。また、共用サーバなどでは、パス指定で自分のホームを指定しておき、他の方のクッキーと混同されないようにする、等の配慮が必要になります。

Qpeラインの結び方

peラインとより戻しがうまく結べません。ナイロン糸なら問題なく結べますが、PEラインは何故か、ズルズルと滑ってほどけます。
何方か結び方のわかりやすいホームページなど教えてください。
自力ではなかなか見つけられませんので、よろしくお願いします。

Aベストアンサー

どうも、こんばんわ。
ジギングをメインに色々な釣りでPEをよく使ってる物です。

まず、前置きになるのですがノットに関してはこのノットが絶対という物はありません。
その人が安定して結べるノットが最良であり、自分のシステム(ノットを含めたタックル全て)の能力を理解した上で魚と向き合えると思います。
そうでないと、いざという時に突然トラブルが起こり大物を逃してしまいます。

PEラインというのは摩擦や熱に弱いです。すなわち受験生には禁句ですが滑ったり締まったりすると一撃で強度が落ちます。
すなわち直接結ぶとその部分で締まったりヨリモドシとの間で摩擦が発生し強度が落ちます。
個人的には一度ショックリーダーをMIDノットで結びその後にヨリモドシをつけてます。
この場合、切れるとしたらヨリモドシの後のハリスで万が一ハリスが極端に太くても次に弱い部分のヨリモドシで跳びます。

これがお勧めかというと釣り物によっても変わってくるでしょうから強度が落ちる事を前提に私の場合は以下の方法をとってます。
まず、ユニノットで固定します。
この時に必ず唾などでラインを湿らせて下さい。理由は熱を発生しにくくするためすべりを良くする。
個人的には折り返したラインを含め外側でぐるぐる巻く変則ノットでやってます。(実績上強度は変わらないです)
この後、ハーフヒッチで編み上げます。
http://www.yoz-ami.jp/contents/knot/game_fg.html
http://mori999.hp.infoseek.co.jp/fgnotto1.htm
この時も湿らす事と、編み上げ時にラインにズリズリこすりながら(摩擦させながら)しないことです。軽く結合部まで絞めていき最後に少し力を入れます。
これを前後に20回(10セット)程度して下さい。
(片側を20回でも強度は同じですが編み上げが螺旋になります)
これで滑る事は絶対にありません。
編み上げる事で多少は一点で締まる事が緩和されます。

また、スイベル部分は2回リングに通す事で一点に対する負荷を軽減できます。

考え方も色々あるので善し悪しは一概には言えませんが個人的には
PEを焼く→そこまで滑るのを可とする。
なのでこれで滑り止めはお勧めできません。
また、下手をすると熱でラインを弱くするのでラインエンドのほどけ防止程度に考えるのが得策かと思います。

長々と書きましたが基本的にはどのようなノットでもあまり滑りません。(スイベルとの間は締め込み系がメインのため)
一度、今までのノットを良く確認いただくことお勧めします。
(今後のナイロンの場合のため)

老婆心ながら書きますがアロンアルファで固定するのは不可です。
PEに固い部分と柔らかい部分ができ、その部分で切れます。

自分にあったノットを見つけて下さい!!
それでは失礼します

どうも、こんばんわ。
ジギングをメインに色々な釣りでPEをよく使ってる物です。

まず、前置きになるのですがノットに関してはこのノットが絶対という物はありません。
その人が安定して結べるノットが最良であり、自分のシステム(ノットを含めたタックル全て)の能力を理解した上で魚と向き合えると思います。
そうでないと、いざという時に突然トラブルが起こり大物を逃してしまいます。

PEラインというのは摩擦や熱に弱いです。すなわち受験生には禁句ですが滑ったり締まったりすると一撃で強度が落...続きを読む

Q$wfurikae = 1 if ( &ccom::getShukujitsu( &com::tD( $wwy,$wwm,$wwd )) ne '' );がよく

$wfurikae = 1 if ( &ccom::getShukujitsu( &com::tD( $wwy,$wwm,$wwd )) ne '' );

というスクリプトがあったのですが、

$wfurikae = 1 の後に;もいれずifがきています。

違和感があります。

どのような意味になるのでしょうか。

宜しくお願い致します。

Aベストアンサー

そのまんまだと思いますよ。
if 以下の条件が真の時 $wfurikae = 1となります。
Perlはいろいろな書き方ができますので、こういう書き方もありです。
英語の文法の並びにする書き方です。

QPEラインの細糸と太糸の結び方

PEのテーパーラインはとにかく高価ですよね!
そこで無理やり細糸(2号以下)と太糸(3号)を結んでみたのですが失敗の連続で・・・。
滑って抜けてしまうか、切れてしまうかのどちらかです。
結び方は”電車結び”です。
良い方法があれば教えて下さい、よろしくお願いします。

Aベストアンサー

私の場合、細糸と太糸はブラットノットで結んでいます。
少しコツがいりますが、結び目が綺麗になるようにゆっくりじわじわと締めるのがコツです。
必ず結び目をしっかり濡らしてから締めこんでください(私はなめながら結んでます)
細糸の方を5~7回巻き、太糸の方は4~5回巻き位でしょうか。(太さによって変わります、両方の結び目が同じ位になるように何回か試してみてください)上手く出来るとかなり綺麗な結び目になるのですぐわかるとおもいます。
PEのテーパーラインは高価なので、私は船釣り用のPEをテーパー加工して使ってます。
作り方はここでは書けませんが(安全性に責任がもてないのと、作り方に自信がもてないため)
PE、テーパー加工などで検索すればヒットすると思います。
過去の質問から遠投をするようなので、力糸はできればPEの4号以上を使ったほうが安全です。

参考URL:http://members.jcom.home.ne.jp/tokyo_fs/text-shikake-musubi.htm

Q$ENV{'HTTP_COOKIE'}について

windowsサーバーのcgi(※)にて「$ENV{'HTTP_COOKIE'}」でcookieの値が正常に取得できてましたが、
linuxサーバーにそのソースをそのまま移行し、動作確認したところ「$ENV{'HTTP_COOKIE'}」でcookieの値が取得できなくなってしましました。
(※)・・・ショッピングカートの処理

ちなみにSSLを使用しているページです。
(1)画面A(http)から「カート入れる」ボタンをクリックし、画面B(https)に遷移
(2)画面Bに遷移した際にcookieに取得、保存

要するにhttpsでセットしたものをhttpsゲットしようとしています。

サーバーの環境は以下となります
■windowsサーバー
・OS : Windows 2003 R2 SP2
・Perl ver : 5.8.7

■linuxサーバー
・OS : Red Hat Enterprise Linux 4
・Perl ver : 5.8.8
・パーミッション : 757

ロジックは変更していないのでおそらくサーバーのどこかの設定を変更しなければならないのではないかと思われますが、どこに手を付けてよいのかがわかりませんので
ご教授していただきたいです。

宜しくお願い致します。

windowsサーバーのcgi(※)にて「$ENV{'HTTP_COOKIE'}」でcookieの値が正常に取得できてましたが、
linuxサーバーにそのソースをそのまま移行し、動作確認したところ「$ENV{'HTTP_COOKIE'}」でcookieの値が取得できなくなってしましました。
(※)・・・ショッピングカートの処理

ちなみにSSLを使用しているページです。
(1)画面A(http)から「カート入れる」ボタンをクリックし、画面B(https)に遷移
(2)画面Bに遷移した際にcookieに取得、保存

要するにhttpsでセットしたものをhttps...続きを読む

Aベストアンサー

サーバー、Webサイトは並行稼動しているのでしょうか。

cookie をセットするときに、ドメインを指定しているが、
移行先のサーバーにアクセスする際のURLのドメインと
異なる、なんてことはないでしょうか。。。

QPEとナイロンお勧めの結び方は?

太さの違うPEとナイロン(ナイロンの方が太い)を結んで、結び目が太くならない強度のある結び方って何がお勧めでしょうか?

ターゲットは2kg~6kgタイやmax8kgのハマチ~ブリが放流されている海上釣堀で、そこのWEBサイトの標準仕掛けでは「道糸5~8号」と書かれています。

行くたびに穂先に糸が絡んでそれをほどくのでまいど時間を無駄にしているので、(安い)中通し磯竿に変えまして(遠投は効きませんが、海上釣堀なので困らない)、ついでに細くて強いという触れ込みのPE糸も体験してみようと思って5号のを買ってリールに巻きました。すると、PEは腰が無くてクタクタなのでそれはそれで扱いにくい。
では、先っぽに10mくらい(いちばん深いところがそのくらいなので、遊動浮きが動ける範囲としてそれくらいあれば足りるだろう)だけ8号のナイロン糸をつけようとしました。

サージャントノットとかトリプルエイトノットを試してみましたが、うっかり結ぶと結び目が中通し竿の穂先に引っかかったり、スピニングリールのスプールの中で糸が結び目に引っかかって投げたときにスムーズに出ていかないとかさんざんな目に逢いました。特に、結び目からナイロン糸の端っこが0コンマ数mmはみ出してるのがあちこちに引っかかる。

とりあえずその場はオルブライトノットで何とか釣りをすることはできる程度にはなったのですが、本当はどういう結び方がお勧めなのでしょうか?「PEなんか使うからいけないナイロンだけでOK」というアドバイスも含めて、歓迎します。

PE+ナイロンリーダーでルアー釣りをする場合について書かれたWEBページだと、FGノットとかノーネームノットが勧められています。が、FGノットは釣行の前の晩にゆっくり結ぶのならまだしも、当日ライン切れの後に結びなおすといったシーンでは時間がかかりすぎるような感じがします。

余談ですが、大物がかかったときにラインと金具の結び目がすっぽ抜けるというトラブルの方は、パロマーノットを使うようにしたら無くなりました。

太さの違うPEとナイロン(ナイロンの方が太い)を結んで、結び目が太くならない強度のある結び方って何がお勧めでしょうか?

ターゲットは2kg~6kgタイやmax8kgのハマチ~ブリが放流されている海上釣堀で、そこのWEBサイトの標準仕掛けでは「道糸5~8号」と書かれています。

行くたびに穂先に糸が絡んでそれをほどくのでまいど時間を無駄にしているので、(安い)中通し磯竿に変えまして(遠投は効きませんが、海上釣堀なので困らない)、ついでに細くて強いという触れ込みのPE糸も体験してみようと思って5号のを...続きを読む

Aベストアンサー

FGノットがいいですよ。

http://www.youtube.com/watch?v=YczssyQtZZo&feature=related
http://kaosho.naturum.ne.jp/e446561.html

まず上の動画を見て雰囲気をつかみ、下のサイトで細かい点を学びます。ポイントは
1.リーダーは切らずにスプールに巻いたまま宙ぶらりんにすること
2.咥えたPEはなるべく地面と平行にすること
です。この方法を覚えると「編みこみよりもハーフヒッチのほうが面倒くさいや!」と変わります。

私は夜の現場でもこの方法で結束できるようになりました。

Qperlの環境変数 ENV{'REMOTE_ADDR'}  について

ショッピングカートのCGIにおいて

ENV{'REMOTE_ADDR'}

IPアドレスを取得すると思うのですが・・・。

何が原因なのかわかりませんが、違うIPアドレスのユーザー同士が、同じIPアドレスを取得したことになり、ショッピングカートの中が重複してしまいます

具体的に、お買物途中で注文したものを削除しないで注文をやめたお客様と同じIPアドレスのもつ他のお客様が買い物かごボタンを押すことにより、

後者のお客様が、ボタンを押していない商品もショッピングカートに入ってしまい・・・。

クレームが入ってしまいます

私ですが、perlに関して素人です。ですが、フリーのCGIを少し加工して使っております。

そこで、質問なのですが、ウイルスバスター等のセキュリティーソフトをインストールしていると、アクセス時に偽装のIPアドレスをログに残す可能性などあるのでしょうか?

勝手な解釈なのですが・・・。

それ以外に、IPアドレスが重複してしまう可能性が自分の知識の範囲内では、思いつきません。

素人的な考えかもしれませんが、ご教授お願い致します

ショッピングカートのCGIにおいて

ENV{'REMOTE_ADDR'}

IPアドレスを取得すると思うのですが・・・。

何が原因なのかわかりませんが、違うIPアドレスのユーザー同士が、同じIPアドレスを取得したことになり、ショッピングカートの中が重複してしまいます

具体的に、お買物途中で注文したものを削除しないで注文をやめたお客様と同じIPアドレスのもつ他のお客様が買い物かごボタンを押すことにより、

後者のお客様が、ボタンを押していない商品もショッピングカートに入ってしまい・・・。
...続きを読む

Aベストアンサー

>ショッピングカートにもIPアドレス認識タイプとCookie利用のタイプがあると思うのですが・・。

調べてみたらあるようですが
http://www.hal9800.com/home/cgi.html
IPアドレスによりきちんとした識別が出来ないため
弊害が起こりうることが明記されています。

>ユーザー自身がクッキーをOFFにしている場合、CGIが使えなくなってしまう
・サイトにクッキーを有効にしてくださいと記述する
・toppageでクッキーを発行し、買い物ページで、そのクッキーを保持しているかどうか判断して
保持していない場合「クッキーが有効でない場合買い物できません」と強調表示する
・クッキー以外の方法ではIDを発行して、QUERYなどでIDを保持させる

>私自身がアクセスしたい際にも、実際のIPアドレスではなく、架空のIPアドレスを2種類、、
これは良くわかりませんがENV{'REMOTE_ADDR'} だけでなく
$ENV{'SERVER_ADDR'} や他の環境変数も記録していませんか?
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2048321
の#2に書いた 環境変数一覧CGIを設置してアクセスしてみて確認してみてはいかがでしょうか?

>ショッピングカートにもIPアドレス認識タイプとCookie利用のタイプがあると思うのですが・・。

調べてみたらあるようですが
http://www.hal9800.com/home/cgi.html
IPアドレスによりきちんとした識別が出来ないため
弊害が起こりうることが明記されています。

>ユーザー自身がクッキーをOFFにしている場合、CGIが使えなくなってしまう
・サイトにクッキーを有効にしてくださいと記述する
・toppageでクッキーを発行し、買い物ページで、そのクッキーを保持しているかどうか判断して
保持し...続きを読む


人気Q&Aランキング