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

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2010/10/18(月) 02:26:13
print $$x;
953デフォルトの名無しさん:2010/10/18(月) 02:32:46
>>952
なるほど!ラクダ本は

print "you gave me $$x\n"

の様になっていたのですが、余分の $ は、お金の単位だと思ってましたw
ありがとうございました。
954デフォルトの名無しさん:2010/10/18(月) 03:01:47
perlでunicodeのU+010000 … U+1FFFFFの文字列を全て、
〓(U+3013)に置き換えたいのですが、
元データがutf8の場合、置換式をどのように書けばいいでしょうか

上記範囲のutf8文字コードは、
[F0-F7] [80-BF] [80-BF] [80-BF]
で、
〓のutf8文字コードは、
[E3] [80] [93]
です

よろしくお願いします
955デフォルトの名無しさん:2010/10/18(月) 03:07:01
エスケープ文字だから
956デフォルトの名無しさん:2010/10/18(月) 12:19:09
>>954
s/[\x{010000}-\x{1FFFFF}]/〓/g
でいけそうな気がする
957デフォルトの名無しさん:2010/10/18(月) 14:24:31
>>954
utf8フラグ付きで、5.8.1以降なら

use utf8;
{
no warnings 'utf8';
tr/\x{010000}-\x{1fffff}/\x{3013}/;
}
958デフォルトの名無しさん:2010/10/18(月) 14:43:48
no warnings 'utf8' は何のため?
959デフォルトの名無しさん:2010/10/18(月) 15:08:51
>>958
unicodeの範囲を超えているので、use warningsしていると
(5.11以降?で)警告が出ます。その抑制です。

↓コレ
Unicode non-character %s is illegal for interchange
960デフォルトの名無しさん:2010/10/18(月) 18:45:00
文字列$strの中に英数字と!、% 以外の文字が含まれているかどうか判定する為の効率のいい命令文教えてください。
961デフォルトの名無しさん:2010/10/18(月) 19:47:04
>>960
命令じゃなくて正規表現でいいと思う
$hoge=~[^\w!%:]みたいな?
962デフォルトの名無しさん:2010/10/18(月) 19:49:39
\wはアウアウ
963デフォルトの名無しさん:2010/10/18(月) 20:55:36
>>954
s/([\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF])/\xE3\x80\x93/g;

964デフォルトの名無しさん:2010/10/18(月) 21:24:15
>>959
なるほど。それは知らなかったので勉強になった。

ところで、

U+010000 … U+1FFFFF



[F0-F7] [80-BF] [80-BF] [80-BF]

って数が合わなくね?

後者はきっかり21ビット(2^21)だけど前者は上2桁が01〜1F
なので21ビットに少し足りない(2^21 - 2^16)

965デフォルトの名無しさん:2010/10/19(火) 00:01:32
>>956-957,963
多くの方に質問に答えていただき、
ありがとうございました

そのまま変換したら一部文字化けが発生したので、
splitで1文字ごとに分離し、それを1文字ずつ、
s/^[\x{010000}-\x{1FFFFF}]$/〓/;
という式で変換したら、
無事目的の動作をしてくれました

>>964
最初の[80-BF]([F0-F7][80-BF]←この部分)は、
ちょっと変な扱いになっているようです
http://ja.wikipedia.org/wiki/UTF-8
966Perl忍者 ◆M5ZWRnXOj6 :2010/10/19(火) 00:27:52
いたら返事して
967デフォルトの名無しさん:2010/10/19(火) 19:58:42
CPAN から Module::Setup を入れてみたんだが、
CPANシェルで upgrade すると、

>Package namespace installed latest in CPAN file
>Locale::Maketext::Guts undef 1.13 FERREIRA/Locale-Maketext-1.13.tar.gz
>Module::Setup::Flavor::CodeRepos undef 0.01 YAPPO/Module-Setup-0.06.tar.gz

なんて言われて、
Locale::Maketext が 1.16 から 1.13 に、
Module::Setup が 0.09 から 0.06 になってしまうのは何故なんだろう?
968デフォルトの名無しさん:2010/10/19(火) 20:02:37
>>961
サンクス
969デフォルトの名無しさん:2010/10/19(火) 22:28:11
諸兄らの感想を聞きたい。

峰松浩樹 LT - 基幹システムがperlでどうしてこうなった
http://www.youtube.com/watch?v=2tAX9NC4wJU
970デフォルトの名無しさん:2010/10/19(火) 22:43:13
perlはライブラリ入れられない時があるから捨てた
971デフォルトの名無しさん:2010/10/19(火) 22:59:32
なら来るなよ
972デフォルトの名無しさん:2010/10/19(火) 23:27:56
>>969
COBOLとPerlのキメラみたいなソース…メンテナンスどうすんだろw
973デフォルトの名無しさん:2010/10/19(火) 23:49:28
>>969
まさにダクトテープ。
Perlらしい使い方だね。
974デフォルトの名無しさん:2010/10/19(火) 23:51:51
>>969
最初以外なぜオーディエンスが笑っているのかがわからん
975デフォルトの名無しさん:2010/10/20(水) 00:02:28
ヲタトーク
976Perl忍者 ◆M5ZWRnXOj6 :2010/10/20(水) 00:07:12
ルー大島はもうかえれ
977デフォルトの名無しさん:2010/10/20(水) 01:07:22
>>970
リポジトリを追加したか?
978デフォルトの名無しさん:2010/10/20(水) 08:51:43
>>969
うちの県のシステムかw
979デフォルトの名無しさん:2010/10/20(水) 12:11:33
猫いじり
980デフォルトの名無しさん:2010/10/20(水) 13:50:03
HTML::TreeBuilderでtree->parse_file("foo.html")するとき、ファイルサイズが大きいとものすごく時間掛るんですけど速くする方法ないですか?
981デフォルトの名無しさん:2010/10/21(木) 02:12:21
perl test.pl とすると次のようなエラーがでます。
何か足らないものがあるのでしょうか?cygwinを使っています。

Can't locate Win32/IEAutomation.pm in @INC
(@INC contains: /usr/lib/perl5/5.10/i686-cygwin
/usr/lib/perl5/5.10 /usr/lib/perl5/site_perl/5.10/i686-cygwin
/usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10/i686-cygwin
/usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/vendor_perl/5.10
/usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at test.pl line 6.
BEGIN failed--compilation aborted at aa.pl line 6.
982デフォルトの名無しさん:2010/10/21(木) 02:21:56
Can't locate Win32/IEAutomation.pm
983Perl忍者 ◆M5ZWRnXOj6 :2010/10/21(木) 17:03:16
PerlTK使って人いるかい!?

そうかい!いないかい!
984デフォルトの名無しさん:2010/10/21(木) 17:18:37
CGI::Sessionで、$session->header( -secure => 1 )みたいなカンジで
secure flagつける方法はないでしょうか?
985デフォルトの名無しさん:2010/10/21(木) 17:55:08
>>984
残念だけどCGI::SessionのheaderメソッドにはCGI::Cookieに追加のパラメタを渡す
機能が用意されてないようだ。

マニュアルにあるようにheaderメソッドの呼び出しは

$cookie = CGI::Cookie->new(-name=>$session->name, -value=>$session->id);
print $cgi->header(-cookie=>$cookie, @_);

と同じなので、ばらして書いて1行目のCGI::Cookie->newに好きなパラメタ追加すればいい。
986Perl忍者 ◆M5ZWRnXOj6 :2010/10/21(木) 18:00:48
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
987984:2010/10/21(木) 18:01:13
>>985
うーん、やはりそうですか。
ご丁寧にありがとうございました。
988Perl忍者 ◆M5ZWRnXOj6 :2010/10/21(木) 19:14:02
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
989デフォルトの名無しさん:2010/10/22(金) 09:07:23
WEBサイトのヘッダーとボディーをくっつけて文字列として一挙に取得するにはどうすればいいのでしょうか?
990デフォルトの名無しさん:2010/10/22(金) 09:32:47
一瞬、関数型言語の Grassスレかと思った。
991デフォルトの名無しさん:2010/10/22(金) 09:50:56
>>989
use LWP::UserAgent;
print LWP::UserAgent->new->get('http://localhost/')->as_string;
992デフォルトの名無しさん:2010/10/22(金) 10:05:41
>>991
d
できました
993デフォルトの名無しさん:2010/10/22(金) 11:55:38
クリックしたらカウントが増えるようなボタンって作れますか?
1日1回クリックをするとURL先に飛んでなおかつカウントを取るような感じで・・・
994デフォルトの名無しさん:2010/10/22(金) 11:58:00
とりあえず見積りだせばいいですか?
995デフォルトの名無しさん:2010/10/22(金) 12:02:02
>>993
5万でひきうけてやんよ。それ以下なら受けない。
996デフォルトの名無しさん:2010/10/22(金) 12:27:46
Javaの方使ってできました
ありがとうございました
997デフォルトの名無しさん:2010/10/22(金) 12:48:24
>>990
Werlがもう浸透したのか。
http://www.youtube.com/watch?v=BFzMlHMbl80
998Perl忍者 ◆M5ZWRnXOj6 :2010/10/22(金) 16:46:00
こんな
999Perl忍者 ◆M5ZWRnXOj6 :2010/10/22(金) 16:48:40
クソスレ
1000Perl忍者 ◆M5ZWRnXOj6 :2010/10/22(金) 16:49:24
必要です
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。