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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:54:12 ]
"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についての質問箱 29箱目
pc11.2ch.net/test/read.cgi/tech/1166708139/

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

294 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 12:18:50 ]
近頃はs#・・・#・・・#って書き方見なくなったな

295 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 13:07:55 ]
>>292
人間の読み書きの部分で効率悪いと思う

296 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:36:58 ]
1 while $var =~ s/(\d{2})(\d{2})/$1\/$2/g;

297 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:43:01 ]
s/(\d{2})(?=\d{2})/$1\/$2/g

298 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 16:53:45 ]
>>297
$2なんてないじゃん

299 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 17:11:53 ]
>298
なにを言っているんだお前は。

300 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 17:40:37 ]
いやさ、 (?= ) は後方参照を生成しないだろう?
> perl -e "q/123/ =~ /(\d)(?=\d)(\d\d)/; print $2;"
23

そもそも、(?= )はゼロ幅先読みだろう。
> perl -e "q/123/ =~ /(\d)((?=\d))/; print $2;"
(出力なし)

301 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 20:54:57 ]
>>295 なるほど ワンライナーでさらっとかけるよう しょうじんいたします
・)つ● ←おれいのしな

302 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 10:56:55 ]
>>300
そのとおり。適切な指摘ありがと。書いてから気がついた。
>>283か、
s|(\d\d)(?=\d)|$1/|g
みたいな感じで。



303 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:59:05 ]
ファイル出力の質問です

open IN , ">$failename";
print IN , "test;
close IN;

で、$filenameに絶対パスを入れたいんですが、なんかうまく言ってくれないんです Orz
助けてエロい人

304 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:02:26 ]
>>303
> で、$filenameに絶対パスを入れたいんですが、なんかうまく言ってくれないんです Orz

さあ、「なんかうまく言ってくれないんです」の「なんか」を推定するクイズです!!


305 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:08:28 ]
これは流石に釣りだろう

306 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:11:10 ]
エスパーの私がお答えしよう。

Windows で \ 記号がディレクトリ名の区切りなもんだから
ダブルクォーテーションで括っただけだとエスケープと
解釈されちゃって変な文字列完成。→オープン→エラー。
そんなファイルはねえよヴォケと $! に入っている。


307 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:34:21 ]
$failename (フェイルエネーム?) だからではないか・・・なんてことはないか。
そもそも IN じゃなくて OUT だろうと

use Fatal qw(open close);
open my $out, '>', $filename;
print {$out}, "test";
close $out;

308 名前:307 mailto:sage [2007/04/19(木) 23:39:40 ]
- print {$out}, "test";
+ print {$out} "test";

309 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:40:55 ]
{$out}

310 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:54:37 ]
{$safe}


311 名前:265 mailto:sage [2007/04/19(木) 23:58:02 ]
$failename =~ s/^/zettaipath\/;

312 名前:303 mailto:sage [2007/04/20(金) 00:05:38 ]
みなさま マジでありがとうです
こんな初心者をささえてくれてありがとお つω;



313 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 01:32:59 ]
なんかうまく言えました

314 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 03:42:05 ]
うまく言えないけれど宝物だよ

315 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 03:53:44 ]
僕たちはできる!! できるんだ!!

316 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 03:54:26 ]
最高ですか!!?
最高です!!!

317 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 12:14:51 ]
プラス思考のスレはここですか?

318 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 15:30:27 ]
プラス指向プログラミング POP

319 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:25:20 ]
@http = $_ =~ /s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/g;
print FILEA @http;
このような記述をしたら、
Variable "@http" is not imported at http-client.pl line 53.
Variable "@http" is not imported at http-client.pl line 54.
Global symbol "@http" requires explicit package name at http-client.pl line 53.
Global symbol "@http" requires explicit package name at http-client.pl line 54.

と言われました。
これは何のエラーですか!?

320 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 22:19:47 ]
@httpを括弧でくくってください

321 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 23:21:12 ]
>>319
Variable "@http" is not imported については、perldiagをどうぞ。
というか、「何の」もなにもperlが出しているエラーなんだからまずはここで調べるべし。
perldoc.jp/docs/perl/5.6.1/perldiag.pod

とりあえず、use strictなのに @http が生で使われているのが原因ですので、パッケージを明示的に
指定して使うか、my宣言すればいいのでは。

322 名前:デフォルトの名無しさん [2007/04/21(土) 23:17:55 ]
PDFを解析したいんですが、どのような方法で読み込んでいったらいいと思いますか?
ちなみに、PDFの仕様として:

・改行文字はCR,LF,CRLF,のどれでもよい。
・文字列内での改行文字はそのままのかたちで残さなければならない。
・文字列内で(見た目のために)改行したいときは \改行文字 とする。

read(FILE, $buf, 512) ってのもめんどくさそうだし、できれば while(<FILE>) で
済ましたいんですが、意味のある改行もあるしなぁ。。。




323 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 00:20:39 ]
>>322
何をしたいのか知らんが、まずCPANでPDF関係のモジュールを
サーチしたほうがいいね。
あなたがしたいことを既に実現しているモジュールがあるかもしれないし、
少なくとも、改行文字の扱い方については、ソースの中にお手本が
あると思うし。

324 名前:303 [2007/04/22(日) 04:50:29 ]
303ですが またまた超初心者な質問です。

requier './jcode.pl';

sub jis { $msg = $_[0]; &jcode'convert(*msg, 'jis'); }

ってコードがあったのですが
&jcode の後ろについている ' の意味がわかりません。

もしかして
&jcode::convert(*msg,'jis');
と同義ですか?

エディターの色分けが気持ち悪くなるので直したいです。教えてエロい人 Orz

325 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 05:35:13 ]
Perl4

326 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 05:37:45 ]
>>324
エロい人よりマニュアルに頼ろうよ。

<q cite="www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html">
古いパッケージ区切り子はシングルクォートでしたが、
現在はダブルコロンを使うのが推奨されています。
</q>

mikeneko.creator.club.ne.jp/~lab/kcode/jcode.html#h2-2

327 名前:324 mailto:sage [2007/04/22(日) 11:13:18 ]
なるほど! ありがとうございました ><

Jcodeの使い方も含めて勉強してきます ><ノ

328 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:43:25 ]
CPAN でインストールする際に以下のようなメッセージが出て失敗します。

Undefined subroutine &Compress::Zlib::gzopen called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 5721.

何をインストールしても大体このエラーが出て失敗します。

Zlib は、
/usr/local/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm
にあって、サブルーチン gzopen もありました。

また、@INC に /usr/local/lib/perl5/site_perl/5.8.8 は含まれていました。

どこに問題があるか分からないのですが、教えてもらえないでしょうか。

環境は、
OSX 10.4.9 で Perl 5.8.8 を /usr/local/bin にインストールしました。

329 名前:デフォルトの名無しさん [2007/04/22(日) 16:09:08 ]
>>328
あえて /usr/bin/perl ではなく /usr/local/bin/perl を使いたいわけね?
で、実際に使ってる(環境変数 PATH で優先的に参照される)のは /usr/bin/perl ではなく、
/usr/local/bin/perl ってことに間違いはない?

330 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 16:35:51 ]
>>329
レスありがとうございます。

>あえて /usr/bin/perl ではなく /usr/local/bin/perl を使いたいわけね?
はい。ソースコードからインストールしたらそこにインストールされたので、
/usr/local/bin/perl を使っています。

>で、実際に使ってる(環境変数 PATH で優先的に参照される)のは /usr/bin/perl ではなく、
>/usr/local/bin/perl ってことに間違いはない?
間違いないはずです。
which perl で確認しました。

CPAN.pm の該当箇所をみると、
$CPAN::META->has_inst("Compress::Zlib") で判定した後に、
Compress::Zlib::gzopen を呼び出していました。
そこで gopen がないとなる理由がよく分かりません。

331 名前: ◆TWARamEjuA mailto:sage [2007/04/22(日) 17:40:08 BE:2287837-2BP(6823)]
>>330
> >で、実際に使ってる(環境変数 PATH で優先的に参照される)のは /usr/bin/perl ではなく、
> >/usr/local/bin/perl ってことに間違いはない?
> 間違いないはずです。
> which perl で確認しました。
$env
してみると判るけれども標準ではpathが通っていないと思うですです。
PATH=/bin:/sbin:/usr/bin:/usr/sbin
@MacOSX 10.4.9

もっぺん確認してみよう♪

♯tu-ka未だに5.8.6のままなんだよなぁ。。。(´・ω・`)
$ perl -v

This is perl, v5.8.6 built for darwin-thread-multi-2level
(with 3 registered patches, see perl -V for more detail)

332 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:55:38 ]
>>331
レスありがとうございます。

$env
で確認してみましたが、先頭に/usr/local/binがありました。
PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin

こうなるように、以前./bash_profile に追加しました。
となると、原因は不明でしょうか?
インストールの仕方が悪かったのかなあ。



333 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:53:01 ]
CPANなんてまともに動作すると思うほうがおかしい。
手動で入れろ。

334 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 21:21:50 ]
>>323 THX
PDFファイルのすべてを把握するのが目的です。

CPANをみたところ、PDFのテキストや書誌情報を抽出したりするためのAPIは用意されてる
のですが、もっと低レベルなパーサーがないようです。。

各種トークンが出現するたびにイベントを起動するような奴がほしいんですが。
HTML::ParserのPDF版でPDF::Parserみたいな感じの奴です。


335 名前:デフォルトの名無しさん [2007/04/22(日) 23:26:59 ]
日曜潰してまだ分からないので、どなたか助けてください\(ToT)/
UTF-8でURIエスケープされた文字列を、アンエスケープするPerlの処理でけつまづいてます。

元の文字列をURIエスケープした文字列がサーバ側まで来ているのは確認しました。
「質問」→「%E8%B3%AA%E5%95%8F」だとか、「ü」→「%C3%BC」だとか。

これを
$utf8str =~ s/%([a-f\d]{2}/pack('H2',$1)/egi;
しても、正しくアンエスケープされない(文字化けする)のです。
UTF-8が可変バイトなのが曲者なのでしょうか。。。

ググった先(ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1644542)の
$utf8str =~ s/%(e[a-f\d])%([a-f\d]{2})%([a-f\d]{2}/pack('H2',$1).pack('H2',$2).pack('H2',$3)/egi;
してもやはりだめでした。

336 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:56:33 ]
>>333
むあじっすか。

337 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:59:22 ]
>335

use Encode qw/from_to/;
my $str = '%E8%B3%AA%E5%95%8F'; # utf8の'質問'をエスケープ
(my $dec = $str) =~ s/%([a-f\d]{2})/pack 'H2', $1/egi;
from_to($dec, 'utf8', 'cp932'); # Winのコマンドプロンプトで表示するのでcp932にしてる
print $dec;

とりあえずこれで動いてるけど? ブラウザに出してるんなら、Shift_JISって解釈されてるとかじゃない??

338 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 00:01:31 ]
>>335
> $utf8str =~ s/%([a-f\d]{2}/pack('H2',$1)/egi;
$1のための括弧が閉じられてません。

あとは、UTF-8に対応したEditorで開いてないとかでしょうか。
上の式で正しくアンエスケープされました。


339 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 00:35:06 ]
括弧閉じ忘れでごめんなさいorz
>>337さんのスクリプトを実行したところ、文字化けしませんでした。
また、from_toする前でも、ファイルにリダイレクトして、
そのファイルをエディタで開いても同様に文字化けしていませんでした。

しかし、サーバに持って行ってブラウザに結果を出すと文字化けしてしまいます。
エディタはUTF-8に対応していて、Perlスクリプトもutf-8で保存して、
use utf8; use open ":utf8"; use open ":std";して、
print "Content-type: text/html; charset=utf-8\n\n";
いるのですが、
>>337さんのものでprint $dec;でもprint $str;でも駄目(文字化け)でした。
環境はWin XP SP2 + IE7、[表示]-[エンコード]でもUTF-8であることを確認しているのですが。。

度々で申し訳ないのですが、他に何か怪しい箇所がありますでしょうか?

340 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 00:49:03 ]
#!/usr/bin/perl

my $str = '%E8%B3%AA%E5%95%8F';
(my $dec = $str) =~ s/%([a-f\d]{2})/pack 'H2', $1/egi;

print "Content-Type: text/plainl; charset=utf-8\n\n";
print $dec;

__END__

とりあえず手元だとこれで動いてる。まずは問題の発生する最小限のコードまで切り詰めてみ?

341 名前:337 mailto:sage [2007/04/23(月) 01:17:20 ]
ありがとうございました!解決しました。
use open ":std";が余計でした(よく分からないのに「おまじない」で書くのは駄目でしたね)。
問題のスクリプトから上記を除いて、かつ、
自分で作って読んでいるモジュールからも上記を除きました。
本当にありがとうございます!

342 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:18:56 ]
自分(↑)は>>337さんでなくって>>335でした。お目汚しでごめんなさい。
標準入出力を使わないなら、use open ":std";等は確かに不要でした。



343 名前:335 mailto:sage [2007/04/23(月) 03:15:36 ]
事後報告がてら・・・
use open ":std";を外せばアンエスケープで文字化けしないものの、
今度は後続処理でUTF-8な文字を処理できないという問題がありました。

結局、以下のサイトを参照して、
ttp://naoya.dyndns.org/~naoya/mt/archives/000611.html
use open ":std";は残したままで、アンエスケープ処理の後に
utf8::decode($str);でUTF8フラグを落とせば、
スクリプトへのUTF-8文字列の受け渡しも、後続処理も、うまく行きました。

夜更けにお答えくださって、本当にどうもありがとうございました。
これで安心して眠れそうです。

344 名前:デフォルトの名無しさん [2007/04/23(月) 18:08:16 ]
■ Perl言語 ■ 何でも質問コーナー ■
mixi.jp/view_bbs.pl?id=17607679&comm_id=1401396
Perlに関すること、cgiに関すること
なんでも質問できるコーナーです(たとえばApacheとかでもOKとします!)
(Web系であればOK)

ルール:
Google検索で調べてわかるようなことでも質問してもOKです
(初心者のうちは、どの情報を取捨選択したらイイのかわからないと思うので)
回答してくださるかたは、暖かく質問者を迎えてやってください
o(^^o) (o^^)o



345 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 18:19:57 ]
そのトピック自体はどうでもいいんだが
コミュニティのタイトルとか説明文が凄く気になって仕方が無い。

346 名前: ◆TWARamEjuA mailto:sage [2007/04/23(月) 19:56:34 BE:3485748-2BP(6823)]
コミュニティの名前
 PERL言語 CGI言語

コミュニティの説明
 perl言語 cgi言語のコミュニティです

だそうです。。。

347 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 04:11:19 ]
Web系NGなこのスレとうまく連携していければいいですねo(^^)o

348 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 08:17:44 ]
未だにCGIが(ry

349 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:36:14 ]
ダメそうなコミュだなw

350 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 22:51:58 ]
どうしようもない質問の数々に、「ちったぁマニュアル読んでください!」と、
最後に管理者がキレるに1票。

351 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 02:27:30 ]
いやあ管理人もろくすっぽ読んでないんじゃないか?


352 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 11:12:27 ]
実は、管理人自身が2ちゃんねるで質問したところ、
「ググれカス」だの「マニュアル嫁」みたいな回答しか
返ってこなかったので、管理人にやさしく教えてくれる
ところが欲しかったんじゃないの?



353 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 12:06:40 ]
>>352
もちろんそうでしょ。
そうじゃなきゃルール書きの冒頭が「Google検索で調べて
わかるようなことでも」で始まるわけないっすよ。

354 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 12:33:51 ]
モヒカン族はお断りです><

355 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 17:38:48 ]
モヒカン族の土地に侵入してきたくせに、大きい顔をするな

356 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:00:43 ]
座り込んで動かない、口だけ達者なでっぷり太ったモヒカン族ほど
役に立たないものはない。

川に流してしまいたい。

357 名前: ◆TWARamEjuA mailto:sage [2007/04/25(水) 20:55:45 BE:980633-2BP(6824)]
不法投棄しちゃダメです♪

358 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 21:32:05 ]
食肉に加工するというのはどうだろう

359 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:08:09 ]
強くなれ!! と願いを込めて、子供たちに食べさせるとよいね。


360 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:13:46 ]
弱者の肉なんかいくら食べても強くなれないよ

361 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:27:06 ]
食べるのなら、戦場で最前線に立つモヒカンを食べよう。

362 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 09:20:12 ]
   / : 》:、∩
  (===○=)/  センセー
__ /  ⇔ /     話しについてけませーん
\⊂ノ ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||
 ...|| ̄ ̄ ̄ ̄||



363 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 22:17:39 ]
>>346
CGI言語と来たか・・・。

本当に作ってしまって混乱させるというのはどうか?
もちろんその言語はクライアントマシンの限られた
中でしか使えず、 Web の CGI になんて使えないのだ。


364 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 22:18:42 ]
Common Graphics Interface とかいう紛らわしいグラフィック操作用言語を新たに作る。


365 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 23:07:10 ]
parrot上で走らせたらもっと混乱の元に。

366 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 23:15:11 ]
コモン グラフィックス インタープリター

池袋で乗車してきた女の子がハロプロエッグの子とかたかまりこ

367 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 11:39:27 ]
ついでだ。IT言語というのも作ってしまえ。


368 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 11:57:03 ]
そろそろここは質問箱だということを思いだそう。

369 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 15:28:36 ]
そういえば Perl の質問がないなあ・・・。


370 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 15:34:31 ]
Chanto Gugure Internet de


371 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 17:29:18 ]
perlってグーグル八分されてるんだってね

372 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 18:13:20 ]
WindowsでDOSコマンドの結果を取り込むには、
どうすればよろしいでしょうか?例えば、
dir c:\trash
の結果を取り込もうとしても、次のスクリプトではうまくいきません。

$files = `dir c:\\trash`;
print "The files are $files\n";




373 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 18:43:53 ]
GW前に出された宿題で質問が増えるから大丈夫w

374 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 18:53:55 ]
>372
手元だとそれでうまくいってるけど。

375 名前:372 mailto:sage [2007/04/27(金) 20:04:12 ]
>>374
すみません。書き忘れていました。>>10にある先頭の5行を入れていました。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";

「use open IO => ":encoding(cp932)"; 」の行を削除して
次のように修正すると動きました。
use Encode;
$orgfiles = `dir c:\\trash`;
$files = decode('cp932', $orgfiles);
print "The files are $files\n";


376 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 21:23:44 ]
>>372

例によって cmd.exe /c dir ... じゃない?


377 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 21:24:53 ]
失礼、関係なかったのね。


378 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 21:35:08 ]
>371
記号が多いから、とか?

379 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 22:21:10 ]
>>378
うんにゃ、LWPのUAがはじかれる件でしょ?


380 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 22:23:19 ]
>>378
Perlで書かれたボットの多くがLWPのデフォルトUser-Agentをそのまま名乗って
おり、403を食らうようになった。当然だがUAを変えれば通れる。


381 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 22:24:27 ]
Google八分ってのは、Googleの検索結果に出なくなる話だから、
今回のそれとは違うよな。


382 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 22:30:29 ]
新しく覚えた言葉を使ってみたかっただけだろ
そう責めるな



383 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 00:19:39 ]
perlのモジュールって一気にアップデートできないの?
それとも使う奴だけ手動でアップデートさせるしか方法ない?

384 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 00:39:19 ]
>383
cpanシェルでupgrade

385 名前:378 mailto:sage [2007/04/28(土) 01:18:47 ]
Perlに限らないけど、プログラミング言語の仕様として存在する演算子や記号は検索しづらいよなあ。

386 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 03:22:17 ]
不満を抱えるものが改善する。それが基本である。

387 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 05:09:49 ]
でもそれを誰かが改善したらPythonっぽい何かになるからPythonでいいよねw

388 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 17:56:47 ]
比較演算子は記号じゃなくて文字列にすりぁいいんだよな
Pealのeqとかみたいにさ

389 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 19:26:07 ]
>>380
なったと言っても数年前からだよ。
今頃騒いでるやつらはアンテナが低すぎると思ったのだった。

390 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:57:47 ]
struct {
 char len1;
 char word1[len1];
 char len2;
 char word2[len1];
 char len3;
 char word3[len1];
}

みたいな構造の可変長のバイナリなデータがあるんですが、
これをperlで綺麗でかっこよく展開する方法ってないですか?

今は下のようなことをしてるのですが、なんか見辛いし汚いので…

$data = "\4ABCD\3EFG\7HIJKLMN";

($len1,$data) = unpack("Ca*",$data);
($word1,$data) = unpack("a${len1}a*",$data);
($len2,$data) = unpack("Ca*",$data);
($word2,$data) = unpack("a${len2}a*",$data);
($len3,$data) = unpack("Ca*",$data);
($word3,$data) = unpack("a${len3}a*",$data);

print "$word1\n$word2\n$word3\n";

391 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 03:40:49 ]
少なくともループ構造にするべきだと思う

392 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 04:06:37 ]
>>390
perldoc -f pack して目を皿のようにして熟読せい。

The "/" template character allows packing and unpacking
of strings where the packed structure contains a byte
count followed by the string itself. You write
*length-item*"/"*string-item*.





393 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 05:12:56 ]
>>392
あああああ、そんなテンプレートがあったんですね。
日本語の5.6ベースのman見てたので気づきませんでした…
ありがとうございます。

394 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 02:59:39 ]
>>393
あ、すまん。
5.6からの拡張だと思ってたが、違ったか(393には問題ないみたいでよかった)。






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

前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