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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/06/26(月) 00:46:38ID:???
Perlのコーディングで困ってる人のスレです。

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

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

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

過去ログやお勧めサイトは >>2-10
06115912006/07/17(月) 00:59:20ID:???
>>606>>608
ああああ、>>599はシングルバイト限定なんですね・・・
2バイト以上だとやっぱり無理?
0612nobodyさん2006/07/17(月) 01:06:13ID:???
気づいてなかったのかw
0613nobodyさん2006/07/17(月) 01:06:32ID:???
>>611
パターンなんて無限大にあるしなあ。
/.../ これだけ展開するので 255*255*255 だろw
もっと条件言うか何がしたいか言うかしないと 「無理」 って感じ。
06146002006/07/17(月) 01:08:17ID:???
>>610
単に処理のコードが間違ってるだけでした・・・
一応602の流れでやりたいことはできました。
0615nobodyさんNGNG
                  般若波羅蜜多心経

           観自在菩薩行深般若波羅蜜多時照見五
           蘊皆空度一切苦厄舎利子色不異空空不
           異色色即是空空即是色受想行識亦復如
           是舎利子是諸法空相不生不滅不垢不浄
           不増不減是故空中無色無受想行識無眼
           耳鼻舌身意無色聲香味觸法無眼界乃至
           無意識界無無明亦無無明尽乃至無老死
           亦無老死尽無苦集滅道無智亦無得以無
           所得故菩提薩垂依般若波羅蜜多故心無
           罫礙無罫礙故無有恐怖遠離一切顛倒夢
           想究竟涅槃三世諸仏依般若波羅蜜多故
           得阿耨多羅三藐三菩提故知般若波羅蜜
           多是大神咒是大明咒是無上咒是無等等
           咒能除一切苦真実不虚故説般若波羅蜜
           多咒即説咒曰
           羯諦羯諦波羅羯諦波羅僧羯諦菩提薩婆訶

                 般若心経

仏説摩訶般若波羅蜜多心経観自在菩薩行深般若波羅蜜多時照見五蘊皆空度一
切苦厄舎利子色不異空空不異色色即是空空即是色受想行識亦復如是舎利子是
諸法空相不生不滅不垢不浄不増不減是故空中無色無受想行識無眼耳鼻舌身意
無色声香味触法無眼界乃至無意識界無無明亦無無明尽乃至無老死亦無老死尽
無苦集滅道無智亦無得以無所得故菩提薩捶依般若波羅蜜多故心無罫礙無罫礙
故無有恐怖遠離一切顛倒夢想究竟涅槃三世諸仏依般若波羅蜜多故得阿耨多羅
三貌三菩提故知般若波羅蜜多是大神呪是大明呪是無上呪是無等等呪能除一切
苦真実不虚故説般若波羅蜜多呪即説呪曰羯諦羯諦波羅羯諦波羅僧羯諦菩提薩
婆訶般若心経
06166072006/07/17(月) 01:10:00ID:???
>>609
適当にぐぐっただけなので、中身は知らんよ。
ただ、ftp, ssh 系のモジュールは、cpan に結構ある
から、その中に役立つものはあるかも。
0617nobodyさん2006/07/17(月) 01:11:22ID:???
>>591
昔ム板のPerlスレで似たようなお題が出たのを思い出した。

Perlについての質問箱 21箱目
ttp://pc8.2ch.net/test/read.cgi/tech/1134327348/478-
ミラー
ttp://makimo.to/2ch/pc8_tech/1134/1134327348.html#478

で、こんなのが紹介されている。
ttp://search.cpan.org/~bowmanbs/Regexp-Genex-0.06/lib/Regexp/Genex.pm
読んで試してみたらどうも\d等の文字クラスが含まれていると、
ランダムにしか出てこないみたいだけど参考まで。
06186002006/07/17(月) 01:21:32ID:???
>>616
FTPと似たようなことができるみたいなので
よく分からない状態で用いるのは、
セキュリティ上危険な気がしました。
ご忠告ありがとうございました。
0619nobodyさん2006/07/17(月) 05:25:24ID:AcPhLonl
膨大なスクリプト内のいろんなところにexitが置いてあるコードはスパゲッティと考えていいですか?
0620nobodyさん2006/07/17(月) 06:08:57ID:???
(´・ω・`)モキュ?
0621nobodyさん2006/07/17(月) 07:11:29ID:???
>>619
mod_perlでも動かすのかな?
それより、local宣言だらけを心配した方がいいよ。
逆に、my宣言が全然ないとか。
0622nobodyさん2006/07/17(月) 10:19:25ID:???
>>619
exitの飛び先は明確だし、フローがでたらめな訳でもないから、違う。
0623nobodyさん2006/07/17(月) 11:23:26ID:???
>>618
> FTPと似たようなことができるみたいなので
> よく分からない状態で用いるのは、
> セキュリティ上危険な気がしました。

「FTPと似たようなこと」をやろうとしてるんじゃなかったのか。
にほんごってむずかしーね。
0624nobodyさん2006/07/17(月) 12:15:35ID:???
それを実行するには「ftpと似たような事」をしなければ出来ないと
いう事に思い至らなかっただけでしょ。
0625nobodyさん2006/07/17(月) 14:29:03ID:???
>>600
何悩んでるか知らないけど、アプロダ参考にすればいいんじゃないの?
0626nobodyさん2006/07/17(月) 16:03:52ID:???
FTPつかわずに、どうやってアップロードしてるんだろう?
http?
0627nobodyさん2006/07/17(月) 16:31:38ID:???
64**9を計算すると
1.8014398509482e+016
ってなるけど実数表示させるにはどうすりゃいいのん?
0628nobodyさん2006/07/17(月) 16:33:45ID:???
>>627
5.8以上ならuse bigint;
それ以前を考慮するならMath::BigIntを直接使う
0629nobodyさん2006/07/17(月) 16:47:46ID:???
>>628
おおそんなのがあったのか
ありがd
0630nobodyさん2006/07/17(月) 16:51:55ID:???
>>628
スマソ、”Math::BigIntを直接使う”
直接使う?
0631nobodyさん2006/07/17(月) 17:13:50ID:???
>>630
perldoc bigint を見れば分かるけど、
> "bigint" is just a thin wrapper around various modules of the Math::BigInt family.
0632nobodyさん2006/07/17(月) 22:48:16ID:???
>>631
英語読めない
0633nobodyさん2006/07/17(月) 22:53:09ID:???
"bigint"は Math::BigInt 関連のモジュールの単なる小さなラッパーです。
0634nobodyさん2006/07/17(月) 22:57:20ID:???
>632
消防はもう寝な
0635nobodyさん2006/07/17(月) 23:00:55ID:???
>>627
> 1.8014398509482e+016
実数表示してるじゃん。という突っ込みは誰もしないの?
0636nobodyさん2006/07/17(月) 23:01:54ID:???
>>632
お前の次のセリフは 「ラッパーって何?」 だ
0637nobodyさん2006/07/17(月) 23:05:15ID:???
>>636
ラッパーってあのラッパーですか?
0638nobodyさん2006/07/17(月) 23:21:32ID:???
DAYONE
0639nobodyさん2006/07/17(月) 23:36:11ID:???
>>628
5.8.8でuse bigint;したけど64**9は>>627みたいになったぞ?
0640nobodyさん2006/07/17(月) 23:43:04ID:???
>perl -e "printf '%.0f', 64**9"
18014398509481984

こうですか? わかりません><
0641nobodyさん2006/07/17(月) 23:45:16ID:???
printfでもできるのか
0642nobodyさん2006/07/18(火) 00:11:32ID:???
>>639
user@localhost:~$ perl -Mbigint -e 'print 64**9, "\n"'
18014398509481984
user@localhost:~$ perl -v | grep v5
This is perl, v5.8.8 built for i486-linux-gnu-thread-multi
0643nobodyさん2006/07/18(火) 00:24:40ID:DXYFSpfL
教えてください
このような表記は許されるのでしょうか?

1)$TEST[100]に代入されている文字列を表示させたい
2)$TEST[***]<-ここに$A[1]を入れたい

$A[1]=100;
$TEST[100]='TEST';
print $TEST[ $A[1] ];

やはり・・・
$A[1]=100;
$TEST[100]='TEST';
$B=$A[1];
print $TEST[$B];

なのかなあ
0644nobodyさん2006/07/18(火) 00:40:05ID:???
>>643
>print $TEST[ $A[1] ];
全然これで構わない。何もおかしくない。
06456432006/07/18(火) 00:46:23ID:DXYFSpfL
644さん、ありがとうございます。

ソース記述が途中で間違っていたのかも知れなかったです。
この表記がまちがっていると思い込んで2時間位悩んでいましたm(_ _)m
0646nobodyさん2006/07/18(火) 00:52:26ID:???
それより大文字の変数名やめないかw
0647nobodyさん2006/07/18(火) 01:00:06ID:???
BASICを思い出す
0648nobodyさん2006/07/18(火) 02:34:41ID:???
>639
5.8.4 だけど、use bigint で 18014398509481984 って結果でたよ

>643
大文字は定数で使われるのがほとんどなので、変数は小文字でどぞ。
0649nobodyさん2006/07/18(火) 03:41:25ID:???
すいませんアドバイスおねがいします

1.(2/3)*(2/3) の解を 4/9 にするにはどうすればいいですか?
2.次に1.の解を 1/2.25 (分子を1)にするにはどうすればよいですか?
0650nobodyさん2006/07/18(火) 03:50:18ID:RAKThs0C
CGIでクッキーかきました。保存されてるのを確認したのですが、
$ENV{'HTTP_COOKIE'}で何も取得できません!
作成直後ではなくて、ブラウザでリクエストを再送しても取得できません。
どんな原因が考えられましょうか!
0651nobodyさん2006/07/18(火) 04:54:13ID:???
>>649
>>628と同様に、bigrat or Math::BigRatでどうよ。
2はライブラリ任せにしないで、算数的に出力時にdenominatorをnumeratorで割れば?
0652nobodyさん2006/07/18(火) 05:24:58ID:???
>>649
use bigrat;
$a = (2/3)*(7/57);
print $a,"\n";
printf( "1/%f",1/$a);

%fのところはうまくいじらないと思い通りの出力にならないかも?
つーか7/8を1/xと表示したいときxは何になってほしいのか・・・?
0653nobodyさん2006/07/18(火) 05:35:52ID:???
>>650
$ENV{'HTTP_COOKIE'}で何も取得できなくて、
いったい何で”保存されてるのを確認した”のか、教えてください。
パッと思いつく原因としてはクッキーを出してるスクリプト
と受け取ってるスクリプトがあるディレクトリが別になってるとか?
どうやってクッキーを発行して、どうやって受け取ろうとしてるのか、
もっと詳細に報告してください。
06546502006/07/18(火) 09:21:50ID:???
どうもです!確認はクッキーフォルダにクッキーファイルができたことを確認しました。
スクリプトはいっしょで、読み書きするスクリプトをリロードして確認したり、
読みと書きでパラメータを分けて行き来したりしています。
Set-Cookie: session=test;expires=;\n
と書いてます。index.cgi?a=1で書いてindex.cgi?a=2で読んでいます。

宜しくお願いします!
0655nobodyさん2006/07/18(火) 09:28:15ID:???
アドバイスよろしくお願いします。

現在作ってるスクリプトで設定内容などは
$config = {
'test' => "テスト"
}
sub get{
my $pkg = shift;
my $hash = $config;
bless $config, $pkg;
}
my($cfg) = config->get();
print $cfg->{test};
この用にして設定内容を取得してます。
そして今回、$config の中に配列へのリファレンスを含めるようになり

@urls = (ずらずら〜っと);

と URL が書かれた配列へのリファレンスを

$config = {
'urls' => \@urls,
}

として $config へ設定しました。
この際に $cfg で値を取得する書き方としては

@{$cfg->{'urls'}}

で正解なのでしょうか?
もっときれいな書き方や 「こっちのほうが解釈としては正解じゃね?」 みたいな
書き方があれば教えていただければ幸いです。
0656nobodyさん2006/07/18(火) 10:10:41ID:???
>>655
おk
0657nobodyさん2006/07/18(火) 10:19:23ID:???
なんで設定をオブジェクトにしてるのか不明だけど、書き方はおk
0658nobodyさん2006/07/18(火) 10:26:39ID:???
設定したつもりの値が得られるという意味では正しいかもしれないが、
perlのoopの使い方がどうみてもむちゃくちゃなので勉強しなおしてください。
変な癖をつけると後で苦労するよ。
0659nobodyさん2006/07/18(火) 10:32:26ID:???
>>655
OOPをやりたいなら
package Config;
sub get{
my $pkg = shift;
my $hash = shift;
bless $hash, $pkg;
}
.....(いろんなメソッド)
package main;
my $cfg = Config->get({'urls'=>\@urls})

そのままだと、sub getが意味ない

>>658
perl oopのいい入門て見たことない希ガス・・・
0660nobodyさん2006/07/18(火) 10:35:44ID:???
レスありがとです
この書きかたでいこうかと思います


>657
以前このスレだかどこかで KENT の様に設定用変数を数多く
用意するのは綺麗じゃないみたいなことがあったときに、
私が
config.pl
%config=('test'=>2);
sub getconfig{return %config;}

my %config=&getconfig();


ってやってるって書いたら効率悪いって言われたもんで、
ちょっと書き直してたらこうなった次第です。
0661nobodyさん2006/07/18(火) 10:35:45ID:???
その get() が、実は new() な所がちょっと…
0662nobodyさん2006/07/18(火) 10:43:45ID:???
ローカルにハッシュをコピってから参照するほうが、その都度
関数コールするよりもオーバーヘッドは少ないかなって思ったので。

数回から数十回のコールでオーバーヘッドを気にするのは無駄
とは分かってはいたんですがやっぱりスマートな書きかたではなかったですか(-_-;
0663nobodyさん2006/07/18(火) 10:46:41ID:???
やっぱ慣例に沿った(newしてからget)方が、自分以外が読む人のためになりますか?
0664nobodyさん2006/07/18(火) 10:52:28ID:???
>>650
print "content-type: text/html\n";
print "Set-Cookie: session=test\n";
print "\n";
print $ENV{HTTP_COOKIE};
とりあえずうちの環境だと、これを2回読み込むと画面にsession=test
と出るので、それでだめだったら環境がおかしい
0665nobodyさん2006/07/18(火) 12:38:15ID:???
できました!ありがとうございます。
Set-cookie:〜\nContent-type:〜\n\nってなってたのをクッキーとContent-typeの順番を入れ替えただけで
行けたっぽいです。書き込み時がおかしかったようです。
ネットで順番はどっちでもいいようなことを見たし、実際クッキーらしきものが書かれていたのでこれでいいのかと
思ってました。ざっと試しただけですが、これから詳しいことを検証したいと思います。
あと、バグ入りクッキーは本当にクライアント環境によって挙動が違いました。(会社では場合によって読めた)
0666nobodyさん2006/07/18(火) 13:25:28ID:???
Content-type:〜\n\nSet-cookie:〜\n
となっていたに1票
0667nobodyさん2006/07/18(火) 14:04:40ID:???
>>663
ていうか、ただのハッシュとして使うだけなら
なんでオブジェクトにするのか全く不明。
それなら単純にハッシュを宣言して、読み込むだけの方が良い。
0668nobodyさん2006/07/18(火) 14:22:23ID:???
>>665
順番はどうでもいいけど検証するなら空行が何を表すのかってことを検証して下さい。
0669nobodyさん2006/07/18(火) 14:43:02ID:???
空行位置は665に書いたとおりなんで、間違ってないと思うんですよ。
それでも、やはり順序不問ってことは、どっかでケアレスミスしたかもしれません。今夜再検証してみます。
0670nobodyさん2006/07/18(火) 15:15:34ID:???
>667
外部ファイルにhashで設定を書いてrequireすると、
同じ内容の変数が2つ存在することになって無駄があるので
オブジェクトにした次第です。
0671nobodyさん2006/07/18(火) 15:24:45ID:???
>>670
その考え方が間違ってる。そんなことでオブジェクトにしちゃいけない。
だったらまだ、>>660 にある最初の書き方の方が、考えがマトモ。

同じ内容の変数が2つになるのが嫌なら、
外部ファイルの変数を別のハッシュに代入せずに、そのまま使えば良いだけの事。
0672nobodyさん2006/07/18(火) 15:28:41ID:???
ifで(unlessを使わずに)「特定の文字列にマッチしなければ」という条件式を
書くにはどうしたら良いんでしょうか?
単純に
if($data !=~ /MOJI/)
という書き方では反映されないみたいなんですが。
0673nobodyさん2006/07/18(火) 15:31:12ID:???
!~
0674nobodyさん2006/07/18(火) 15:31:47ID:S5V5gxsh
比較の質問なんですが
「○○かつ△△」を文字列で扱う方法はやはりないのでしょうか?

$type1 = 'BAKA';
$type2 = 'KASU';
if ( $type1 eq 'BAKA' and $type2 eq 'KASU')

みたいにするには数値をそれぞれ代入してからやるべきなのでしょうか?
0675nobodyさん2006/07/18(火) 15:34:06ID:???
>>670
リファレンスを使えば二重にならない。
0676nobodyさん2006/07/18(火) 15:38:45ID:???
質問の意味が分からない
06776722006/07/18(火) 15:39:57ID:???
>>673
if($data =!~ /MOJI/)
と書いてみましたがエラーが出て動かないです。
どこが間違っているんでしょうか?

>>674
単純に
if ( ( $type1 eq 'BAKA' ) && ( $type2 eq 'KASU' ) )
で良いじゃないでしょうか。
0678nobodyさん2006/07/18(火) 15:42:18ID:???
if ($data !~ /MOJI/)
06796722006/07/18(火) 15:46:52ID:???
>>678
できました。
=とか!とかはあくまでチルダに対して付いてたんですね。
ありがとうございました。
0680nobodyさん2006/07/18(火) 15:47:11ID:S5V5gxsh
>>676
数値比較では && や and を使えますが
文字列でも同じように && や and を使っていいのかどうかということです
0681nobodyさん2006/07/18(火) 15:47:29ID:???
Perlの本て、読まないのかな。
最近の質問見てるとネットだけで独学の人が多いような気がする。
0682nobodyさん2006/07/18(火) 15:48:55ID:???
>>680
and や && は比較の内容と関係ない。
だから当然使って良い。
0683nobodyさん2006/07/18(火) 15:49:31ID:S5V5gxsh
>>677
どうもです

>>682
ありがとうございます
0684nobodyさん2006/07/18(火) 16:01:37ID:???
perldocの存在を知らない気がする
0685nobodyさん2006/07/18(火) 17:42:03ID:???
>675
その都度デリファレンスするのって、見た目が余り綺麗じゃないからその案は
以前考えてるときに却下しました。
0686nobodyさん2006/07/18(火) 17:51:43ID:???
>>685
誰がデリファレンスしろと…。

>>675 が言ってるのは、
外部ファイルで %config を定義して、return ¥%config; でリファレンスを返せば
同じハッシュが2つにならないということでしょう。
使う時は $cfg->{'hoge'} みたいなので良いんだし。デリファレンス要らない。
0687nobodyさん2006/07/18(火) 18:24:24ID:???
OOP考えるならさあ、、
「とりあえず外部PL(PM)ファイルに設定をずらずらして require」 じゃなくて、
普通の(TXT)ファイルとかにCSVとかTSVみたいな感じで設定を書いて、
my $cfg1 = Config->new('config1.txt');
my $cfg2 = Config->new('config2.txt');
みたいな感じで設定取ってくるもんじゃないの?
>>655みたいに値を得たいときは my @url = $cfg1->get('url'); とかしてさ。
そうじゃないならOOPの意味もないな、って思うんだけどw
0688nobodyさん2006/07/18(火) 18:29:25ID:???
AppConfigかConfig::*の中から適当なの見繕って使うのが普通じゃないかと。
0689nobodyさん2006/07/18(火) 18:54:51ID:9xyhckKL
訪問者に強制的に話しかけるウェブサイト作ったのですが、
ページの更新をムダに頻繁にするのはいやなので30秒設定にしています。
要はチャットなのですが。

試験的に稼動してるのですが、相手にメッセージが届く前に相手が帰ってしまうようです。
そこで思ったのですが、こちらが書き込みをしたら即座に相手のブラウザに更新命令を
出すといったようなことはPerlCGIでは実現できませんでしょうか?

そんなことできたら怖すぎるかな?とも思いましたがやはりそんな危ない技術は正攻法では不可能ですかね?
ハッキング状態になっちゃいます?

アドバイスお願いします。
0690nobodyさん2006/07/18(火) 19:08:59ID:???
>>689
そういうクライアントサイドなのはJavaScript(Ajax)とかでやるんじゃねーかなー。
0691nobodyさん2006/07/18(火) 19:18:16ID:???
>>689
>こちらが書き込みをしたら即座に相手のブラウザに更新命令を
>出すといったようなことはPerlCGIでは実現できませんでしょうか?
できるわけないだろ。
そんな凶悪なセキュリティホールが空いてたらすぐに緊急のパッチが出るわ。

要は、最初のアクセスのときだけ3秒ぐらいでリロードして
その自動メッセージとやらを表示させて、
2回目以降は通常の30秒リロードにすれば良いんじゃないの?
0692nobodyさん2006/07/18(火) 19:45:12ID:???
コネクション切らずにつなぎっぱなしで垂れ流せばよい。
共有サーバでやるとヌッ殺される。
0693nobodyさん2006/07/18(火) 19:45:35ID:???
>686
あぁなるほど。
ファイルの最後で1;ってやるところで返すのはやらないほうがいいですか?
(出来るかどうか知らないけど)

>687
iniファイルのような設定ファイルは記述ミスに対するコーディングが生じるので考えてませんでした


勉強も兼ねて初めてパッケージ(もどき)を考えてみたけど、使いどころとか、使い方とか難しいですね
0694nobodyさん2006/07/18(火) 19:49:14ID:???
>>687
つーか値を得たいときは$self->{'config'}->{'value'}
もしくは$selfをconfig hashそのものにして、$self->{'value'}。
そもそも関数で値を”とってくる”という発想自体が間違ってる。(OOPなら
0695nobodyさん2006/07/18(火) 19:52:09ID:qN74jZ6A
my $count = $db->prepare("select count(*) from hoge where hogehoge = 1");
print $count;
-------------------------------
↑のような構文を打ったところ
(SQLで返される数字が出力されるようにしたつもり)
print $countが↓のように出力されてしまいます。
-------------------------------
DBI::st=HASH(1234abcd)
-------------------------------
正しく数字が返されるようにするにはどのようにしたらよいでしょうか?
0696nobodyさん2006/07/18(火) 19:55:35ID:???
まず中学に入学して prepare の意味を調べられるようになれ。
0697nobodyさん2006/07/18(火) 19:59:59ID:???
>>694
use CGI; で $Q->param('hoge') とかやるのは間違ってるってことニカ?
0698nobodyさん2006/07/18(火) 20:04:32ID:???
気付いても、生暖かく見守るのが大人の対応だ
0699nobodyさん2006/07/18(火) 20:04:40ID:???
>>697
それは”とってくる”じゃ無いと言いたいのだと思ふ。
関数じゃなくてメソッドだし。
0700nobodyさん2006/07/18(火) 20:06:25ID:???
関数とメソッドの違いも答えられないくせに偉そうだにゅ
0701nobodyさん2006/07/18(火) 20:10:22ID:???
googleで調べるの禁止な
07026952006/07/18(火) 20:11:15ID:qN74jZ6A
すいません抜けがありました。もう一度投稿ですみません。。


my $count = $db->prepare("select count(*) from hoge where hogehoge = 1");
$count->execute;
print $count;
-------------------------------
↑のような構文を打ったところ
(SQLで返される数字が出力されるようにしたつもり)
print $countが↓のように出力されてしまいます。
-------------------------------
DBI::st=HASH(1234abcd)
-------------------------------
正しく数字が返されるようにするにはどのようにしたらよいでしょうか?
0703nobodyさん2006/07/18(火) 20:13:37ID:???
DBIモジュールの説明読んで。
0704nobodyさん2006/07/18(火) 20:15:42ID:???
fetchしろ。fetchナントカってのはいっぱいあるからどれを使うかはお好みで。

07056952006/07/18(火) 20:32:22ID:qN74jZ6A
>>703-704
ありがとう
0706nobodyさん2006/07/19(水) 00:26:20ID:aJ2dkknB

$a = 31536001
に対して年$year 月$manth 日$day 時$hour 分$minute 秒$second
を求めるには地道に

$year = $a - 3153600;

とした方がいいのでしょうか?
それとももっと簡単な方法がありますか?
よろしくお願いします
0707nobodyさん2006/07/19(水) 00:32:18ID:???
誰か翻訳してくれw
07087062006/07/19(水) 00:35:08ID:aJ2dkknB
>>707
あああ、すいません
ミスってました

31536001は31536001秒ということです
秒、(繰り上がるならそれぞれ)分、時間、日、月、年を求める方法があるのかどうかです

0709nobodyさん2006/07/19(水) 00:38:52ID:???
うるう年じゃない年の一年の秒数が31536000、だな

>>708
日数までは良いとしてだ。
一月の長さは同じじゃないわけだが、そこのところどうやって計算する気よ
0710nobodyさん2006/07/19(水) 00:41:06ID:???
ああ、わかったw
$a = 31536000; # ← 3600*24*365
で、$a = 86401 なら 暦とか関係なく 1日と1秒 って経過時間だしたいってことね。

じゃあ単に
my @dates = gmtime($a);
とかやればいいんじゃねのw
07117062006/07/19(水) 01:03:53ID:aJ2dkknB
>>709
年は365、日は30にするつもりです

>>710
そうです
ちょっと
my @dates = gmtime($a);
やってみます
■ このスレッドは過去ログ倉庫に格納されています