【Perl 】初心者コーナーPart6
■ このスレッドは過去ログ倉庫に格納されています
0001undefさん
2001/07/26(木) 00:40ID:???尋ねる前に同じ質問がないかこのスレや旧スレ、及び>>2のリンクを一通り見てみよう。
案外答えはもう書かれているかもしれない。
0102名無しさん@お腹いっぱい。
2001/08/02(木) 02:08ID:???0103名無しさん@お腹いっぱい。
2001/08/02(木) 03:43ID:GB8M4TIEファイルA,B共
postday#sing#cast#part#add
postday#sing#cast#part#add
と言った形式なのですが、無差別に追記して行くと内容が重複してしまうので
postdayをキーにして、ファイルBの最後の要素のpostdayとファイルA
のpostdayを比較、一致しなければそのままファイルBに追記、
一致する要素が有ればそこまでをpopして、ファイルBに追記したいのです。
バックアップの参考になりそうなスクリプトを見てみたのですが、
アレンジする事が出来ないでいます。
0104名無しさん@お腹いっぱい。
2001/08/02(木) 03:50ID:???単純にバックアップを取るのであれば、File::Copyでも使えばいいかと思いますが。
0105103
2001/08/02(木) 03:58ID:GB8M4TIEレス有難う御座います。掲示板のログのような(実際は少し異なります)
小さなログファイルAを大きなファイルBにバックアップしたいのです。
ファイルAは保存期間や容量が小さい為に効率的にファイルBに保存したい
と考えています。
0106103
2001/08/02(木) 04:06ID:GB8M4TIEファイルBを読み出して最後のエントリの日付"postday"を"$saisyuu"で得る。
ファイルAを読み出す。
$saisyuuとファイルAの"postday"を比較
重複しなければそのままファイルBに追記。
$saisyuuと一致する行がファイルAにあればそこまでを削除して、ファイルBに追記。
これで上手く行かないか挑戦してみます。 有難うございます
0107104
2001/08/02(木) 04:34ID:???一例として。
statでファイル更新時間を取って、異なれば書き込み、とか。
my @file = qw(A B);
if ((stat $file[0])[9] != (stat $file[1])[9]) {
#...
}
0108名無しさん@お腹いっぱい。
2001/08/02(木) 04:38ID:???http://www.megabbs.com/program/index.html
0109>>103
2001/08/02(木) 04:40ID:P5Z/J3iM# A を読み込み
open A,"a";
@aaa=<A>;
close A;
# B を読み込み
open B,"b";
@bbb=<B>;
close B;
# @aaa と @bbb の非共通部分を @ccc へ
for(@bbb){
@ccc=grep(!/$_/,@aaa);
}
# @bbb と @ccc の共通部分を @ddd へ
for(@bbb){
@ddd=grep(/$_/,@ccc);
}
# @aaa と @ddd を書き込み
open C,">a";
print C @aaa , @ddd;
close C;
0110名無しさん@お腹いっぱい。
2001/08/02(木) 14:11ID:RSuVRy4cサブルーチンの中でサブルーチンを実行し、
そのサブルーチンの中でも別のサブルーチンを呼んで…
という風にサブルーチンを入れ子にしていくと内側の階層の深いサブルーチンの
挙動がおかしくなっていくというか、時には動かないなんてことはあるんでしょうか?
ためしにある処理をそのまま書いてちゃんと動いたものを
サブルーチンとして{}で囲んで書いただけでおかしくなりました。
環境はWin+ANHTTPDなのですが、もしやWinPerlだけの症状なのでしょうか?
どなたかご存知の方いらっしゃいましたらお願いします。
0111名無しさん@お腹いっぱい。
2001/08/02(木) 14:17ID:???多分サブルーチンの書き方に問題があると思われ。
0112名無しさん@お腹いっぱい。
2001/08/02(木) 14:17ID:???そのスクリプトを出してくれ。
ありがちなものとしては、同じ名前のサブルーチンが他に存在してるとかかな?
w2k+ANHTTPDだけど、普通に動いてるよ。
0113110
2001/08/02(木) 14:23ID:VO0DTrjQ>>111
各サブルーチン単体では全て期待通りに動作します。
入れ子にしていった場合にのみおかしくなるんです。
>>112
全部出すと相当長いのでちょっとここに出すのは勘弁です。
改めて確認してみたらおかしくなってるところは3重くらいになっているだけでした。
簡略化した形で書けたらあとで貼ります。
ありがとうございます。
0114名無しさん@お腹いっぱい。
2001/08/02(木) 14:28ID:???myのせいでサブルーチンの結果が外に出てないというオチもないよね?
0115110
2001/08/02(木) 14:36ID:VO0DTrjQいや、全部returnで明に結果を返してます。
#そういうことですよね?
0116110
2001/08/02(木) 14:53ID:???関係するサブルーチンは6個ほど、200行くらいになってしまいます。
ここに晒すのはちとためらわれます。。。。
うーむ。。
0117名無しさん@お腹いっぱい。
2001/08/02(木) 15:00ID:???どっかにアップしてURL出せば?
0118名無しさん@お腹いっぱい。
2001/08/02(木) 15:00ID:???推測でしかないが。
引数渡しに失敗している可能性。
0119110
2001/08/02(木) 15:11ID:VCBoAI72例えばですね。
print $hoge;
print &Foo;
これで正常の出力が得られるのですが、これを
&Hoge;
sub Hoge{
print $hoge;
print &Foo;
}
と書くと何も出力されないのです。
こんなのってありなんでしょうか?
&Foo;の中でも複数のサブルーチンを呼んでます。
0120名無しさん@お腹いっぱい。
2001/08/02(木) 15:32ID:???それで挙動がおかしくなるなんて聞いた事無いが。
0121名無しさん@お腹いっぱい。
2001/08/02(木) 16:01ID:IfHUjzJoカタカナの語尾の長音を取るように置換したいのですが
(「コンピューター」→「コンピュータ」)
どのようにしたら良いでしょうか?
0122
2001/08/02(木) 16:02ID:8xHqzTcA0123110
2001/08/02(木) 16:23ID:???だから困っているのでつ。
実は最初の状態でも
内側で呼んでいるサブルーチンの挙動が微妙に変なのだが…
>>122
そうなのかなあ…。
おれ、この間もそれやったんだよな…
そうだとしたらつくづくヴォケ野郎だな、、俺…。
0124名無しさん@お腹いっぱい。
2001/08/02(木) 16:45ID:mjquR9Ogところありますかね。
実際の使用例とか・・・。
PHPとPostgresqlで・・。
0125名無しさん@お腹いっぱい。
2001/08/02(木) 16:57ID:???出来ればサブルーチンを見せて欲しいが。
というかuse strictで引数渡しもちゃんとして書こうよ。
0126ちんちんの長さ12.5cm
2001/08/02(木) 23:08ID:8xHqzTcAuse strict;
my $key;
foreach $key (keys(%ENV)) {
#処理...
}
------
と
---
use strict;
foreach my $key (keys(%ENV)) {
#処理...
}
------
では、体感できない範囲でも速度違いますか?
0127名無しさん@お腹いっぱい。
2001/08/02(木) 23:09ID:SuLp4aV6#!/usr/bin/perl -w
require 'jcode.pl';
$text = "あいうえお";
$code = &jcode::getcode(*text);
print "$code\n";
こういうスクリプトを作って実行すると、以下のようなエラーが出てしまいます。
[madjack@cluster /home/madjack]% ./perltest.pl
Can't locate jcode.pl in @INC (@INC contains:
/usr/lib/perl5/5.00503/ppc-linux /usr/lib/perl5/5.00503
/usr/lib/perl5/site_perl/5.005/ppc-linux
/usr/lib/perl5/site_perl/5.005) at ./perltest.pl line 3.
何がおかしいのでしょうか?
0128名無しさん@お腹いっぱい。
2001/08/02(木) 23:37ID:I9vB6MGkuse strictってどういった使い方をするんですか?
シェルでやってみたら、今まで動いてたスクリプトにエラーチェック(?)
が沢山でてきてしまいました。
125さんの引数渡しって言葉にも混乱してるんです。
すみません、余裕のある方教えて下さい。
0129名無しさん@お腹いっぱい。
2001/08/03(金) 00:14ID:eb2ym/zsしたいですが、何か簡単なスクリプトありませんか?
0130名無しさん@お腹いっぱい。
2001/08/03(金) 00:15ID:eb2ym/zsサブジェクトにWeekly Mag2が入ってるのを削除
0131名無しさん@お腹いっぱい。
2001/08/03(金) 00:44ID:???違うよ。上のほうが速い。
>>127
@INCにjcode.plが無いと言われてる。
エラーメッセージは英語だから読まないというのは止めましょう。
これくらい調べれば読める範囲なので。
で、requireに問題が。
パス無しで指定すると@INCを探しに行くので、
'./jcode.pl'等と実際に置かれている場所を指定しましょう。
0132名無しさん@お腹いっぱい。
2001/08/03(金) 00:48ID:???use strictと宣言することによって、
コンパイル時にレキシカル宣言されていない変数があると、エラーになります。
グローバル変数が使えなくなるというわけで。
引数渡しってのは、&sub_routine($hoge, $fuga);
みたいにサブルーチンに引数を明示的に渡すのです。
これで、サブルーチンには2つの引数しか行かないことになります。
# 日本語的におかしいかもしれないが、ご容赦。
0133128
2001/08/03(金) 01:05ID:ldQ3DQJ.ありがとうございます!
>グローバル変数が使えなくなる
だ・・だからあんなにエラーが出たのか・・・
それでもきちんと動作することがいいスクリプトってことですかね
なんでこんなやっかいなものを皆さんお使いに・・・?
素朴な疑問でした。^ ^;
0134132
2001/08/03(金) 01:37ID:???「自分しかそのスクリプトを見ない」
「どこかでエラーが起こっても、自分はすぐわかる」
「自分は絶対typoしない」
このあたりの条件を兼ね備えているのなら、全部グローバルでもいいのかもね。
私はいつもuse strictしてます。
# ちなみに、my宣言した変数のほうが、グローバルより若干速い。
0135名無しさん@お腹いっぱい。
2001/08/03(金) 01:52ID:???Perl5.6以降ならmy($var)同様の使い方でour($var)が、
それ以前のVersionならuse vars qw/$foo @bar/;とし、
宣言したグローバル変数を使用可能に出来ます。
私も初心者の頃はuse strictなど煩わしいだけ、と思っていましたが、
今では反射的にuse strictを書くようになりました。
慣れるまで色々面倒でしょうが、
黙って使っていると後々幸せになれるはずです。
0137128
2001/08/03(金) 03:04ID:ldQ3DQJ.詳しい説明ありがとうございました!
むぅ。凄く勉強になります。
わたしの持っている本にはこんな事全く書いていなかったので・・
今後少しずつ規模の大きいスクリプトを組んでいくのなら、
今のうちに慣れてきちんと書けるようにした方がいいですよね。
しかし組み方を1から考えなおさなくちゃ難しそうですが(泣)
がんばってみます!
0138名無しさん@お腹いっぱい。
2001/08/03(金) 04:24ID:???丁度良いネタがでたので質問します。
ローカルで
for(my $i=1;$i<100;++$i){
##処理##
}
というプログラムを走らせると$iが0から始まってしまいます。
if文などでも同様です。
サーバにアップロードするときちんと動作するんですが、
やはり使用環境がいけないのでしょうか?
ちなみに
my $i;
for($i=1;$i<100;++$i)
だとローカルでもきちんと1から動いてくれます。
0139名無しさん@お腹いっぱい。
2001/08/03(金) 04:40ID:???for (my $i = 1; $i < 100; ++$i) { print $i,"\n" }
# 1
# 2
# ..
# 99
きちんと出ましたよん。
ちなみに当方ローカル環境、Win2k + Apache1.3.20 + ActivePerl623
0140名無しさん@お腹いっぱい。
2001/08/03(金) 05:22ID:???君の使用環境がわからなくては誰にも判断しようがないと思うが。
ネタですか?
0141うん
2001/08/03(金) 06:21ID:wwW.OFoE0142名無しさん@お腹いっぱい。
2001/08/03(金) 06:28ID:???子供は早く寝なさい(藁
0143103
2001/08/03(金) 07:53ID:aOu/LdE6>>109
レスが遅れてしまいました。お二方のアドバイスが参考になって色々なアプローチ
が有るのが分かりました。
一応、一日格闘した挙句(^^) ファイルAのサイズは比較的小さくファイルBはなるべく
大きなサイズを確保したかったので、perlメモさんで
http://www.din.or.jp/~ohzaki/perl.htm#File_Tail
を頂いて来まして、これでファイルBの最後の一行を得る→
$saisyuuとファイルAのpostdayを比較→一致する行が出現すればそれ以降を破棄
→ファイルBに追記モードで書き込み、と言う感じになりました。
今ローカルでとろとろと動いています(^^)
grepとか回した事が無かったので新鮮でした、色んな考えかたが有るんですね。
ありがとう御座いました。
0144127
2001/08/03(金) 11:50ID:dhEi2JqUありがとうございます。
できました。
0145名無しさん@お腹いっぱい。
2001/08/03(金) 14:24ID:02P8SgLYみ、ブラウザにも表示させるというプログラムを作っています。しかしながらブ
ラウザに表示することはできるのに、それをファイルに書き込むことができませ
ん。スクリプトをどう見直しても分からないので、ここの方に頼ることにしまし
た。
ちなみに『print <<"HERE";』以下を削って実行するとInternal Server Error
となってしまいます。
cgiファイル
#!/usr/bin/perl -w
$file = "log.txt";
read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
open(OUT, ">$file");
print OUT $in;
close OUT;
print <<"HERE";
Content-Type: text/html
<html><body>
$in
</body></html>
HERE
__END__
htmlファイル
<form method="POST" action="cgi-bin/prot3.cgi">
<html><head><title>
テスト
</title></head><body bgcolor="#000000">
<font color="#ffffff">
名前:<input type="text" name="name"><br>
パス: <input type="password" name="pass"><br>
<input type="submit" value="OK"><input type="reset" value="reset">
</font>
</body></html>
0146名無しさん@お腹いっぱい。
2001/08/03(金) 14:50ID:???scriptじゃなくて、実行ユーザーとディレクトリのパーミッションだろ
0148名無しさん@お腹いっぱい。
2001/08/03(金) 15:27ID:???0149名無しさん@お腹いっぱい。
2001/08/03(金) 15:43ID:???0150名無しさん@お腹いっぱい。
2001/08/03(金) 18:53ID:???my($hoge);
$hoge = hoge;
$hoge = hoge;
$hoge = hoge;
と、
my $hoge = hoge;
$hoge = hoge;
$hoge = hoge;
は同じ効果が出ているのでしょうか。
0151145
2001/08/03(金) 22:37ID:???いけました。
まさかパーミッションが絡んでいたとは思いませんでした。
cgiではなく、ファイルをオープンして書き込む部分を
普通のスクリプトとして実行すると666でなくても書き込めるのに・・・。
うーん。
ありがとうございました。
0152名無しさん@お腹いっぱい。
2001/08/04(土) 04:07ID:???cgiだとnobodyとかwwwとかになるんよ。(サーバーの設定によるが)
で、そのログファイルのあるディレクトリの属性w(作成・削除)が
ついてないから新規作成ができなかったのね
ディレクトリを707にすれば作成もできると思うけど
cgiと同じディレクトリはさけたほうがいいよん
0153名無しさん@お腹いっぱい。
2001/08/04(土) 04:35ID:???0154名無しさん@お腹いっぱい。
2001/08/04(土) 04:55ID:eUp0QEZwどこまで知ってれば中級者っていえるのかなー。
上級者の方に聞きたいです。
奥が深すぎて判断つかない。
0155名無しさん@お腹いっぱい。
2001/08/04(土) 05:37ID:vq//mZ8w↑初心者
0156名無しさん@お腹いっぱい。
2001/08/04(土) 06:22ID:???はまった(w < n:
で、ここのスレで質問してる人は初心者だと思ってるんでしょ?
自分も思ってるし。
0157すごく初心者
2001/08/04(土) 07:43ID:???http://corn.2ch.net/test/read.cgi?bbs=php&key=988777987&ls=50
↑で見つけた自動更新cgi(?)なのですが、
どういう処理をしているのか、お暇な方、解説して欲しいのでありまする。
#!/usr/local/bin/perl
%html = ('0802' => 'index.html',
'0803' => 'nya.html',
'0804' => 'zzz.html',
);
@time = localtime();
$html = $html{ sprintf "%02d%02d", $time[4]+1, $time[3] };
printf "Location: $html\n\n";
0158名無しさん@お腹いっぱい。
2001/08/04(土) 07:56ID:DYf6StlIたとえば、
てきとう6なぶん
なんて文があったとき(変な文だけど。。)数字の6を抜き出すにはどうすればよいのでしょうか?
いろいろ試行錯誤しましたがどうしてもできません。お願いします。
0159名無しさん@お腹いっぱい。
2001/08/04(土) 07:57ID:eUp0QEZw0803だったらnya.html
・・・(続く)
っていう定義リストを作っておいて。
@time = localtime(); で現在の日付けを取得
$html = $html{ s・・・のところで、日付けを”0802”とかの数字の並びにする
すると、$html{'0802'}となるので、最初の定義で0802だったらindex.htmlとなる。
最後に、printf "Location: $html\n\n";
で、自動的にindex.htmlにジャンプ。
0160157@すごく初心者
2001/08/04(土) 08:38ID:???どうもありがとうございます。
助かりました。
0161名無しさん@お腹いっぱい。
2001/08/04(土) 08:49ID:eUp0QEZw$meta='てきとうな6文字';
if($meta=~/\d/){print "$& \n";}
数字だったらこれでいけるけど、抜き出したい特定の文字がなんなのかによる。
0162名無しさん@お腹いっぱい。
2001/08/04(土) 09:00ID:???>>158へのレスだよね?
0163158
2001/08/04(土) 09:16ID:DYf6StlIこの場合はどうやればよいのでしょう?
適当な文字56<!--tekito6-->適当な文字65
とかいう文の場合<!--tekito6-->の6(数字)だけを抜き出して、他の変数に代入するには
どうすればよいのでしょうか?161さんの方法ではうまくできませんでした。
お願いします。
0164JAPU
2001/08/04(土) 10:30ID:???0165JAPU
2001/08/04(土) 10:31ID:???if(/<!--tekito(\d)-->/) { $hoe = $1; }
0166158
2001/08/04(土) 12:36ID:DYf6StlI0167名無しさん@お腹いっぱい。
2001/08/04(土) 12:37ID:DQ4jThjYクッキーに配列を保存できますかね?
例えば、
$data=array(
"a" => "hoge1",
"b" => "hoge2"
);
SetCookie("hogehoge", $data);
こんな感じで$data配列を作成しクッキーに保存して、
$c_data=$HTTP_COOKIE_VARS["hogehoge"];
で、データを呼び出して
echo"$c_data[a]";
で出力できるようにしたいのですが、
なかなかうまくいかないです。
0169名無しさん@お腹いっぱい。
2001/08/04(土) 13:44ID:DQ4jThjYPHPでした。スレッド間違い(汗
0170名無しさん@お腹いっぱい。
2001/08/04(土) 16:54ID:PSOASf6IWEBサイトを作りたいのですが技術的なアドバイスをお願いします。
・IDの作り方は?
ユーザーIDとメールアドレスを登録すると自動的にパスワード付の
メールが送られますよね?で、クッキーをオンにしてログインする。
そ〜いった技術です。ヤフーとかもそうですよね。
専門のスレがあれば教えてください。
まったくの初心者の教えて君で本当にすいません。
0172名無しさん@お腹いっぱい。
2001/08/04(土) 18:49ID:8Ac4eVMAスタイルシートは使えませんか?
それと、HTMLファイルで このように入力すると
半角スペースになりますが、CGIファイルの中ではこの
特殊文字をどのように置けば半角スペースになるでしょうか?
0173名無しさん@お腹いっぱい。
2001/08/04(土) 18:58ID:???当然使える。
適当なところに CSS ファイルを置いて、link タグの href 属性で呼び出せば良い。
このようにって、見えん。
&nbsp;って居れてるのかな?
&と;は¥でエスケープしないとならないはず。
0174名無しさん@お腹いっぱい。
2001/08/04(土) 21:41ID:QrWijtIYレスありがとうございます。
早速試してみます。
# 2chでもまともにレス返ってくるんですね。
# うれしいです(^^
0175IY
2001/08/04(土) 21:53ID:???0176153
2001/08/04(土) 23:34ID:???0177名無しさん@お腹いっぱい。
2001/08/05(日) 00:44ID:???モジュール使えばいいでしょ。
0178名無しさん@お腹いっぱい。
2001/08/05(日) 00:53ID:Y9qpbhzk何でしょうか? よくTCPでセッションを張る?という
表現(この表現も正しいかわからないんどえすが)が
ありますが、通信経路を確保するということでしょうか?
0179153
2001/08/05(日) 05:43ID:???0180名無しさん@お腹いっぱい。
2001/08/05(日) 06:05ID:???useすればいいだけですが。
use Compress::Zlib;
アーカイブ作るんならこれか?
0181170
2001/08/05(日) 15:23ID:.gPxxl9o説明の仕方が悪かったようですね。
お聞きしたいのは、‘どうやったらそ〜いうことができますか?’です。
親切な方教えてください。
0182JAPU
2001/08/05(日) 17:45ID:???Compress::Zlib を入れたら、
perldoc Compress::Zlib
しましょう。
0183名無しさん@お腹いっぱい。
2001/08/05(日) 18:33ID:???登録順のIDなら
現在のID取得して変数に突っ込んでそれに+1するだけでOKでは?
パスワードは、適当な文字ランダムで作ってcryptでもすればできるんじゃん?
# 永遠の初心者なのであんまり信用しない方がいいかも
0184コメント無しさん
2001/08/05(日) 19:04ID:???データベース使ってるなら「自動加算型」みたいなのがあるからそれ使う
使ってないなら、最新のIDをファイルに書いといて、登録のたびにそいつを
増やしていく。
0185153
2001/08/06(月) 04:28ID:???ちなみにF2S使ってるんですが、一般の無料サーバでも試せませんよね?
0186名無しさん@お腹いっぱい。
2001/08/06(月) 04:57ID:QmPH6qXg"と'はどう使い分ければ良いんでしょうか?
0187名無しさん@お腹いっぱい。
2001/08/06(月) 05:41ID:???使い分けなくても良いです。
お好みに合わせて使いましょう。
$ENV{HTTP_REFERER}
もありです。
0188名無しさん@お腹いっぱい。
2001/08/06(月) 05:46ID:???f2sは鯖のコマンドでgzipが使えるね、と密かに選択肢を増やしてみたりする。
0189名無しさん@お腹いっぱい。
2001/08/06(月) 11:09ID:???数値演算をそのままSTDINから入力して電卓にする
と言う訳には行かないのでしょうか?
$n = <STDIN>;
print "$n\n";
ってして 1+1 と入力すると、当然 1+1 と表示されるだけです。
変数が展開されて、ついでに中の数式も計算してくれたりは出来ないですよね。
ちゃんと演算子と数値に分けて数値を変数に代入して、内部? で
計算した後表示するしかないのかなぁ、、
0190名無しさん@お腹いっぱい。
2001/08/06(月) 11:38ID:???$_ = <STDIN>;
@_ = split/\+/;
print $_[0] + $_[1];
あとは適当にやってね
0191名無しさん@お腹いっぱい。
2001/08/06(月) 11:39ID:???eval
0192名無しさん@お腹いっぱい。
2001/08/06(月) 11:55ID:???色々作ってみてるのですが、ふと最後の式が入力した式そのまま(あたり前ですが)
なので、perlの演算式をそのまま与えれば3行位で電卓が出来ちゃうかな
と考えてしまったんです。
>>191、
うわ、有難う御座います。4文字で解決です (笑)
馬鹿はevalを使っちゃ駄目と何処かで見たんで、、、
文字列をプログラムとして評価してくれるんですね。
なるほどー、危ない訳も良く分かりました。 感謝です。
0193名無しさん@お腹いっぱい。
2001/08/06(月) 12:15ID:???$n =<STDIN>;
print eval("$n");
何か感動した ^ ^ )
0194名無しさん@お腹いっぱい。
2001/08/06(月) 13:57ID:c9LAtMIM具体的には、webでGETに要した時間を計測したいのですが・・・
0195名無しさん@お腹いっぱい。
2001/08/06(月) 14:20ID:???Time::Hires
http://www.bekknet.ad.jp/~bero/docj/module/06/Time_HiRes.html
0197名無しさん@お腹いっぱい。
2001/08/06(月) 16:42ID:???電卓なら、
$n =~ m/[^\d\+\*\/\.\s]/ && ...;
な感じで、入力値チェックもしたほうがいいかもね。
0198名無しさん@お腹いっぱい。
2001/08/06(月) 16:44ID:???馬鹿はevalを使うなってのもそういうことだろうね。
0199189
2001/08/06(月) 17:22ID:???汚染チェックってやつですね、確か僕が見た所でもそう言ったニュアンス
で書かれてました。
それにしても、、+-だけで演算子と数値は5個まで、とか言うダサイ
電卓をif ($_ =~ /\d/).... とかズラズラ並べて書いてたんで
目から鱗落ちまくりです。
了解しました、cgiでは当分使わないです (笑)
0200名無しさん@お腹いっぱい。
2001/08/06(月) 18:52ID:???$n = <STDIN>;
$n =~ tr{0-9\+\-\*\/\(\)\.}{}cd;
print eval($n);
0201729
2001/08/06(月) 23:51ID:Mx2WAaZU「メモリの浪費」を抑えたいんだけど、いったい具体的にどういうことを
すればいい?そもそも「無駄に食う」ってのはどういう書き方をしたものなの?
初心者でスマソ。
■ このスレッドは過去ログ倉庫に格納されています