09/04/02 19:03:36
>>468
This is perl, v5.8.9 built for i386-freebsd-64int
だと以下のようになるが。
32264 3 48037 119s 0s
32265 4 43101 119s 0s
32266 2 38633 119s 0s
32267 2 31075 119s 0s
32268 0 8513 119s 0s
32269 1 49402 119s 0s
32270 1 27972 119s 0s
32271 0 32400 119s 0s
32272 3 28045 119s 0s
32273 0 35972 119s 0s
32274 0 22672 119s 0s
32275 1 44140 119s 0s
32276 2 32443 119s 0s
32277 2 41433 119s 0s
32278 2 33357 119s 0s
32279 0 6772 119s 0s
32280 2 26341 119s 0s
472:468
09/04/02 19:03:40
当初の目的は下のコードでさくっとできるようになりました。
>>468のスキップ多発については原因が分かりません。
@numbers=();
for my $i (1..50000){
push(@numbers,$i);
}
for my $i (0..$#numbers){
$rand = int(rand(@numbers));
$tmp = $numbers[$i];
$numbers[$i] = $numbers[$rand];
$numbers[$rand]=$tmp;
}
for my $i (0..$#numbers){
print "$i:$numbers[$i]\n";
}
473:デフォルトの名無しさん
09/04/02 19:10:27
>>468
所詮線型合同法だろ? 偏りあるしそんなもんよ。
List::Utils::shuffle(1..50000) じゃダメなのか。
474:デフォルトの名無しさん
09/04/02 19:11:18
>>472
それは偏りが出るまずいアルゴリズム。
っ「Fisher-Yates shuffle」
475:デフォルトの名無しさん
09/04/02 19:21:05
>>468-469
その環境での乱数の有効ビット数が15だから。
rand(1)が返す数の種類が32768通りしか存在しないので、3万時点のskip確率は90%以上。
乱数のビット数は use Config して $Config{randbits} で確認できる。
476:デフォルトの名無しさん
09/04/02 19:55:54
>>467でも結果は同じ
aaa is directory.
aaa― is directory.
aaa―2 is directory.
aaa2― is file.
テスト結果で書くと
aaa: -f, -d1, -e1
aaa―: -f, -d1, -e1
aaa―2: -f, -d1, -e1
aaa2―: -f, -d, -e
こんなん
aaa―2みたいに途中に5cを含む場合はエスケープとか無しに普通に扱える
aaa―が何で通るのかが謎だけど、
aaa2―みたいなのは、aaa2―/hoge みたいにフォルダ内のファイルを
直接指定してもエラーになる
結論としては、そんなフォルダ名を使うな、ということになる
ファイル名もNGなんだけど、大抵は拡張子があるので、問題になることがない
477:468
09/04/02 20:08:30
>>471,473,474
乱数の有効ビット数というのが原因のようですね。
手持ちのWindowsだと15でしたがLinuxでは48でした。
Fisher-Yates法では偏りが出る様なので>>473の方法でやってみようとおもいます。
レスありがとうございました。
478:468
09/04/02 20:10:03
>>475さんもありがとうございました。
479:デフォルトの名無しさん
09/04/02 20:13:48
>>476
aaa― が通るのは aaa があるから。
aaa2―/hogeの失敗は、何らかの単純ミスの可能性が高い。
>>446
>どうやって回避してるの?
@dirs=split /[\r\n]+/,`dir /s/b/aD`; とか?
再帰? 再帰って何だ?
ファイルテスト演算子内から呼ばれるwin32_stat()内で終端の\を加工してるのが直接の原因。
なんでも FindFirstFile() and stat() are buggy with a trailing backslash, なので、
so change it to a forward slash (~5.8.7.815)とか、
remove additional trailing slashes (5.8.8.816~)という対策をしてるとの事。
-dを使う限りstatを避けることは出来ないが、There's More Than One Way To Do Itという
決まり文句を持ち出すまでもなく回避するには数多くの方法がある。
1.くどいけど @dirs=split /[\r\n]+/,`dir /b/aD`;
2.Win32::FileにGetAttributesがあるのでソレを使う
3.Win32API::FileやWin32::APIで好き勝手にやりたい放題?
4.面倒だから -e "${fn}/." で代用 (chdir/opendirにも使える/-fはopenで代用)
X. グロブ(<*>)を使うと、statに通らないファイル名は入ってこない
正しい対応.バグレポートを出し、余裕があればパッチも投稿する。
例えば、WideChar化してから終端加工して再度MultiByteに戻すとか。
楽な対応.そんなフォルダ名は使わない、見つけたら即リネーム
480:デフォルトの名無しさん
09/04/02 20:47:30
>>467 の
> if (-d encode('cp932',$file)) {print "$file is directory.\n"}
がおかしいんじゃないの?
エンコードするから、sjis の2バイト目の0x5Cが復活する。
if (-d $file) {print "$file is directory.\n"}
でうまくいくと思うが。
481:デフォルトの名無しさん
09/04/02 21:18:47
>>479
詳しく㌧
-d 以外にテストの方法があったとしても、
次にそこに対してopendirすると失敗するので、結局目的は果たせない
例えば、ディレクトリ構造のツリーを表示するとかそんなプログラム
5.10.0 とか 5.8.9.825 では直っているかしら
482:PHPの神
09/04/02 22:15:14
>>462
お前は何か勘違いしているようだな、、、
PHPでは
「発音できないパスワードを生成する」
とか、そういうことができるんだぞ
483:デフォルトの名無しさん
09/04/03 01:52:56
ここって教えてくれる人がたくさんいていいな・・・
VBAスレなんて、、、
484:デフォルトの名無しさん
09/04/03 12:19:33
→
485:デフォルトの名無しさん
09/04/03 12:45:06
VBAを使う人というのは、VBAを使っても
嘔吐感、嫌悪感が生じない人なんだろ?
なら、数が限られてくるわな。
486:デフォルトの名無しさん
09/04/04 15:09:01
>>481
最初に479に間違いがあったので訂正。
誤 4.面倒だから -e "${fn}/." で代用 (chdir/opendirにも使える/-fはopenで代用)
正 4.面倒だから -e "${fn}/./" で代用 (chdir/opendirにも使える. -fはopenで代用)
末尾への/.追加だけだと5.8.8以降ではchdirには使えなかった。
chdirの確認を常用してる5.8.7.813でしかやってなかったという単純ミス
>次にそこに対してopendirすると失敗するので、結局目的は果たせない
>例えば、ディレクトリ構造のツリーを表示するとかそんなプログラム
そんなに難しいことをやっているの? ツリー表示程度なら
sub tree {
# my(@dir,$ent) = map { chomp;$_ } `dir "$_[0]" /b/aD`; # ,`dir "$_[0]" /b/aDH`;
#↓は↑の手抜き変形でほぼ同内容
my(@dir,$ent) = eval { opendir my $h,"$_[0]/.";grep {-d "$_[0]/$_/." and !/^\.+$/} readdir $h };
while(defined($ent = shift @dir)) {
print "$_[1]+${ent}\n";
&tree("$_[0]/${ent}",@dir ? $_[1].'| ' : $_[1].' ');
}
}
&tree('.');
みたいにopendir無しでも書ける気がするし、opendirも成功しそうな気がするんだが。
opendirに関しては最悪DLL違いでの挙動差もありえなくは無いけどね。
487:デフォルトの名無しさん
09/04/04 15:59:30
opendirはできなくても、中にあるファイルをopenは出来る
だからうまいことすれば大抵のソフトは回避できると思うけど、
そんな僅かなリスクの為に常時opendir禁止というのは辛すぎる
488:デフォルトの名無しさん
09/04/04 16:59:22
>>486
>例えば、ディレクトリ構造のツリーを表示するとかそんなプログラム
長いよ。長すぎるよ。そんなん書いたら保守性が悪いだろ。
いいかい?
system("tree");
ほら、たった一行でできただろ。
489:デフォルトの名無しさん
09/04/04 20:53:37
treeコマンドのあるOSだけじゃないし
490:デフォルトの名無しさん
09/04/04 22:48:39
5C が問題になるOSには、たいてい tree コマンドはあるよ。
491:デフォルトの名無しさん
09/04/05 00:27:34
Perlを使う人というのは、Perlを使っても
嘔吐感、嫌悪感が生じない人なんだろ?
なら、数が限られてくるわな。
492:デフォルトの名無しさん
09/04/05 01:25:46
優越感と陶酔感が生じますよ
493:デフォルトの名無しさん
09/04/05 01:30:46
>>492
ぷw
494:デフォルトの名無しさん
09/04/05 02:26:05
>>432
田植えならしかるべきとこでやっていただきたい
あーゲシュタルト崩壊してきた
495:デフォルトの名無しさん
09/04/05 11:24:11
Perl使ってるひとはいつもこんな主張
"他の言語は使えないから、Perlが一番いい"
Perlの良いことを一言も言えない
496:デフォルトの名無しさん
09/04/05 11:51:14
ポテンシャルを語るのに飽きたひと
いわゆるYAGNI
みたいな?
497:デフォルトの名無しさん
09/04/05 18:57:42
良い点なんて他との比較でしか論じれないからな
とりあえずperlが使えれば、好奇心以外に他の言語に乗り換える動機が発生しにくいので、
perlしか使わない人がおおい
498:デフォルトの名無しさん
09/04/05 22:22:18
Perlの世界って閉じて荘
499:デフォルトの名無しさん
09/04/06 00:35:28
そもそもどんな人なら「Perl使ってるひと」を名乗ってもいいのだろうか。
もしかすると>495に答えを授けた自称「Perl使ってるひと」も
>497の「perlしか使わない人」も「Perl使ってるひと」ではないかもしれない。
500:デフォルトの名無しさん
09/04/06 19:11:10
if(($str =~ /hoge\((.*?)\)/) && ($str =~ /foo\((.*?)\)/)){
$str =~ /hoge\((.*?)\)/;
$hoge=$1;
$str =~ /foo\((.*?)\)/;
$foo=$1;
}
これをもっと綺麗に書くことってできませんか?できたら教えてください。
hogeとfooの位置が前後する事があるのでこういう書き方にしました。
・やりたいこと
文中のhoge(あいうえお)とfoo(かきくけこ)から
$hoge="あいうえお"; $foo="かきくけこ";という変数を生成したい。
501:デフォルトの名無しさん
09/04/06 20:56:00
中のブロックだけでいいのでは(1行目要らないのでは)
502:デフォルトの名無しさん
09/04/06 21:18:19
>>500
例えばこんな感じ?
@pair = $str =~ /((?:hoge\([^)]*)|(?:huga\([^)]*))/g;
foreach my $pair(@pairs){
my($name, $value) = $split '\(', $pair;
$name = 'hoge' ? $hoge = $value
: $name = 'huga' ? $huga = $value
: 1
;
}
503:デフォルトの名無しさん
09/04/06 21:22:23
×$name =
○$name eq
確かに>>501の通り
504:un001.ecc.u-tokyo.ac.jp
09/04/06 21:48:05
ハッシュを使うのが手っ取り早いと思う。$foo, $hoge を残したいなら
my $foo, $hoge;
my %refhash = ( foo => \$foo, hoge => \$hoge );
...行ごとのループとか
if (/(hoge|foo)\((.*?)\).*(hoge|foo)\((.*?)\)/) {
$r1 = $refhash{$1};
$$r1 = $2;
$r2 = $refhash{$3};
$$r2 = $4;
... $foo, $hogeを使った処理
}
505:デフォルトの名無しさん
09/04/06 22:39:27
ハッシュの例
my %hash = $str =~ /(hoge|foo)\((.*?)\)/g ;
my $hoge = $hash{hoge} ;
my $foo = $hash{foo} ;
>1行目要らないのでは
の例
my ($hoge) = $str =~ /hoge\((.*?)\)/ ;
my ($foo )= $str =~ /foo\((.*?)\)/ ;
506:デフォルトの名無しさん
09/04/06 22:54:29
変態の例
my $hoge ;
my $foo ;
1 while $str =~ /(hoge|foo)\((.*?)\)(?{ ($1 eq 'hoge' ? $hoge : $foo )= $2 })/g ;
507:デフォルトの名無しさん
09/04/06 23:40:54
Singletonパターンってこれでいい?
package Foo;
my $singleton;
sub new {
my $class = shift;
return $singleton if $singleton;
return $singleton = bless {}, ref $class || $class;
}
1;
508:500
09/04/06 23:52:45
# 最初はこうだったんですが
if(($str =~ /hoge\((.*?)\).*foo\((.*?)\)/)){
$hoge=$1;
$foo=$2;
}
# 位置関係が前後した場合に対応できない事が分かったので書き直して以下に
if(($str =~ /hoge\((.*?)\)/) && ($str =~ /foo\((.*?)\)/)){
$str =~ /hoge\((.*?)\)/;
$hoge=$1;
$str =~ /foo\((.*?)\)/;
$foo=$1;
}
これを前者と比べるとゴテゴテしてしまったなというところでした。
>1行目のif文
万が一hogeが含まれfooが含まれていないという場合
if文が無いとhogeの値がfooの値にも入ってしまい、それはマズいので入れてます。
ワンライナーな方のコードも読んでみました。$hoge = ($1 eq 'hoge' ? true : false)みたいな用法は知っていましたが、
この方法を右辺にも使えるんですね。自分には新しいです。(?{})というのは知りませんでした。
見た感じ正規表現の中で処理を実行する際に使うんでしょうが調べてみてもうまくヒットさせられませんでした。
もうちょっと知りたいのでキーワードとかあれば教えてください。
$hoge = ($str =~ 正規表現)での代入方法。これ知りませんでした。
あと右辺がリストで左辺もリストだと配列、右辺がリストで左辺がハッシュだと
キー、値、キー、値というハッシュになるというのも便利ですね。
この用法自体は知っていましたが、実際こういう使い方ができるんだなあと。
>>505さんのコードがわかりやすかったのでこれ使っていこうと思います。
>>501,502,503,504,505,506さんレスどうもありがとうございました。色々勉強になりました。
509:デフォルトの名無しさん
09/04/07 00:08:26
URLリンク(perldoc.jp)
A bit of magic: executing Perl code in a regular expression
の項だけど、、、
>この機能は実験的であると考えられており、予告なしに 変更されるかもしれないことを
>警告しておきます。
なので勉強する必要は無いと思うよ…
510:デフォルトの名無しさん
09/04/07 00:24:03
実験的とはいいつつ5.6.0のころからずっとある機能だから勉強しといてもいいだろ
とはいえそう使うことのあるものとも思えんが
511:デフォルトの名無しさん
09/04/07 00:33:22
>>507
>ref $class
これ真になる事無いだろ。
インスタンスメソッドとしても機能させたいんだったら
もう一工夫必要じゃね?
512:デフォルトの名無しさん
09/04/07 00:38:31
あー、そっか。インスタンスからnew呼んだら return $singleton if $singleton; で抜けるんだな
クラスからでもインスタンスからでも同じもの返して欲しいからそこだけ削除して
sub new {
my $class = shift;
return $singleton if $singleton;
return $singleton = bless {}, $class;
}
こうするだけでいいのか?
513:デフォルトの名無しさん
09/04/07 00:55:28
ああ、一工夫もへったくれもなかったねw
スマン。
514:デフォルトの名無しさん
09/04/07 20:49:43
>>506
ど変態の例
sub hoge { $hoge = shift }
sub foo { $foo = shift }
$str =~ s/((?:hoge|foo)\(.*?\))/$1/eeg;
515:デフォルトの名無しさん
09/04/07 21:03:43
Perlのコードを配布する際ってCPANからインストールして
使用したモジュールってどのように付属すれば良いのでしょうか?
それともReadmeなどにCPANからこのモジュールをインストールしてくださいと
書いておくのでしょうか
516:デフォルトの名無しさん
09/04/07 22:15:26
それとも
517:デフォルトの名無しさん
09/04/07 22:18:40
>>515
CPAN モジュールやその他のよく知られたライブラリ類は、特に事情がなければユーザに揃えてもらった方がよいでしょう。
ユーザ環境のモジュール配布元へのアクセスが制限されていたり、配布スクリプトがモジュールの特定のバージョンに依存するなどの事情がある場合は、その旨明記した上で各モジュールのライセンスが許せば同梱することもできます。
インストールスクリプト中で依存モジュールを CPAN からインストールさせることもできますが、大抵の単体配布では単に依存関係(必要なモジュールのリスト)を(できれば POD に)明記しておくだけで充分です。
518:デフォルトの名無しさん
09/04/07 23:12:09
なるほど、やはりユーザーにもある程度の技術力は求められるのですね。
ありがとう御座いました
519:デフォルトの名無しさん
09/04/08 17:38:42
$hogeの中の「\/:*?"<>|」を全て半角スペースに置き換えるのはどうすればいい?
520:デフォルトの名無しさん
09/04/08 18:53:38
>>519
$hoge =~ s,\Q\/:*?"<>|\E, ,sg;
521:デフォルトの名無しさん
09/04/08 19:45:04
>>519-520
URLリンク(perldoc.jp)
$hoge =~ tr{\\/:*?"<>|}{ };
522:デフォルトの名無しさん
09/04/09 01:08:47
質問です。
Class::Accessor::Fastを使用して
ハッシュのアクセサって作れるのでしょうか?
いろいろ試してみたのですがうまく行きませんでした…
↓イメージ的にはこんな感じ
package My::Class;
use base qw(Class::Accessor::Fast);
__PACKAGE__->mk_accessors( qw(hoge) );
package main;
my %hash = (
"a" => 'aaaaa',
"b" => 'bbbbb',
);
my $obj = My::Class->new();
#$obj->hoge(\$hash);
523:デフォルトの名無しさん
09/04/09 01:52:22
URLリンク(d.hatena.ne.jp)
↑の問題ってまだ残っているのでしょうか?
久しぶりにMechanizeを使ったプログラムを動かしたら
同じエラーが出るようになったのですがCommon.pmの中身が変わってしまっているようで
何処を修正すれば良いのかわからないのですが.....
524:デフォルトの名無しさん
09/04/09 02:05:45
s/ で / が使えない時の第一選択って何にしてる?
525:デフォルトの名無しさん
09/04/09 02:40:29
{}
526:デフォルトの名無しさん
09/04/09 02:47:34
>>524
PATTERN か REPLACEMENT がある程度長ければ、/ の有無に関わらず {} 。
短ければ PATTERN にも REPLACEMENT にも現れない棒状の文字… | か ! か # 。
527:デフォルトの名無しさん
09/04/09 03:23:38
>>522
$obj->hoge(\%hash);
528:PHPの神
09/04/09 06:53:49
URLリンク(itpro.nikkeibp.co.jp)
Pelってなんだよ
529:デフォルトの名無しさん
09/04/09 07:50:22
> 「Pelは大規模Webサービスを支え,今も進化している。しかしそのことが広く知られていない」
確かに「Pel」は知られていないなw
冗談はともかく、日曜プログラマの自分からするとめちゃめちゃ知られてるような気がするんだ
けど。「Perl技術者の雇用を増やしたい」とは言ってるけど、それでも何がしたいのかよくわから
ない。まだ安定した地位を得ていないRubyとかならまだわかる。
まったくの妄想だけど、Ruby on Railsに仕事を奪われがちになってるとか? でもそれなら
そっちも覚えればいいだけだしなあ。
530:デフォルトの名無しさん
09/04/09 13:47:31
{}なんて使えるんだ
うちだと、
$str =~ s{}a{}A{};
みたいにしてもエラーになる
531:デフォルトの名無しさん
09/04/09 14:12:06
>>530
本気なのかネタなのか判断に苦しむなそれw
532:デフォルトの名無しさん
09/04/09 14:27:26
$str =~ s{a{b{;
普通に考えたらこんな感じ?
変な感じ…
家帰ったら試してみよう
533:デフォルトの名無しさん
09/04/09 17:05:11
>>532
それはNG
$str =~ s}a}b};
こっちはok
534:デフォルトの名無しさん
09/04/09 17:07:18
>>530 >>532
URLリンク(search.cpan.org)
URLリンク(perldoc.jp)
関係無いけど perldoc.jp の和訳は目次もname属性も削ってる上に
見出しが腐ってて不便極まりないな。
535:デフォルトの名無しさん
09/04/09 17:30:33
一般的な正解
$str =~ s{a}{A};
536:デフォルトの名無しさん
09/04/09 18:05:55
1と9を4つとを四則演算で計算結果が10になるものを出力したいのですが、
@a1 = (1,9);
@a2 = (1,9);
@a3 = (1,9);
@a4 = (1,9);
foreach $a1 (@a1){
foreach $a2 (@a2){
foreach $a3 (@a3){
foreach $a4 (@a4){
if ($a1 + $a2 + $a3 + $a4 == 10){
print $a1.'+'.$a2.'+'.$a3.'+'.$a4."\n";
}
if ($a1 + $a2 + $a3 - $a4 == 10){
print $a1.'+'.$a2.'+'.$a3.'-'.$a4."\n";
(中略)
if ($a1 / $a2 / $a3 * $a4 == 10){
print $a1.'/'.$a2.'/'.$a3.'*'.$a4."\n";
}
if ($a1 / $a2 / $a3 / $a4 == 10){
print $a1.'/'.$a2.'/'.$a3.'/'.$a4."\n";
}}}}}
こんな感じで記述する手間がとても大変です
こういう場合に少ない記述で全組み合わせを試すいい方法はありますか?
537:デフォルトの名無しさん
09/04/09 18:41:26
@a1 = (1,9);
@a2 = (1,9);
@a3 = (1,9);
@a4 = (1,9);
@op = ('+', '-', '*', '/');
foreach $a1 (@a1){
foreach $op1 (@op){
foreach $a2 (@a2){
foreach $op2 (@op){
# 中略
$fomulae = $a1.$op1.$a2.$op2.$a3.$op3.$a4;
print "$fomulae \n" if (eval $fomulae == 10);
}}}}
こんな感じかな。
538:デフォルトの名無しさん
09/04/09 18:51:32
>>537
演算子を変数に入れておkだと初めて知りました!
ありがとうございました
539:デフォルトの名無しさん
09/04/09 19:06:21
なぜ複数形
540:デフォルトの名無しさん
09/04/09 21:10:04
誰か助けて下しア
環境がPERL5.8.* Jcode 2.6.5
PERL5.6.1 Jcode2.0から移したら
今までCGIで文字化けしなかったものが化けました。
$str = '㈱ホゲマン';
$hoge = Jcode->new($str, euc)->h2z->euc;
print "$hoge";
今までは ㈱ホゲマン
と表示されていたのに、 ?ホゲマン
となります。
原因を調べていたら、5.8移行は機種依存文字は無視しないで?に変換してしまうとのことで。。。
これを ㈱ホゲマン となるように
解決したいのですが、どなたかご教授ください。
541:デフォルトの名無しさん
09/04/09 21:16:20
すみません
他で聴くためこちらの回答は不要です
失礼しました
542:デフォルトの名無しさん
09/04/09 21:28:24
541は540とは違います。
引き続き回答お願いします。
543:デフォルトの名無しさん
09/04/09 21:50:52
コードをeucで書いて、sjisで読んでeucに変換して処理して、
ということをよくやるけど、ローマ数字が元に戻せなくなるんだよな
544:デフォルトの名無しさん
09/04/09 22:06:00
euc-jp-msでも?
545:デフォルトの名無しさん
09/04/09 22:37:02
そんなencodeは知らんと言われる
546:デフォルトの名無しさん
09/04/09 22:48:06
ppm install Encode::EUCJPMS
みたいなことをしても、見つからない
547:デフォルトの名無しさん
09/04/09 22:58:35
5.8.xならactivestateのリポジトリにあるみたいだけど。
ppm install Encode-EUCJPMS
548:デフォルトの名無しさん
09/04/09 23:00:35
それもやったんだけどな
無いってよ
549:デフォルトの名無しさん
09/04/09 23:21:10
普通に入ったぞ。見りゃわかるだろうが手元はwindowsな
I:\> ppm i Encode-EUCJPMS
====================
Install 'Encode-EUCJPMS' version 0.07 in ActivePerl 5.8.8.817.
====================
Files found in blib\arch: installing files in blib\lib into architecture depende
nt library tree
Installing C:\Perl\site\lib\auto\Encode\EUCJPMS\EUCJPMS.dll
Installing C:\Perl\site\lib\auto\Encode\EUCJPMS\EUCJPMS.exp
Installing C:\Perl\site\lib\auto\Encode\EUCJPMS\EUCJPMS.lib
Installing C:\Perl\site\lib\Encode\EUCJPMS.pm
Successfully installed Encode-EUCJPMS version 0.07 in ActivePerl 5.8.8.817.
550:デフォルトの名無しさん
09/04/09 23:25:56
D:\>ppm i Encode-EUCJPMS
ppm i failed: Can't find any package that provide Encode-EUCJPMS
なーにが違うんだろう
D:\>perl -v
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 18 registered patches, see perl -V for more detail)
551:デフォルトの名無しさん
09/04/09 23:30:44
I:\> perl -v
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 25 registered patches, see perl -V for more detail)
Copyright 1987-2006, Larry Wall
Binary build 817 [257965] provided by ActiveState URLリンク(www.ActiveState.com)
Built Mar 20 2006 17:54:25
ppm repは?もしかしてactivestateのリポジトリ無効にしてるとか無いよな?
552:デフォルトの名無しさん
09/04/09 23:40:11
D:\>ppm rep
レトトトトツトトトトトトツトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトソ
ウ id ウ pkgs ウ name ウ
テトトトトナトトトトトトナトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトエ
ウ 1 ウ 9817 ウ ActiveState Package Repository ウ
タトトトトチトトトトトトチトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトル
(1 enabled repository)
大丈夫なのか、この画面は
553:デフォルトの名無しさん
09/04/09 23:43:13
んー、ppmのバージョン違うのか?その表示は覚えが無いぞ…
> ppm version
PPM 3.4
> ppm rep
Repositories:
[1] tcool
[2] ActiveState Package Repository
554:デフォルトの名無しさん
09/04/09 23:46:25
D:\>ppm version
ppm 4.01
Copyright (C) 2007 ActiveState Software Inc. All rights reserved.
ここがはっきり違う
Binary build 822 [280952] provided by ActiveState URLリンク(www.ActiveState.com)
Built Jul 31 2007 19:34:48
ここ?
555:デフォルトの名無しさん
09/04/09 23:56:53
あー、わかった。activeperl5.8.xは確かbuild818か819ぐらいで別リポジトリになってるんだわ
てことはそっちの新しいリポジトリに入ってないんだな
今ちょっと調べてきたらtrouchelle(URLリンク(trouchelle.com))のリポジトリに入ってるみたいなんで、
リポジトリ追加したらいいと思う
build822だからこれでリポジトリ追加して
ppm rep add trouchelle URLリンク(trouchelle.com)
ppm i Encode-EUCJPMS
で入ると思う
ま、ローマ数字扱えるかどうかは確信がもてないがw
556:デフォルトの名無しさん
09/04/10 00:03:55
D:\>ppm rep add trouchelle URLリンク(trouchelle.com)
Downloading trouchelle packlist...done
Updating trouchelle database...done
Repo 2 added.
D:\>ppm i Encode-EUCJPMS
Downloading Encode-EUCJPMS-0.07...done
Unpacking Encode-EUCJPMS-0.07...done
Generating HTML for Encode-EUCJPMS-0.07...done
Updating files in site area...done
7 files installed
流石は名探偵
557:デフォルトの名無しさん
09/04/10 00:08:39
でもローマ数字は駄目だった
558:デフォルトの名無しさん
09/04/10 00:10:42
と思ったら、shiftjisじゃなくてcp932にしたら上手く行った
559:デフォルトの名無しさん
09/04/10 00:14:55
サンプル
#written in EUC
use Encode;
use Encode::EUCJPMS;
$str = "つ⑩";
print e2s($str);
sub e2s() {
my $str = shift;
return encode('cp932', decode('euc-jp-ms', $str));
}
560:デフォルトの名無しさん
09/04/10 02:08:03
>>539
どういうことですか?