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

【Perl】初心者コーナーPart9

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/12/28 23:21ID:SPLRvqQi
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

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

1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。

参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
CGIの質問はこちら【CGIだけど、なんか質問ある?part5】
http://pc.2ch.net/test/read.cgi/php/1009331505/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/

過去ログ、その他の役立ち情報は>>2-10を見よう。
0429名無しさん@お腹いっぱい。02/01/29 01:23ID:qEiE9m0V
"20020129012155"という文字を
$yyyy = "2002";
$mm = "01";
$dd = "29";
$h = "01";
$m = "21";
$s = "55";
こうしたいんですが、スマートなやり方はないでしょうか?
今は
@date = split //,$date;
for (1..4) {$yyyy .= shift @date;} for (1..2) { $mm .= shift @date;}
こんなのを書いてるんですがいかんせん汚い・・・
0430 ◆7P5EE/DI 02/01/29 01:32ID:???
/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/

あんま奇麗じゃないか
0431名無しさん@お腹いっぱい。02/01/29 01:44ID:jKfeCUaQ
>>430
いや、充分綺麗(ワラ
043242902/01/29 02:10ID:mntfCIt4
ああ、なるほど、マッチさせればいいのか・・・
ありがとうございました。
0433名無しさん@お腹いっぱい。02/01/29 03:11ID:???
>>429
unpack ('A4A2A2A2A2A2', $str);
043442502/01/29 03:55ID:???
>>426-428
かなり助かりました。ありがとうございました。
0435名無しさん@お腹いっぱい。02/01/29 06:48ID:yBBFlrS0
再び質問させてください。
htmlファイル中にある&を%44になおすプログラムを作っているのですが
そのファイルの中には&が8個あって1番目の&だけを修正したいのです。
#!/usr/local/bin/perl

while(<stdin>){
s/&/%44/o;
print;
}
上記の状態から修正したいのですが、どうしたらよいでしょうか??
0436340=43502/01/29 07:13ID:yBBFlrS0
私のやり方だと8個の&すべて%24に変わってしまいます。
色々やってみたのですがうまくいきません。
おちから貸してください。
0437・・・02/01/29 07:29ID:???
#!/usr/local/bin/perl

while(<stdin>){
unless ($this_scalar_means_flag == 3.14159265358979){
$this_scalar_means_flag = 3.14159265358979;
s/&/%44/o;
print;
}
}
0438名無しさん@お腹いっぱい。02/01/29 07:35ID:???
一秒たりとも自分では考えたくないんだね  :-)
043934002/01/29 07:43ID:yBBFlrS0
すみません。単純に勉強不足です。
わたしなりには考えたのですがどうしてもうまくいかなくて。。。
0440名無しさん@お腹いっぱい。02/01/29 09:32ID:/LeYWjfo
ところでgunzipさんのサイトってあるの?
以前作ってるとか聞いたことあるんだけど。。
0441名無しさん@お腹いっぱい。02/01/29 10:58ID:???
>>440 スレ違い
0442名無しさん@お腹いっぱい。02/01/29 11:50ID:???
>437 チョト感動。 タノチイ。

0443名無しさん@お腹いっぱい。02/01/29 12:43ID:F543ET41
馬鹿発現なのは100も承知。

$iのiとはなんのi?
あと$1とか……
色々しらべてみても、これ? つーのが。
0444あぼーんNGNG
あぼーん
0445名無しさん@お腹いっぱい。02/01/29 13:00ID:???
>443
どれにレスしているのか引用しなさい。
わからないことが馬鹿なんじゃなくて、他人に自分の意志を
伝えられる文章を書けないのが、馬鹿。
0446名無しさん@お腹いっぱい。02/01/29 13:11ID:???
>443
言ってる意味がよくわからないが、
$1とかに関しては正規表現の際に使う特別な変数。
http://tohoho.wakusei.ne.jp/wwwperl1.htm#Expr

$iのiってのは、プログラムの世界で、一時的なカウントの変数とかに
一般的にi、j、kなどが使われる理由を知りたいって事?
こっちに関しては俺も知らないからなんとも言えないけど。
0447名無しさん@お腹いっぱい。02/01/29 13:44ID:F543ET41
>>445
すんまへん。引用じゃなかったんで。

>>446
>一般的にi、j、kなどが使われる理由を知りたいって事?
そ、そういうことです(苦笑)。
vは valueなのかな、とオボロゲにゃー思うんですが。
0448名無しさん@お腹いっぱい。02/01/29 14:16ID:???
>447
i はイテレータの頭文字じゃないかな?
044944702/01/29 15:00ID:???
www.ruby-lang.org/ja/uguide/uguide09.html
これのことですかね?
0450名無しさん@お腹いっぱい。02/01/29 15:14ID:JIM4MzqN
よろしくお願いします。
open(DAT,"foo.dat");
@foos = sort <DAT>;
close(DAT);
foreach (@foos) {
print;
}
これだとファイルが大きいとメモリを使いすぎるみたいなのでやめようと思って、
下のように書き直したんですが
open(DAT,"foo.dat");
foreach (sort <DAT>) {
print;
}
close(DAT);
この場合も結局、一旦<DAT>を全部読み込んでからsortしてるんでしょうか?
@foosにコピーしないだけマシですか?
0451名無しさん@お腹いっぱい。02/01/29 15:29ID:7v+0Ir29
たいしてかわらん
045245002/01/29 18:58ID:???
そうですか。。。
じゃああまり気にしないことにします。
0453名無しさん@お腹いっぱい。02/01/29 20:12ID:GCzt07oL
perlで、ファイルリストを渡すと、そのファイルの中の
特定文字列を置き換える、という処理をしたいのですが
どうしたらよいのでしょうか?
a.txt
b.txt
c.txt
と渡すと、
a.txtのmonaをgikoに、
b.txtのmonaをgikoに、
c.txtのmonaをgikoに、置き換えるという処理をしたいのです。
045445302/01/29 20:21ID:GCzt07oL
環境はWindowsです。しょぼん。
0455名無しさん@お腹いっぱい。02/01/29 20:27ID:7v+0Ir29
perl -p -i -e 's/moga/giko/g' a.txt b.txt c.txt
045645302/01/29 20:31ID:GCzt07oL
>455さんありがとうございます。最後のa.txt b.txt c.txt部分が
リストになって渡されるのです。
Linuxみたいに`cat list`とかできるとよいのですが…
045745302/01/29 20:35ID:GCzt07oL
cat list | perl …ではだめですよね。なんかだめっぽいです。
やりかた間違ってるんでしょうか?
0458名無しさん@お腹いっぱい。02/01/29 20:39ID:???
>455
Can't do inplace edit without backup.
0459名無しさん@お腹いっぱい。02/01/29 20:44ID:???
>457
Windowsにcat入っているの?
0460名無しさん@お腹いっぱい。02/01/29 20:45ID:7v+0Ir29
cat list | xargs perl -i.bak -p -e 's/giko/mona/g'
だけど。今思ったらWindowsなんだね。
じゃあ、自分でファイルオープンして置換しながらtmpファイルに出力して
renameで。
046145302/01/29 20:58ID:GCzt07oL
catじゃなくてtypeでした>>457 でもどのみちだめっぽいですね。
1行ずつ「exec perl」で呼び出すってのはだめでしょうか?
type list | perl -e "while(<>){exec \"perl -e's///'\"}みたいに
やってるんですが…うううむ
0462名無しさん@お腹いっぱい。02/01/29 21:05ID:???
@files = ('a.txt','b.txt','c.txt');
foreach $file(@files) {
     @DATA = ();
     open(FILE,"$file");
     while (<FILE>) { $_=~ s/mona/giko/g; push (@DATA,$_); } close (FILE);
     open(FILE,">$file");
     print FILE @DATA;
     close (FILE);
}
0463名無しさん@お腹いっぱい。02/01/29 21:23ID:???
perl -p -i.bak -e "BEGIN{chomp(@ARGV=<ARGV>)} s/mona/giko/g" list.txt
ってのはどうかな。何故かlist.txtが破壊されるけど。
0464名無しさん@お腹いっぱい。02/01/29 21:27ID:???
perl -p -i.bak -e "BEGIN{chomp(@ARGV=<>)} s/mona/giko/g" <list.txt
なら破壊されないか。
046545302/01/29 21:28ID:GCzt07oL
なるほろ!いったん配列にいれるのですか。ありがとうございます。
046646202/01/29 21:31ID:9LBydpPt
・・・・・・・
0467名無しさん@お腹いっぱい。02/01/29 21:37ID:???
ワラタ
046846202/01/29 21:41ID:vVENca1F
>467
ひどいや。
046946702/01/29 22:41ID:???
気分を害したならあやまる。スマン。 おれは462の466のコメントがうまいなと思っただけで、
別にけなしているわけではない。ある意味、逆にリスペクトだよ。
047042902/01/30 00:14ID:vUn9vtFi
>>433
ありがとうございました。
unpackって使った事がないので他にも色々試してみます。
047146202/01/30 01:15ID:Dm6D5Jsh
>469
いえいえ、そうでもないです。
ていうか、コピペにでも見られたのでしょうか?マジに手打ちでちこちこ書いたのに
見事な放置っぷりで悲しくなりました。動作確認までしたのに。
どうしてでしょう?
やっぱ、一行目に
#! /usr/local/bin/perl
書かなかったのが敗因でしょうか?(笑)
0472名無しさん@お腹いっぱい。 02/01/30 10:45ID:cYid0m8S
ディレクトリー名を変更するにはどうしたらいいの?
0473名無しさん@お腹いっぱい。02/01/30 12:18ID:jvP4y3Zo
>472
リネームする。
0474名無しさん@お腹いっぱい。02/01/30 13:08ID:???
>>473
スミマセン
perlでって意味です。
0475名無しさん@お腹いっぱい。02/01/30 13:19ID:???
>474
perlでリネームする。
0476名無しさん@お腹いっぱい。02/01/30 13:24ID:???
レンタル鯖 UNIX LINUX
どこも、板違いに思えたので、
こちらで質問させてください。

CGI(Perl)を自作していて、
@Linesに、文字列を埋め込んで
(HTMLの文法に沿った文字列です)
print "@LINES";
この処理を、AのサーバーとBのサーバーで実行した場合、
表示できるAのサーバーと表示できずにエラーとなるBの
サーバーがあります。

これは、物理的なメモリーの不足が問題でしょうか?
Apacheの設定の問題でしょうか?
次回、Cのサーバーをレンタルする場合に、
上記のエラーを回避できるサーバーを選択するには、
何を確認すればいいのかわかりません。。。
どうか教えていただきたいです。

ちなみに、@LINESを出力できないって問題は、
foreach $temp(@LINES){
print $temp;
}
これで、クリアしました。

また、foreachで一行ずつ、書き出す場合と
@LINESで一気に書き出す場合で
サーバーにかける負担と
プログラムの処理にかかる時間についても
ご教授いただければ、幸いです。

よろしくお願いします。
長文スイマセン。。。。
0477名無しさん@お腹いっぱい。02/01/30 13:31ID:jvP4y3Zo
>476
それぞれのサーバの環境、特に導入されているperlのバージョンなどが
わからなければ何とも言いようがないけど、このケースでは全く
Apacheは関係ないし、メモリの実装量も、あまり関係あるとは思えないな。
オーバーフローでも起こしていない限りスワップしてでも実行するだろうし。

perl単体の問題だと思います。
0478名無しさん@お腹いっぱい。02/01/30 13:37ID:jvP4y3Zo
>474
$souce_dir = "test"; # リネームしたいディレクトリ名
$dist_dir = "test1; # リネーム後のディレクトリ名
`mv $souce_dir $dist_dir`;
047947602/01/30 13:37ID:???
>477
ご回答ありがとうございます。
失敗したBのサーバーのPerlのバージョンを
調べてみます。

@LINESで一気に書き出す場合と、
$LINESで、一行ずつ書き出す場合については、
Per単体の問題がない場合は(エラーで落ちない場合)
@LINESの方が高速に動作すると考えても良いでしょうか?
0480名無しさん@お腹いっぱい。02/01/30 13:39ID:jvP4y3Zo
>479
foreachの行程分だけ早いだろうけどね。
微々たる問題だとは思うけど。
048147602/01/30 14:02ID:???
>480
ご回答ありがとうございます。

スワップファイルをHDに書き出す可能性や
サーバーにかける負担を考えると
foreachの方が良いってことですね。

ありがとうございました。
0482名無しさん@お腹いっぱい。02/01/30 14:14ID:jvP4y3Zo
>481
ううん、逆です。
foreachのほうがその繰り返しの行程分
リソース食うって意味です。
でも多分本当に微々たる問題だと思います。
0483日付の計算?02/01/30 14:27ID:5H2ncmbe
たとえば、今日から30日後の年月日を算出すると
いった場合どうしてます?。なんかカレンダーの
テーブルとか自作しなくちゃいけないとか?

随分前から悩んでるんですけど・・。
0484名無しさん@お腹いっぱい。02/01/30 14:33ID:???
>483
localtime(time + 30*24*3600);
0485名無しさん@お腹いっぱい。02/01/30 15:14ID:L4I/gPlU
"@LINES"だと文字列をつくるんでリソース食わないか? あと、print foreach @LINES と print "@LINES"は$"によっては、
結果が違ってくるね

0486日付の計算?02/01/30 16:40ID:5H2ncmbe
>>484
ありがとうございます。
0487名無しさん@お腹いっぱい。02/01/30 17:45ID:5H2ncmbe
[簡単な暗号化]

cryptのような暗号化されたものを、元の状態にもどせない
ものではなくて、

任意のキーを与えて文字列を暗号化して、またそれをその
のキーで元の文字列に復元できる。

なるたけサーバーに付加がかからない。

って何か方法があるだろうか?

もしくはもっと簡単でもいいので、今思いつく方法としては
文字コードに変換して幾つかずらして暗号化するって方法ぐ
らいかな。
0488名無しさん@お腹いっぱい。02/01/31 03:29ID:???
>>487
その辺がお手軽では?
全く強度を気にしないならBASE64辺りでも良いだろうけど。
少し凝るなら文字コードに変換したのをKeyで作った変換テーブルで
変換すると云う手も有る(テーブルを作る都合上処理は大きくなるけど)。
或いは適当な(数学で云う)関数を作ってKeyにより係数を変動させる。
その関数に文字コードから変換した数を代入し値を出し、適当に文字に
変換なんて手もあるかも(この場合計算誤差が出ないようしなけりゃ成らない…)。

ぱっと考えたものだと上記くらいですね。
処理の重さは…知らない(笑)。
暗号強度と暗号化の複雑さは大体天秤の関係で状況に拠るから一概には
どれが良いっては言えないのは当然だから難しい問題かもしれないけど。

ちなみに自分は新たにアルゴリズム考えるのめんどいからCPAN辺りからモジュール
拾ってきて組み込んだなぁ…。
0489名無しさん@お腹いっぱい。02/01/31 10:46ID:???
あれ?このコードが動かないんだけど、もしかしてオレ何か勘違いしてる?

#!/usr/bin/perl
use 5.6.1;
use FreezeThaw 0.41, qw(freeze thaw);
my $a = thaw freeze ['Anon_Array_ref' ];
print ref($a) ? "ok\n" : "not ok\n";
__END__
0490名無しさん@お腹いっぱい。02/01/31 10:47ID:HryKlcft
age忘れ。
動かないっつか「okにならない」ね。
0491名無しさん@お腹いっぱい。02/01/31 10:57ID:???
$a がリファレンスじゃないからじゃねーの?
0492名無しさん@お腹いっぱい。02/01/31 11:06ID:???
>>491 そりゃちょっと教え方が不親切じゃねーの。
>>489 thaw の返値は配列なので、リストコンテキストで受ける必要あり。
049348902/01/31 11:20ID:???
ガーソ…そんな単純なことだったとは…。
>>491 >>492
ありがとう。
0494名無しさん@お腹いっぱい。02/01/31 12:25ID:???
>>492
スマソ。俺はFreezeThawとか言うモジュール知らんから
>>491程度しか分からんかったんだよぅ。
0495名無しさん@お腹いっぱい。02/01/31 12:40ID:cIzQvI9F
>>488
ご返答ありがとうございます。
そうですね、どっかでモジュール拾ってくるのが得策かも。

ちょっと昨日帰りの電車で考えたのは、文字列をランダム
に配置しなおして、その位置情報をキーとして解読する方法。

つまり、文字列「abcde」を「53124」というキーで再配置する。
暗号化された結果は「ecabd」になる。解読はそれをキーの位
置情報で並べ替える。16進数使えば16文字まで可能だし。たぶ
ん簡単そうだ。

まぁ、わかるヒトがみれば3秒で解読できるだろうけど(ワ)、
この辺が簡単でいいかな。
0496perl-5.6.102/02/01 14:19ID:SRe8SKGM
#!/usr/bin/perl -w
use strict;

open(FILE, "filename");
foreach (<FILE>) {
  print "$.: $_";
}
close(FILE);

これを実行したら、filenameの行数が40行だとすると、
$.が全部40になるんですが。
0497名無しさん@お腹いっぱい。02/02/01 14:53ID:???
>>496
while(<FILE>){

foreach はループに入る前に
リストを全部用意する(この場合ファイルを全部読み込む)からね。
0498名無しさん@お腹いっぱい。02/02/02 05:14ID:uZ4d4EH7
ファイルの末にデータを付け足す事はできる。
じゃぁ、データを削る事はできるか?ゴメンねむいんだ。
初心者が生意気にも掲示板作成中。いいやねよう。
おやすみ。
0499名無しさん@お腹いっぱい。02/02/02 08:03ID:Z9fivj2K
htmlソースから、<htmlタグ>ほげ</htmlタグ>を抽出したい(perl)と思ってます。
で、こういう話題(途中改行にも対応とか云々・・・)をあつかったサイトが、有名どころの
どこかにあった気がするのですが・・・
ご存じないですか?
0500名無しさん@お腹いっぱい。02/02/02 09:01ID:fydzz3EG
あのPerlスクリプトを書くのに文字コードはEUCが良いといわれてますが
EUCのメリットって文字化け対策(\回避)がいらないだけですか?
その他にS-jisよりも優れてる部分ってあります?
0501名無しさん@お腹いっぱい。02/02/02 09:18ID:???
>>500
それだけあれば十分だろ。
0502名無しさん@お腹いっぱい。02/02/02 09:22ID:H8DUG7wU
>>499
ここかな?
http://www.din.or.jp/~ohzaki/perl.htm

>>500 も行ってみると役立つと思うよ。
050350002/02/02 14:15ID:???
なるほど。ありがとうございました。
0504名無しさん@お腹いっぱい。02/02/02 15:41ID:???
指定したIPアドレス以外は別ページへ飛ばすにはどうしたらいいですか?
050550402/02/02 19:46ID:???
早く教えろよ
0506名無しさん@お腹いっぱい。02/02/02 19:54ID:???
if(指定したIPアドレス以外){
別ページに飛ばす
}
0507名無しさん@お腹いっぱい。02/02/02 19:55ID:???
>505
お前が常時監視して手動で誘導しろよ。
0508  02/02/03 00:25ID:1JKHBAhE
a.pl
として、
#!/usr/local/bin/perl
print "sine";
と書きました。そして、サーバーにアップして、
chmod 755 a.pl
で、絶対パスで、実行した所
[homepage@sv ~]# /home/homepage/a.pl
/home/homepage/a.pl: Command not found.
と出てきます。
ファイルは、あるのに、コマンドは無い...って
どうしてですか?
0509名無しさん@お腹いっぱい。02/02/03 00:28ID:+IXT+7Wc
>508
/usr/local/bin/perl -V
とかやってみれ。
051050402/02/03 00:29ID:???
>506
プ
早く教えろよ
わかるやついないのか?
051150402/02/03 00:30ID:???
>507 
はぁ・・・・低脳。
いいから早く教えろよ
0512  02/02/03 00:30ID:1JKHBAhE
こんなに、長いのが出てきました。
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
Platform:
osname=linux, osvers=2.2.18-1.6, archname=i386-linux
uname='linux dhcp-115.jp.tlan 2.2.18-1.6 #1 tue feb 13 04:54:12 utc 2001 i686 unknown '
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef useperlio=undef d_sfio=undef
Compiler:
cc='cc', optimize='-O2', gccversion=2.95.2.1 19991024 (release)
cppflags='-Dbool=char -DHAS_BOOL'
ccflags ='-Dbool=char -DHAS_BOOL'
stdchar='char', d_stdstdio=undef, usevfork=false
intsize=4, longsize=4, ptrsize=4, doublesize=8
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
alignbytes=4, usemymalloc=n, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt
libc=, so=so, useshrplib=false, libperl=libperl.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
Built under linux
Compiled at Feb 16 2001 06:49:02
@INC:
/usr/lib/perl5/5.00503/i386-linux
/usr/lib/perl5/5.00503
/usr/lib/perl5/site_perl/5.005/i386-linux
/usr/lib/perl5/site_perl/5.005
0513名無しさん@お腹いっぱい。02/02/03 00:32ID:+IXT+7Wc
>512
そしたら、
perl /home/homepage/a.pl
ってやってみそ。
0514  02/02/03 00:35ID:1JKHBAhE
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
動きました!!!!
何だったのでしょうか?
0515名無しさん@お腹いっぱい。02/02/03 03:56ID:5Ne5ycjd
PerlでファイルアップロードCGIを作りたいのですが、経験がないのでセキュリティなどで不安です。
参考になるフリー配布のスクリプトがあったら教えてください。
0516名無しさん@お腹いっぱい。02/02/03 04:01ID:+IXT+7Wc
>515
http://www.google.co.jp/search?q=%83A%83b%83v%83%8D%81%5B%83h%81@perl%81@CGI&hl=ja&lr=
0517名無しさん@お腹いっぱい。02/02/03 04:06ID:+IXT+7Wc
ERROR:スレッド立てすぎです。。。

ホストntttkyo050192.adsl.ppp.infoweb.ne.jp
WebProg板のみんなで作ろうよ!
名前: 名無しさん@お腹いっぱい。
E-mail: age
内容:
まず、WebProg板謹製アップローダーとか、どうでしょ?
0518名無しさん@お腹いっぱい。02/02/03 04:35ID:1D0LvUGL
>>517
よかったら,このスレ使ってください。
学習用にCGI書くスレです。

【CGI】合同開発室
http://pc.2ch.net/test/read.cgi/php/1001950501/l50
0519あぼーんNGNG
あぼーん
0520名無しさん@お腹いっぱい。02/02/03 12:48ID:???
>>476
おそらく、Perl5の""内での@の解釈が変わったことによるものだと思う。
出力されないといっているほうは、そのまま"@LINE"という文字列が
出力されいないか? もしそうだとしたら、Perlがversionが古い。

で、print "@LINES"; の代用として foreach $temp (@LINES){ print $temp }
で問題ないのなら、素直に print @LINES; としとけ。
0521名無しさん@お腹いっぱい。02/02/03 13:48ID:???
@LINES @Lines どっちだよ。
0522名無しさん@お腹いっぱい。02/02/04 12:16ID:6nIPvsGB
こんにちわ、perlの事で他スレから誘導されてきました
マルチポストですが質問させてください。
以下のスクリプトですが

 #! /usr/bin/perl  # お約束
 # 私のスクリプトそのままです(編集はしてません)
 $TMP = 10 ** 10;  # $TMP に10の10乗を代入
 $X = 10;  # $X に10を代入
 while ($TMP)  # $TMPが0になるまで繰り返し処理
  {$A = --$TMP % $X;  # $TMPの値を-1し、$Xの剰余を$Aに代入
  print "$A $TMP \n";}# 処置した値を画面に表示


上記のスクリプトですが、表示される$Aの値が変化しません
5 999999999
5 999999998
5 999999997 ......

$Xの値が1だと$Aは0で固定
$Xの値が2だと$Aは1で固定
$Xの値が3だと$Aは0で固定
$Xの値が4だと$Aは3で固定
$Xの値が5だと$Aは0で固定
$Xの値が6だと$Aは3で固定
$Xの値が7だと$Aは3で固定
$Xの値が8だと$Aは7で固定
$Xの値が9だと$Aは3で固定

私の知識が正しければ、$TMPの値を$Xで割った余りの数値が表示され
1行ごとに値が変更されると思うのですが。。。

どこか間違っているのでしょうか
識者の皆様、ご回答をお願いします
0523名無しさん@お腹いっぱい。02/02/04 12:40ID:???
>522
10**10じゃなくて10**3から試してミソ。
052452202/02/04 13:18ID:6nIPvsGB
>>523

返答ありがとうございます
早速10**3で試してみたところ、期待通りの動作が確認できました
(10**9まで、動作が確認できました)
どうやら値が大きすぎたようです
でも、$TMPの数値は整数で表示されているのに・・謎だ。

助かりました
0525カリハン02/02/04 15:00ID:uKBk3jL4
FLASH板住人用アップローダを作ったのですが、頻繁に503がでてしまい困っています。
http://www.th-ladybird.co.jp/flash/

回避方法として、ftpでUPするものを作ろうと思うのですが、それって可能でしょうか?
当方UNIXのコマンドほとんどわかりません。

上記の製作可否や、503の回避方法、それらの教材サイト、教本、等ありましたら教えてください。
0526名無しさん@お腹いっぱい。02/02/04 16:14ID:???
503 Service Unavailable なんてあまり見ないな。
ソースを見なきゃ何も言えないね。
0527カリハン02/02/04 16:20ID:uKBk3jL4
普通にpostからうけとって、エンコードして、エラーつけてるだけです。
http://www.th-ladybird.co.jp/flash/upload.txt

0528名無しさん@お腹いっぱい。02/02/04 16:51ID:???
>>525
もう少し症状を詳しく書いてくれると助かるんだが・・・
Unavailableはどんな時に出るの?
適当に解釈すると、ファイルサイズが大きくなるとUL途中で
コネクションが切れると言う事かな
だとしたら、99%サーバサイドの問題なのでどうしようも無いんじゃ
ないかな。
後の1%は説明が面倒なので省略 w

で、FTPならanonyで開放する事になるんだけど、作ると言うか開放して
おしまいなので、何の知識も要らないでしょ
ただ、今時そんな危ない所は誰も使わないと思うよ
最近はExecutableなflashが問題になってたりするし、怖くて見れないよ
■ このスレッドは過去ログ倉庫に格納されています