[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 09:49 / Filesize : 220 KB / Number-of Response : 791
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 29箱目



1 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 22:35:39 ]
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 pc8.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

www.perl.org/get.html
● 2006/12/21現在の最新版: 5.8.8
● 2006/12/21現在の開発版: 5.9.3

前スレ
Perlについての質問箱 28箱目
pc8.2ch.net/test/read.cgi/tech/1162273941/

リンク集は>>2-3
過去スレは>>4

82 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 01:12:53 ]
>>80
前スレがまだ残っているので、前スレ 694 からの流れを参照。
対策としては、前スレ 703 のリンク先にある方法が無難だと思う。

83 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 01:24:39 ]
>>81さん
シフトJISのときは何も指定せずにいけました。
>>82さん
ありがとうございます。
明日頑張ってみます。

84 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 11:31:19 ]
Activeperl でタイムアウトを指定してホスト名を逆引き(gethostbyaddr)
するプログラムを書いています。タイムアウトした場合にはIPアドレスを
返そうと思います。そこで以下のようなサブルーチンを書いたのですが、
タイムアウトしません。古いActiveperlではalarmがないとの情報があった
のですが、sleep行で確認した所、5.8.8では問題ないようです。
お知恵を拝借頂ければ幸いです。

sub resolv_host {
my ($ip)=@_; my $timeout=2; my $host;
$SIG{ALRM} = sub { die 'TIMED OUT' };
eval {
alarm($timeout);
# ホスト名を逆引きする。
#sleep 5;
$host = gethostbyaddr(pack("C4", split(/\./, $ip)), 2);
alarm(0);
};
alarm(0);
if ( $@ =~ /TIMED OUT/ ){ $host = $ip;}
return ($host);
}

※実行環境は以下の通りです。

Windows XP SP2
Activeperl 5.8.8

85 名前: ◆TWARamEjuA mailto:sage [2006/12/28(木) 13:23:20 BE:2178454-BRZ(6677)]
Net::DNS を利用するのはいかがかしら?

86 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 17:31:04 ]
他所様のサーバの混雑具合を調べるプログラムを書こうとしています。

use IO::Socket;
my $sock = IO::Socket::INET->new(
 PeerAddr => $ip,
 PeerPort => $port,
 Proto => 'tcp',
 Timeout => $TIMEOUT,
);
if ($sock) {
 #接続成功
} else {
 #タイムアウト
}

今現在のコードがこんな感じでして、繋がる繋がらないは分かるのですが、
接続に要する時間を調べたいもののその方法がわかりません。
SOCKETを触るのが今回初めてでして、
そもそもにおいて根本的な過ちを犯してる場合はそちらも併せて、
何かよい方法がありましたら、ご教授いただけると幸いです。

87 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 17:43:14 ]
普通に前後で現在時間を求めて引き算すればいいのでは?

88 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 17:58:48 ]
>>85
ありがとうございました。

sub resolv_host {
use Net::DNS;
my ($ip)=@_; my $timeout=2; my $host;
my $res = Net::DNS::Resolver->new(
tcp_timeout => $timeout, udp_timeout => $timeout
);

my $query = $res->query("$ip");
if ($query) {
foreach my $rr ($query->answer) {
next if $rr->type ne "PTR";
$host=$rr->ptrdname;
}
}
else { $host=$ip; }
return ($host);
}

89 名前:名無しさん@Linuxザウルス mailto:sage [2006/12/28(木) 18:54:03 ]
任意の文字列からhttpで始まる単語(区切りはスペース)を切り取るにはどうしたらいいでしょうか
$str = aaaa bbbb ccc ddd.vv.vv hhhh rrrr ff.ff.mm
という文字列から「ddd.vv.vv」「ff.ff.mm」を切り出す方法です

90 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 18:59:42 ]
@a = grep /^http/, split / /, $str;



91 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 19:05:18 ]
@a = $str =~ /(?:^| )(http.*?)(?: |$)/g;

92 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 19:53:46 ]
>>55
>>56
遅くなりましたが、ありがとうございました。
レポジトリを追加したらだいぶ便利になりました。
パッケージをダウンロードしてきてそのまま追加することもできるようになりました。

93 名前:名無しさん@Linuxザウルス mailto:sage [2006/12/28(木) 20:04:48 ]
>>90,91
サンクス

94 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 20:45:12 ]
「後ろにtringが続かないs」を「z」に置換する方法は次の2つ以外にありますか?

s/s$/z/;
s/s([^t])/z$1/g;
s/st([^r])/zt$1/g;
s/str([^i])/ztr$1/g;
...

s/string/(あり得なさそうな文字列)/g;
s/s/z/g;
s/(あり得なさそうな文字列)/string/g;

95 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 20:48:34 ]
>>94
先読み否定。色々仲間があるので詳細はperlre参照。
s/s(?!tring)/z/g;

96 名前:デフォルトの名無しさん [2006/12/28(木) 21:14:01 ]
任意の精度の数値演算したいんですけど、
どうすればいいでしょうか?


97 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 21:16:21 ]
あ、Math::BigFloat モジュールってのがありました
すいません m(__)m

98 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 21:17:16 ]
>>95
ありがとうございました。

99 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 05:18:57 ]
FTPプロトコルでリモートにファイル転送するスクリプトを作ってるのですが
ローカルとリモートで同名だけどリモートの方がファイルサイズ小さい場合
差分のみ転送にしたいのですがレジュームはどうやればできますでしょうか?
perldoc Net::FTP
でresumeをキーに検索したのですが見当たりませんでした。
よろしくお願いします。

100 名前:99 mailto:sage [2006/12/29(金) 08:20:07 ]
自己レス

FTP resume perlをキーにググッたら下記の情報見つけた
www.garayed.com/perl/215162-net-ftp-resume-file-transfer.html

perldoc Net::FTPでWHEREを見ろって書いてあったので見たら
ダウンロードはgetメソッドの第3引数でオフセット値が指定できるみたいだけど
アップロードはrestartってメソッドでオフセット値をセットしてから
putメソッドで転送すればいいのかな。

しかしputメソッドは第3引数でオフセット値を指定できないんだ???



101 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 08:59:14 ]
どこまできちんと届いているかは、クライアントしか知らないから、
レジュームって普通クライアントから要求するようになってると思うよ。

102 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 09:29:59 ]
>>100
Net::FTPだったらputじゃなくてappendにしないと上書きされちゃうよ

>>101
99は具体的なやり方聞いてるのにそんな回答しても意味ネェだろw

103 名前:デフォルトの名無しさん [2006/12/29(金) 12:03:50 ]
Perllこついての質問箱?

104 名前:デフォルトの名無しさん [2006/12/29(金) 12:08:27 ]
Jcode::CP932
Encode::EUCJPMS
をインストールした後
use Jcode::CP932とするとエラーになってしまいます。

エラー内容
Jcode::CP932 is not an object at (eval 2) line 234
Jcode::AUTOLOAD('Jcode::CP932', 'sjis', 'cp932', 'euc', 'cp51932', 'jis', 'cp50221', 'iso_2022_jp', 'cp50220', ...) called at c:/usr/local/site/lib/Jcode/CP932.pm line 39
main::BEGIN() called at c:/usr/local/site/lib/Jcode/CP932.pm line 0
eval {...} called at c:/usr/local/site/lib/Jcode/CP932.pm line 0

Jcode.pmのAUTOLOADでconfessしてるっぽいんですが、何故動かないのでしょうか?
ちなみにWinXP、ActivePerl 5.8.7.813です

105 名前:SONY [2006/12/29(金) 15:18:48 ]
>>104
仕様です

106 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 16:12:31 ]
GK涙目wwwwwwwwwwwww

107 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 17:03:26 ]
-----------------
これwww.example.com/1.txt とttp://www2.example.com/2.txt これ
-----------------

この上の文を下の文に変換する"スマートな"方法としてはどのようなやり方がありますでしょうか?

-----------------
これ<a href="www.example.com/1.txt">http://www.example.com/1.txt</a> と<a href="www2.example.com/2.txt">ttp://www2.example.com/2.txt</a> これ
-----------------

仕様としましては

(1)http://またはhttps://またはttp://またはttps://で始まる場所をURL先頭とする
(2)半角空白または全角空白の登場、または文の末尾でURLの最後判定をする
(3)一行に複数のhttp://〜やttp://〜があっても全てにAタグを付ける
(4)Aタグをつけること以外の文章の加工をしない

です。
100stepくらい使えば書けないことはないと思うのですが、
スマートな方法は全く思いつきませんorz

108 名前:デフォルトの名無しさん [2006/12/29(金) 17:17:46 ]
なあ、次スレからテンプレートにこれを追加しない?
実は、オレもJperl から Active Perl に移行するとき、
これが解るまでかなり時間がかかった覚えがあるんだけど。

---------------------------------------------------------
#  【Perl 日本語処理の基礎の基礎】
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま(シフトJIS形式の)ソースファイルに保存して下さい。
# 入出力ともシフトJIS形式のファイルまたはDOS窓を想定しています。
# 文字コードの条件が異なる場合には編集が必要です。
# 編集の仕方はご自分で勉強するか、このスレで質問して下さい。
# まず、以下の行を先頭に入れて下さい。
use encoding "cp932";
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
# 次に、あなたが実行したい処理の内容を入れて下さい。
print "やあ!\n";
sleep(1);


109 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 17:24:21 ]
use encodingは弊害がでかすぎるかと…。


110 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 17:26:35 ]
>>107
要するにhttp urlの正規表現が解ればいいわけね。
www.din.or.jp/~ohzaki/perl.htm#httpURL



111 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 17:31:39 ]
>>110
>要するにhttp urlの正規表現が解ればいいわけね。
違うッスorz

(1)(2)だけなら $line =~ /(h?)(ttps?:\/\/[^ |^ ]+)/ で。。。

112 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 17:34:07 ]
>107

use strict;
use warnings;

while (<DATA>) {
s{(h?ttps?://([^\s ]+))}{<a href="$2">$1</a>}g;
print $_;
}

__DATA__
これwww.example.com/1.txt とttp://www2.example.com/2.txt これ

URLのパターンマッチはこれだと甘いけど。

>108
use encodingはきちんと理解して使わないとバグの元にしかならないから反対。

113 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 17:35:35 ]
s{(h?(ttps?://[^\s ]+))}{<a href="h$2">$1</a>}g;
ごめん、間違えた。

114 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 17:37:13 ]
全角空白って文字クラスにそのまま放り込んで大丈夫なんかいな

115 名前:108 mailto:sage [2006/12/29(金) 17:43:36 ]
>>109 >>112
確かにね。
これから始める人なら、ソースはUTF-8に統一して
もらったほうがいいかもね。これでいいかな?
---------------------------------------------------------
#  【Perl 日本語処理の基礎の基礎】
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフトJIS形式のファイルまたはDOS窓を想定しています。
# 文字コードの条件が異なる場合には編集が必要です。
# 編集の仕方はご自分で勉強するか、このスレで質問して下さい。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
# 次に、あなたが実行したい処理の内容を入れて下さい。
print "やあ!\n";
sleep(1);


116 名前:109 mailto:sage [2006/12/29(金) 18:24:42 ]
>>108=115

乙!
WindowsのActivePerl初心者による
似たようなQ&Aの再生産を回避するために
テンプレートを設置しようというのはとてもすばらしいッス!
でも、

 ・テキストモードとバイナリモード
 ・ASCIIとマルチバイトコード
 ・日本でのマルチバイトコードは複数の種類が存在すること
 ・UTF-8以外でのマルチバイトコードの扱い

を理解してないと結局はすぐにつまづくと思う。
でも、これを丁寧に説明してるとテンプレートで紙面が足りないから
結局「http://〜を読んで」、「binmode, Encodeでググると吉」
ってなっちゃうんだよね。。。

次ぎスレに115のテンプレを追加して様子を見るのがいいのかな。


117 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 18:40:57 ]
両方うぜーよwebprogでやれ

118 名前:109 mailto:sage [2006/12/29(金) 21:07:36 ]
>>117 うぜぇのは同意だけど、ウェブはかんけぇねだろバーカw

119 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 21:10:13 ]
レベル的に物凄く関係ありまふ

120 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 21:15:52 ]
くだすれPerlだな



121 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 21:24:28 ]
117のスルー力たんないからスレが荒れたな。
スルー力身につくまでおまえがROMるかwebprog行ってろ

122 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 22:30:03 ]
>>104
Jcode.pmにパッチあててなくね?


123 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 22:46:19 ]
するーかって何だよ
スルメイカかよ

124 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 23:08:30 ]
>>123
どうも「スルーする力(ちから)」という意味みたいだな。
それより、>>117にぴったりのスレがあるぞ。こっちで活躍したらどうだ

【Perl上級者コーナーPart01】
pc8.2ch.net/test/read.cgi/php/1024741312/l50


125 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 23:24:05 ]
ゾーキャスラー力を思い出す流れだが、まぁ通じないだろう。

126 名前:107 mailto:sage [2006/12/30(土) 00:21:53 ]
>>112,113

できました!ありがとうございましたm(_ _)m

127 名前:デフォルトの名無しさん mailto:sage [2006/12/30(土) 09:48:58 ]
www.google.co.jp/search?hl=ja&rlz=1B2GGGL_jaJP177&q=%E3%82%B9%E3%83%AB%E3%83%BC%E3%82%AB&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
スルーカ の検索結果 約 173,000 件中 1 - 10 件目 (0.03 秒)


128 名前:デフォルトの名無しさん mailto:sage [2006/12/30(土) 09:53:09 ]
Срука


129 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 03:05:23 ]
kent-web の sunbbs.cgi を改造しまくって使っています。
記事番号が奇数番号のときと偶数番号のときとで、
交互に違う情報を入れたいと思っているのですが、
perl で偶数と奇数を判別するのってどうやればいいんでしょうか?

130 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 03:07:15 ]
%2



131 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 03:14:40 ]


132 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 03:22:34 ]
>>129
2で割った余りが0なら偶数、1なら奇数と判定すればOK

133 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 07:26:19 ]
1 と and とって1ビット目が 0 か 1 かで判断してもおk

134 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 15:02:29 ]
>>132-133
例文でお願いしますです。orz

135 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 15:12:55 ]
>>134
この程度のこともわからないのに
>kent-web の sunbbs.cgi を改造しまくって使っています。
なのか

136 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 15:22:34 ]
>>134

%2

137 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 18:38:54 ]
巨大な数字ってどういうビット構造なんかな?

$a = 234;

if ( $a & 1) { print "奇数" }
else { print "偶数" }

138 名前:デフォルトの名無しさん [2007/01/02(火) 00:43:33 ]
詳解 正規表現
をかったんだよお年玉で

139 名前:デフォルトの名無しさん [2007/01/03(水) 10:43:45 ]
WINDOWSの鯖でファイルが書き込み可能かどうかを判断するにはどうしたらいいんですか?
WINDOWS鯖の場合だと
if (-w $write_file_path) { print "書き込み可能\n"; }というプログラムがが使えないんです


140 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 11:06:17 ]
>>139 == pc10.2ch.net/test/read.cgi/php/1164519503/635

マルチなので放置しましょう



141 名前:デフォルトの名無しさん [2007/01/03(水) 11:20:32 ]
>>109
>use encodingは弊害がでかすぎるかと…。

kwsk.

 今まで、Jcode->new($hogehoge)->sjis; でちまちま変換していた者としては
 use encoding という技は新味ですyo.

142 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 14:25:47 ]
うるう年かどうかを判別するプログラムが課題で出ているのですが

$y=1900;

if($y %4==0){
print "$y is a leap year.\n";
}elsif(($y %4==0) && ($y %100==0)){
print "$y is a common year.\n";
}elsif(($y %100==0) && ($y %400==0)){
print "$y is a leap year.\n";
}else{
print "$y is a common year.\n";
}

これで1900を$yに入れても、うるう年になってしまいます。
1900をcommon year.にするには、どうすればよいのでしょうか?

143 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 14:35:27 ]
>>142
そういうのは400,100,4の順番に判定するんだよ

144 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 14:45:24 ]
なんてほのぼのする質問だろう

145 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 14:52:27 ]
正直に課題って言ったのも好感w

146 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 15:09:31 ]
>>142
最初の条件 $y %4==0 が、「4で割り切れたら」だから、4で割り切れる数字は、
全てここで引っかかっちゃうよ。

147 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 17:45:10 ]
(´・ω・)ヤサシス

148 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 20:54:19 ]
なんでうるう年は4年に一回なのに400と100も判定にいれるの?

149 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 20:55:00 ]
>>148
それは冗談で言っているんだよな。

150 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 21:13:58 ]
愉快なスレだな



151 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 21:22:42 ]
use DateTime;
my $y = 1900;

if (DateTime->new(year => $y)->is_leap_year) {
  print "$y is a leap year.\n";
} else {
  print "$y is a common year.\n";
}

こうですか? よくわかりません><

152 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 21:25:31 ]
アッー!

153 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 21:27:16 ]
>>151
反則です

154 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 21:31:37 ]
しかし >>142 にはモジュールを使ってはいけないなんて一言も(ry


まあ冗談だろうけど、実際に閏年の判定を書くとしたら >>151 なんだよなぁ・・・。

155 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 21:41:17 ]
>>149
まあ、今後 90年以上は >>148 が正しいわけだが。

156 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 21:41:24 ]
でもデフォルトで入ってたっけ?

157 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 21:50:31 ]
最新のactiveperlには入ってた。

158 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 22:00:08 ]
>>142の心温まる条件式を眺めてると、質問者に>>151を見て欲しくない気持ちになってきた。

159 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 22:20:40 ]
4000年で割り切れる年も入れないとね。

160 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 22:34:26 ]
>>159
どんだけ先の話やねん



161 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 22:51:30 ]
つ 「このように広く普及するのであれば、もっとちゃんとした設計を施すべきだった」

162 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 22:59:36 ]
そんなに長いこと使われないだろうと思って作ったソフトが2000年問題とかの原因になったんだよな
1993年使われ続けることも考慮しとくべきだな

163 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 23:02:58 ]
sub is_leap_year {
    $j = shift() + 660;
    unless ($j % 4) {
        unless (($j - 660) % 100) {
            return 0 unless ((($j - 660) / 100) % 4);
        }
        return 1;
    }
    return 0;
}

どぞ。

164 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 23:04:31 ]
だが、心配のしすぎではないか。

165 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 23:08:42 ]
もうまもなく4000年になろうとしているのに4000で割り切れる年を閏年にすべきか否かは未だ意見の分かれるところだね。
地球の自転が遅くなるからとか言うが。小賢しい。

166 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 23:10:06 ]
そういってy2kが問題になってたんじゃないか。
だいたい時間を1970/01/01 00:00からの32bit整数であらわすのも心配だな。やっぱり64bitはほしいところだ。

167 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 23:20:41 ]
符号付 64ビット整数で紀元からのピコ秒数で数えることにすると紀元の前後300年弱しか表せない。

168 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 23:26:13 ]
perl -e "print scalar(localtime(0xffffffff/2));"
だと「Tue Jan 19 12:14:07 2038」って出るが

perl -e "print scalar(localtime(0xffffffff/2+1));"
だと何も表示されないな

perlは普通にでかい値扱えるから
localtime関数も符号付32bitの上限超えても平気かと思ってたがだめなのか

169 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 00:32:15 ]
じゃあ紀元から符号付で128bitあれば足りるかな。

170 名前: ◆TWARamEjuA mailto:sage [2007/01/04(木) 00:35:18 BE:5336677-BRZ(6700)]
コンパイル時に指定してあげれば、、、@64bits



171 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 09:43:47 ]
ピコ秒って光が30cmしか飛べないんだぜ。
原子時計の精度が1ピコ秒なんだぜ。
どうやって計るんだぜ?

172 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 13:46:03 ]
>>168
表示はされたけど1901年だったわさ

173 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 19:54:07 ]
>>171
10E-16sオーダの時間の計測に成功したっていうニュースなら見た気がするが。

174 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 20:23:27 ]
不確定性原理からいくと、最小の時間単位は何だっけ?

175 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 20:34:09 ]
プランク時間か?

176 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 23:41:55 ]
当方perl初心者です。
全角スペースを半角スペースに置き換えたく、
~s/\xA1\xA1/\x20/g
としています。スペースの置き換え動作自体はするんですが、「ァー」や「ぁ!」などの文字列が文字化けするようになりました。
文字コードはEUCです。

コードを調べてみると「ぁ!」は
A4 A1 A1 AA となっており、全角スペースと誤認してしまうようでした。
どのように解決したら良いのでしょうか、教えてください。

177 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 23:49:59 ]
require 5.8.1;
use encoding 'euc-jp';

178 名前:デフォルトの名無しさん [2007/01/04(木) 23:50:19 ]
www.din.or.jp/~ohzaki/perl.htm

179 名前:176 mailto:sage [2007/01/05(金) 00:12:36 ]
解決しました。ありがとうございます。

180 名前:デフォルトの名無しさん [2007/01/05(金) 13:30:32 ]
さんざんキシュツかもしれませんが、見つからなかったので質問。

Windows XP ActivePerl の環境で、system コマンドで呼び出したプログラムをバック グラウンド で動かしたい。どうすればよい? 例えば、スクリプトはこんな感じ。

---

my $IE = "c:\\Program Files\\Internet Explorer\\IEXPLORE.EXE";
system ($IE, "www.hotmail.com");

---

例えば、上記を test.pl としてセーブし、これを DOS 窓から呼びだすと、こんな感じでとまり、別プロセスとして実行してない。

---
C:\Documents and Settings\takasaks>perl e:/work/0my/scripts/test.pl
_

---

別プロセスで動かしたい、どうれすればよいのでしょうか?



181 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 13:41:21 ]
system(1, ...);

ActivePerl限定だった希ガス

182 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 13:45:21 ]
日本語が得意なフランス人みたいな日本語だな。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<220KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef