トップページphp
1001コメント371KB

Perlコーディング初心者質問スレ Part 49

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/05/31(水) 04:32:28ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
03023002006/06/07(水) 18:01:42ID:???
>>301
ありがとうございます!
$が末尾、!$が末尾じゃない、ってことで?が条件文として働いてるってことですかね。

改行コードって実は結構複雑だったんですね。参考にします。
みなさんデータの読み込みのときに毎回コードの変換して・・・
って、書き込みの段階で変換してれば読み込みのときには必要ないのか・・・。
0303nobodyさん2006/06/07(水) 18:11:06ID:???
>>293
perldiagによると、左辺値コンテキストの時にエラーが出るとあるけど、
そこらへんは大丈夫?
0304nobodyさん2006/06/07(水) 18:26:26ID:???
>>302
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlretut.html#looking_ahead_and_looking_behind
0305nobodyさん2006/06/07(水) 18:30:05ID:???
配列の任意の位置の要素を削除したり追加したりする簡単な方法ってありますか?

[例]
@number = (1,2,3,4,5,6,7,8,9,10);

@number = (1,2,3,5,6,7,8,9,10);4番目の要素を削除
としたり、
@number = (1,2,A,3,4,5,6,7,8,9,10);3番目に要素を追加
としたり。
0306nobodyさん2006/06/07(水) 18:35:35ID:???
splice
ぐぐれって・・・
0307nobodyさん2006/06/07(水) 18:41:37ID:???
>>306
すみません。
超初歩的な質問だったようですね。
0308nobodyさん2006/06/07(水) 21:34:12ID:???
http://d.hatena.ne.jp/palmo/20060606/grep
ここの最後の疑問を読んで、確かにそうだなぁと思ったので、こちらで質問させてください。

grepやmapの第一引数にEXPRを指定すると、何度も評価されますよね?
でも、普通に考えたらgrepやmapが実行される前に評価されてしまうのではないでしょうか。
この遅延評価はgrepやmapだけ特別なんでしょうか。
BLOCKを渡すと遅延評価される、というのは納得できますが…。

同じような事がforやwhileなどにも言えますけど、あちらは構文ですよね。
0309nobodyさん2006/06/07(水) 22:43:06ID:???
ん? よくわからんけど

/e$/ は $_ =~ /e$/の略で、普通は

my @e_fruits = grep $_ =~ /e$/, @fruits;
ではなく
my @e_fruits = grep /e$/, @fruits;
って書くと思う。これ関係ない?

ちなみにgrepもmapもforのような書き方もできるぞ。
0310nobodyさん2006/06/07(水) 22:55:49ID:???
>>308
grep は最初の引数(あるいは間接オブジェクトスロット)にコードリファレンスを取る。
それは後続の引数をリスト展開して得られた最初の要素から順に $_ にセットして繰返し呼び出される。

ユーザサブルーチンのプロトタイプで言うと (&@) ね。完全に同一じゃないけれど。

>>309
grep や map を連結できるのは、それぞれが返した値を前の関数に引数として渡しているから。だから両者は全く別物。
for(each), while, if などの修飾子は引数として渡されているわけではなく、スコープを生じるブロックを持たないだけでそれぞれが元来の制御構造であることに変わりがないので。
03113082006/06/07(水) 23:03:22ID:???
>>309
わかりづらくてすいません。
例えば

$_ = 10;
my @r = map $_ * 2, (1..5);
print "@r";

と書いた時に、@r の中身は (10, 10, 10, 10, 10) じゃなくて (2, 4, 6, 8, 10) とできるのは
なぜなんでしょう?
03123082006/06/07(水) 23:06:03ID:???
リロードしてませんでした orz

>>310
ありがとうございます。スッキリしました。プロトタイプの仕業でしたか。
てことは、EXPRの場合もBLOCKの場合も、結局コードリファレンスとして渡されるわけですね。
0313nobodyさん2006/06/07(水) 23:42:47ID:???
ぐえー、難しすぎて意味がわからん。
使う分にはそこまでわからなくても問題ないけど。
0314nobodyさん2006/06/08(木) 00:11:28ID:???
>>313
思考停止はもったいないよ(´・ω・)
意味がわからなければ調べたり質問したりすればいいのに。
0315nobodyさん2006/06/08(木) 00:16:48ID:???
プロトタイプでブロックとるgrepは書けるけど式の方はできないから
やっぱり組み込み関数なのでズルしてると思ったほうがいいね。
03163082006/06/08(木) 00:33:23ID:???
>>315
そうみたいですね…。試しに map を (&@) で実装してみました。
やはり式やブロックだけでは渡せず、無名関数を作ってコードリファレンスを渡さなきゃダメみたいです。
先ほどのブログにコメント付けてきちゃいましたorz 訂正してこなきゃ・・・

sub mymap(&@) {
  my $code_ref = shift;
  my @new_list = ();
  for(@_) { push @new_list, $code_ref->(); }
  return @new_list;
}

$_ = 5;

# @r = mymap $_ * 2, (1..5);            # NG
# @r = mymap { $_ * 2 }, (1..5);        # NG
@r = mymap sub { $_ * 2 }, (1..5);      # OK

print "@r";
0317nobodyさん2006/06/08(木) 00:40:21ID:???
>>316
> やはり式やブロックだけでは渡せず、無名関数を作ってコードリファレンスを渡さなきゃダメみたいです。
おいおい。呼び出し方が間違ってるだけだよ。

× @r = mymap { $_ * 2 }, (1..5); # NG
○ @r = mymap { $_ * 2 } (1..5); # OK
03183082006/06/08(木) 00:44:04ID:???
うわ・・・orz お恥ずかしい。
という事は、式の場合だけは裏でトリックが使われてる、て事でいいのでしょうか…
0319nobodyさん2006/06/08(木) 01:04:38ID:???
>311
別に難しく考えなくても、変数のスコープが違うだけじゃん。
$_ = 10;
print map $_ * 2, (1..5);
print $_ * 2 for(1..5);
print $_;
03203082006/06/08(木) 01:20:55ID:???
>>319
「スコープが違う」というのはわかるのですが、
「なぜgrepやmapの引数に書いた時だけスコープが違うのか」がわかりませんでした。

特別な構文もなしに書いた「$_ * 2」が、mapを呼び出す時点でなぜ「20」と評価されずに
「$_ * 2」という式そのものとして渡せるのかが不思議でした。

紛らわしい書き方ですいません。質問するのは難しいですね……。
長くなってしまいました。皆様お答え頂きありがとうございました。
0321nobodyさん2006/06/08(木) 01:29:33ID:???
少なくとも初心者質問スレ向けの質問ではないなw
03222392006/06/08(木) 01:58:38ID:???
ども、昨晩お世話になった者です。

あの後も、動作確認ができたプログラムを自分の作ったページに組み込んでみるとやっぱり動かない。
試行錯誤の末、サブルーチン名に予約語を使っていたことが分かりました。
で、ようやくさっき、思い通りのページが作れました。

ということで、とことん勉強不足を痛感したわけですが、
ここでのアドバイスがあってなんとかなったもので、一言だけお礼を言いに。
特に>>251氏。ありがとうございました。
他の皆さんも参考になりました。ありがとうです。

またトラブったら泣きつきにくるかもしれませんが、その時はその時でまたよろしくです。
0323nobodyさんNGNG
$obj->func のfunc部分を変数$val='func' を使って実行できるようにしたいと
思っているのですが、eval使うぐらいしか方法はないでしょうか?
0324nobodyさん2006/06/08(木) 07:39:13ID:???
掲示板プログラムを作成しているのですが、
書き込んだり削除したりした後に、掲示板表示画面に戻ってきた際に
キャッシュされた以前の状態の画面が表示されてしまいます。
ブラウザに更新を知らせるにはどのようにするのがよいのでしょうか?
0325nobodyさん2006/06/08(木) 08:28:37ID:???
>>323
my $func = $obj->can($val) and $obj->$func();

いきなり$obj->$val()で動かなかったっけ?
0326nobodyさん2006/06/08(木) 15:06:05ID:iBH9Xn1C
新しくプログラムを作ってみるのに以下をインストールしました。
apache1.3.35 activeperl5.8.8 mysql4.0.26

DBIを使うのにppmでモジュールをインストールしました。
DBIとDBD-mysqlです。

そうしたらどうも
$sth->fetchrow_hashrefがstrict環境下ではエラーになってしまいます。
ハッシュリファレンスの値がありませんとのこと。

以前デスクトップで作ってた環境をノートパソコンに写したのですが、
モジュールのインストールが十分か不安ですが、思い出せません。

確かdata-dumperとdbiとmsql-mysql-moduluesという3つが欲しかったのですが、
ppmで見つからなかったので他のサイトで薦められてたDBD-mysqlとDBIにした覚えが
あります。というあやふやな記憶で今回もその二つを入れたのですが、
どうも動作がしませんので間違っていたかもしれません。

この二つの入れる順番などありましたでしょうか?
それとも前者の3つのモジュールを決められた順番でいれないとfetchrowが使えませんでしょうか。

アドバイス宜しくお願いします。
03273262006/06/08(木) 15:08:17ID:iBH9Xn1C
すみません。winXPにて上記をやっています。
失礼しました。
0328nobodyさん2006/06/08(木) 15:20:30ID:???
data-dumper は Data-Dumper-Simple じゃなくて?
0329nobodyさん2006/06/08(木) 15:21:25ID:???
その他のモジュールはWindowsへは対応が遅れてるとかかも
というのも、以前Encodeモジュールでエラーがあり調べてたらWinとLinux環境とでバージョンの違いが酷かったので・・・
03303262006/06/08(木) 15:33:20ID:iBH9Xn1C
>>328
http://www.rfs.jp/server/mysql/01/07.html
ここを見てperlを勉強していて、(結構前の話ですが)それでDBIもここで勉強しました。

Data-Dumper-Simpleというモジュールは過去に入れた覚えがないのですよね。
過去作っていた環境なら問題なく動いたコードなんです。

fetchrow_heshref以外は問題なく動作してるのでDBIのモジュールのインストール自体は
できてると思うんです。
さっき試しに一旦ppm unsitallしてから先にDBD-Mysqlを入れたら自動でDBIを
先にインストールされました。

モジュールのバージョンがかわってfetchrow_hashrefがダメになったのですかね。
なんでしょうか。とりあえずData-Dumper-Simpleも入れてみますね。

あ、それとstirctを外すと何故かfetchrow_hashrefは動作します。
なんですかねこの症状。
>>329
そうでしたか。
でも過去動作していたコードと考えると逆にバージョンがアップしたせいなのかもしれませんが。
0331nobodyさん2006/06/08(木) 15:41:28ID:???
formの要素に配列は使用出来るのでしょか?

たとえば
<input type="text" name="test[0]">
<input type="text" name="test[2]">
<input type="text" name="test[3]">
というフォームデータを以下のように受け取ろうと考えて
いますが上手く行きません。
use CGI;
$query = new CGI;
@test = $query->param('test');
どなたかご教授お願い致します。
03323262006/06/08(木) 15:43:30ID:iBH9Xn1C
Data-Dumper-Simpleいれてみました。
特にかわりありません。
やはりstrict環境下では$sth->fetchrow_hashrefが不正扱いされるようです。
03333262006/06/08(木) 15:45:36ID:iBH9Xn1C
>>331
それはできません。あくまでHTMLとPERLは違う言語でHTMLには配列という概念がありません。
0334nobodyさん2006/06/08(木) 15:46:14ID:???
>>331
inputタグ内の添え字は要らない。(PHPはできたかも)
あとは@test = $query->param('test'); で読めるんじゃなかったかな?
0335nobodyさん2006/06/08(木) 16:24:15ID:???
>それはできません。あくまでHTMLとPERLは違う言語でHTMLには配列という概念がありません。
そうですか・・・
input type=textを、type=checkboxのようにに同一要素名で
送信する事は出来ないのでしょうか?
・・・とおもったら
>inputタグ内の添え字は要らない。
こちらで解決しました!!
添え字無しできちんと配列データとして送られていました。
ありがとうございます。

0336nobodyさん2006/06/08(木) 16:29:01ID:???
>331
同じnameで配列の様に受け取りたいならcgi-libのReadParseを使ってみてください
たしか\0を区切り文字として渡してくるので
@array = split(/\0/, $in{'param'});
で配列にできたかと
03373262006/06/08(木) 16:37:38ID:iBH9Xn1C
>>334
知識不足ですみません。
>>335
惑わせてしまいすみませんでした。
03383262006/06/08(木) 17:00:06ID:iBH9Xn1C
for ($form{index}..($form{index}+10)){
my $dbh = DBI->connect(@$dbipass{qw/source user pass/});
my $sth = $dbh->prepare(qq|select * from order_table order by ordertime desc limit $_,1;|);
$sth->execute();
my %db_all_field = %{$sth->fetchrow_hashref};
$sth->finish;
print $_,"<br>";
}

上記を試して確認中にやっとのことで原因わかりました。
データーベースにレコードが10以下の時の対処が記述してなかったが故のkとでした。

面目ありません。
0339nobodyさん2006/06/08(木) 18:11:03ID:iBH9Xn1C
ようやく問題が解決したので本題をすすめています。

たまにチャットとかで
只今の閲覧者5人 参加者1人
っていう表示を見かけます。

あれはどうやって実現するのでしょうか。

例えばHTMLのmetaでrefleshを使って30秒毎に相手のIPを確認して
閲覧人数を割り出すのでしょうか?

相手がCGIにアクセスしてきたらIPを取って、取得時間をデータベースに入れておく。
で、1分毎にそのデータベース内のレコードを確認して取得から1分以上になっていたら
削除する。

でもイマイチな仕様ですね。これじゃ。ああ。もっといい方法があると思うのですが。
0340nobodyさん2006/06/08(木) 18:11:51ID:MZDW6IYK
すいません、変数からから指定文字列を抜いた後に
残った数値に1を足したいんですがうまくいきません

$line="hoge100";     
$line =~ s/hoge//;     
$line=$line+1;     
print $line;      何も表示されない

どこが悪いんでしょうか、お願いします。
0341nobodyさん2006/06/08(木) 18:21:17ID:???
>>339
ここはおまえの日記じゃない。
0342nobodyさんNGNG
脳味噌
0343nobodyさん2006/06/08(木) 18:43:37ID:???
>>340
とりあえず

$line='101';
print $line;

で表示されるかどうか確かめることをお勧めする。
0344nobodyさん2006/06/08(木) 19:00:59ID:???
>340
セミコロンの後ろにある全角空白を削除すれば動く
0345nobodyさん2006/06/08(木) 19:43:03ID:iBH9Xn1C
http://modskona.clash.cgiboy.com/

ここ閲覧者数がでますが、これをperlCGIで実現する方法はわかる方いますでしょうか?
0346nobodyさん2006/06/08(木) 19:52:07ID:???
来訪者がCGIを動かしてから1分以内はそこに居ると仮定する
ただこれだけですよ
0347nobodyさんNGNG
俺んとこにもついてるな
03483452006/06/08(木) 20:02:06ID:iBH9Xn1C
>>346
それで1分たったらどうするんですか?
cronとかで1分毎に削除CGIを動かすとかですか?
例えば今自分のサイトのどこに何人いるかを確認できるようにするには、
CSV形式で
1.IPアドレス
2.パスインフォ?でしたっけ
3.リクエスト時刻(秒単位)
でやって毎回誰かがアクセスしてきたらそのCSVのIPで正規表現、重複しないように更新をやって、
削除はcronで別CGIを動かして3のリクエスト時刻が既定タイムを超えてたら
削除。

1分毎にcron起動ってなんかあれですね。
訪問者が来た時に削除プログラムも動かす方がスマートですかね。

と考えてみて一応できそうですが、やり方が下手なような気もします。
指摘などありましたらお願いします
0349nobodyさんNGNG
後者で正解
03503452006/06/08(木) 20:10:23ID:iBH9Xn1C
>>349
ありがとうございます。
とりあえず徹夜で作ってみます。
強制的に訪問者に話かけることができるサイトを。
0351nobodyさん2006/06/08(木) 20:15:48ID:???
>>350
そんなサイトがあったら、怖くて二度といかなくなるような…
0352nobodyさん2006/06/08(木) 20:28:53ID:???
JライクなP使いだな。
0353nobodyさん2006/06/08(木) 21:03:01ID:???
open(FILE, ">test.dat") or die;
print FILE, @stream;
close(FILE);

みたいにして簡単に配列の中身をtest.datに書き込みたいんですが、
エラーになってしまいます。

やっぱり配列をループ回して一行ずつ書き込んでいくしかないんでしょうか。
アドバイスよろしくおねがいします。
0354nobodyさんNGNG
エラーメッセージ読めよ
コンマイラネって書いてあるだろ
0355nobodyさん2006/06/08(木) 21:08:05ID:???
エラーになるといってエラーメッセージ晒さないのはまじめに
回答を求めてないと思われてもしょうがないな...
0356nobodyさん2006/06/08(木) 21:13:05ID:???
ほんとだ、カンマ取ったらいけました
ありがとうございます。
0357nobodyさん2006/06/08(木) 21:17:23ID:???
許さんよ
0358nobodyさん2006/06/08(木) 23:57:04ID:???
htmlログなんですが2chブラウザで読み込めるようにするにはどうすればいいでしょうか?
書き込み禁止の読み込み限定にしたいんですが
0359nobodyさん2006/06/09(金) 00:01:33ID:???
>>358
日本語でおk
03603582006/06/09(金) 00:10:31ID:CHuIt143
>>359
日本語とは?
0361nobodyさんNGNG
にほん‐ご【日本語】

古来日本民族が用いてきた言語で、日本国の公用語。
北海道から沖縄までの島々にわたり、一億余の人々に使用されている。
音韻面では、一つの子音と一つの母音との結合音節を基調とし、
母音で終わる開音節を特徴とする。「ガ・ッ・コ・オ(学校)」という発音にも見られるような
等時的なリズム上の単位、すなわち拍(モーラ)をもち、高低アクセントを伴う。
文法面では膠着語(こうちやくご)に属し、助詞・助動詞が文の成立について
大きな役割を果たしており、また、述語が文の最後にくるという文法構造をもつ。
複雑な敬語法が発達していることもその特徴の一つに数えられる。
中国語から借用した漢字と、漢字を母胎として成立した仮名との併用で表記されるのが普通である。
語彙(ごい)には日本固有の語である和語のほかに、漢字音に基づく漢語も多い。
近年は、西欧語からはいってきた外来語も多く用いられる。国土の面積の割には、
方言による違いも著しく、男女や職業などの別による用語差も大きい。
系統はアルタイ諸語の一つに属するものか、などとも言われるが、いまだに定説とはなっていない。
0362nobodyさん2006/06/09(金) 00:13:57ID:???
>>360
こいつ最高にアホ
0363nobodyさん2006/06/09(金) 10:11:56ID:???
日本語でおk=文章がわかりにくい
0364nobodyさん2006/06/09(金) 15:58:08ID:???
$file1から読み込んだデータを処理した上で$file2に書き込む場合は
if(!open(FH, "< $file1")){&file_err;};
flock(FH, 2);
@DATA = <FH>;
close(FH);

# @DATAの処理。

if(!open(FH, "+< $file2")){&file_err;};
flock(FH, 2);
seek(FH, 0, 0);
print FH @DATA;
truncate(FH, tell(FH));
close(FH);

で良いんですよね?
とすると、$file1から読み込んだデータを処理した後再び$file1に上書きする場合、
上の$file2の部分を単純に$file1にすれば良いんでしょうか?
それとも処理の前にクローズするのはマズイんでしょうか?
0365nobodyさん2006/06/09(金) 17:45:02ID:???
>>364
file2をそのままfile1にすると、ロックが効かない典型。
http://web.archive.org/web/20040216083853/www98.sakura.ne.jp/~jun/perl/flock.html
0366nobodyさん2006/06/10(土) 01:04:27ID:???
if(!open(FH, "+< $file2")){&file_err;};
↑こういう書き方を誰が広めてるの?
open FH, "+< $file2" or file_err();
のほうが自然言語に近くて読みやすいしタイプもすくない。
0367nobodyさん2006/06/10(土) 01:06:14ID:???
・・・ kent とか?
03683582006/06/10(土) 01:10:25ID:fHtGRC+E
htmlログなんですが2chブラウザで読み込めるようにするにはどうすればいいでしょうか?
書き込み禁止の読み込み限定にしたいんですが
0369nobodyさん2006/06/10(土) 01:21:13ID:???
>>368
日本語でおk
0370nobodyさん2006/06/10(土) 01:30:58ID:???
失敗したら何か複数の処理って時に or を使ってると
open(FH, "file") or do { a(); b(); };
とかなってキモス。
03713582006/06/10(土) 01:49:00ID:fHtGRC+E
>>369
たんなるHTMLのみだと
JaneStyleで読みこめません
かちゅでも読みこめません

0372nobodyさん2006/06/10(土) 01:54:26ID:???
>>370
or ( a() , b() ); でもいかね?

>>371
その2ちゃんブラウザのデータのフォーマット見ればどうすればいいのかわかるじゃん。
何がわかんないかさっぱりわかんないから相手にされないんだよ。 現時点じゃ perl の話題とも思えないしな。
0373nobodyさん2006/06/10(土) 02:34:33ID:???
>>372
動く動かないの問題じゃなくて、
open($io, "./3/2/1/0/0/321001056131731037.dat") or ( $obj->method_a() , $obj->method_b() , $obj->method_c() , $obj->method_d() , $obj->method_e() );
位になるとどこで折り曲げるか悩むだろ。
0374nobodyさん2006/06/10(土) 02:45:21ID:???
>>373
なるほ。 まあそれはいくらなんでもそりゃ if 文使うだろーね。
あるいは前もって無名サブルーチン作っておいて、そこでまとめて処理するとかかな。
0375nobodyさん2006/06/10(土) 03:03:50ID:???
おれならorやandで改行しちまうね。
open $io, "./3/2/1/0/0/321001056131731037.dat"
or $obj->method_a()
and $obj->method_b()
and $obj->method_c()
and $obj->method_d()
and $obj->method_e();

しかしこんぐらいなら別のサブルーチン作るかも
0376nobodyさん2006/06/10(土) 03:06:37ID:???
open $io, "./3/2/1/0/0/321001056131731037.dat"
or map { $obj->can("method_$_")->($obj) } (a..e);
とか。この場合ね。
0377nobodyさん2006/06/10(土) 03:13:25ID:???
うぁああキモシキモシキモシなんだこの言語はっ
0378nobodyさん2006/06/10(土) 03:20:09ID:???
2chを支える言語です
0379nobodyさん2006/06/10(土) 03:32:05ID:???
There's more than one way to do it.
03803582006/06/10(土) 03:35:54ID:YyFvvuc/
htmlログなんですが2chブラウザで読み込めるようにするにはどうすればいいでしょうか?
書き込み禁止の読み込み限定にしたいんですが
0381nobodyさん2006/06/10(土) 03:39:26ID:???
>>380
日本語でおk
03823582006/06/10(土) 04:01:25ID:YyFvvuc/
>>381
たんなるHTMLのみだと
JaneViewで読みこめません
ギコナビでも読みこめません
0383nobodyさん2006/06/10(土) 04:11:44ID:???
JaneViewのスレに逝けばいいと思うよ。
0384nobodyさん2006/06/10(土) 04:13:02ID:???
先生、質問ー。

use strict;
my $fuge = 'fuge';
my $run1 = \&Hoge::fuge::run;# 通る
$run1->();
my $run2 = \&{"Hoge::${fuge}::run"};# 通る
$run2->();
my $str = \${"Hoge::${fuge}::str"};# エラー
print $$str;
exit;

package Hoge::fuge;
use strict;
$Hoge::fuge::str = '++++++++++++++++++++++',"\n";
sub run { print '-----------------------------', "\n"; }

上で、$str が通らないのはわかるけど、$run2 が通るのは何でなのかな?
0385nobodyさん2006/06/10(土) 04:52:18ID:???
そんなはずは…

use strict;
(\&{"test"})->();
exit;

sub test{ print "hello, world!"}

って、こんなのも通るのね…。
0386nobodyさん2006/06/10(土) 05:05:09ID:???
AUTOLOADかけなきゃならんからじゃないかな?
0387nobodyさん2006/06/10(土) 06:17:24ID:???
ちゃんとstrictのドキュメントに書いてあるな。386正解
ttp://search.cpan.org/~nwclark/perl-5.8.8/lib/AutoLoader.pm
| There is one exception to this rule:
| | $bar = \&{'foo'};
| | &$bar;
| is allowed so that goto &$AUTOLOAD would not break under stricture.
0388nobodyさん2006/06/10(土) 06:30:15ID:???
うお、URLミスった…
http://search.cpan.org/~nwclark/perl-5.8.8/lib/strict.pm#DESCRIPTION
0389nobodyさん2006/06/10(土) 07:23:45ID:???
例外だったんだ!

( ・∀・)シ∩<へぇーへぇーへぇー

先生方さすがです。
0390nobodyさん2006/06/10(土) 15:22:30ID:+aR8vdDY
htmlとshtmlの違いは何でしょうか?
shtmlにしないとSSIディレクティブはできないんでしょうか??
0391nobodyさんNGNG
すでにPerlの質問じゃネェェェェエェー!!!
0392nobodyさん2006/06/10(土) 15:24:45ID:???
>390
perlと何の関係もないな。
スレ違い。
0393nobodyさん2006/06/10(土) 15:25:38ID:???
FORMから飛ばしてきた内容はどのように扱えばいいのでしょう?

<input name="NAME" type="hidden" value="hoge">

というタグを送信元のページに入れておき、
それをcgiの中で、別の変数に移す時、

$hage = $FORM{ 'hoge' };

と記述したのですがうまくいきません。
記述が間違っていますか?
03943902006/06/10(土) 15:28:43ID:+aR8vdDY
あぁすみません
カウントダウンのCGI作ってたもんで
0395nobodyさん2006/06/10(土) 15:37:06ID:???
>>393
CGIの勉強しろよ…。CGI.pmとか。
PHPじゃないんだからいきなりそんな風には記述できない。
0396nobodyさん2006/06/10(土) 15:43:39ID:???
>>395
某サイトからダウソしたcgiファイルに、FORMで受け取った内容を
>>393の記述で使っている部分があったんで、これでおkと思ってますた。

で、今そのcgiファイルの中に>>393の記述でおkにする部分(らしきもの)を見つけたんで、
それを処理の一番上に持ってきたら思い通りに動作しました。

ありがとうございます。
0397nobodyさん2006/06/10(土) 16:59:32ID:???
切り貼りしてすごい汚いソース作ってそうだなー・・・。
まあ最初は自分もそうだったけどw
0398nobodyさん2006/06/10(土) 17:21:59ID:???
うわー 自分が今その状態…
いろんなところから切り貼りして汚い…('A`)
誰にも見せられない…
0399nobodyさん2006/06/10(土) 21:50:32ID:???
誰もみねえよ
0400nobodyさん2006/06/10(土) 22:06:47ID:???
もっとエレファントに書けよ。
0401nobodyさん2006/06/10(土) 23:02:04ID:???
もっとゴージャスに書いたよくださいほうがいいよ
■ このスレッドは過去ログ倉庫に格納されています