Perlについての質問箱 44箱目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/07/31(土) 10:53:20CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://pc11.2ch.net/php/)
このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。
http://www.perl.org/get.html
● 2010/07/31 現在の最新版: 5.12.0
▼ 前スレ
Perlについての質問箱 43箱目
http://pc12.2ch.net/test/read.cgi/tech/1266565626/
リンク集は >>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは >>5-7 あたり
0002デフォルトの名無しさん
2010/07/31(土) 10:54:14Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/
[本]
リャマ: ttp://www.oreilly.co.jp/books/9784873114279/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://www.ascii.co.jp/books/books/detail/4-7561-3057-7.shtml (修正)
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/
[オンラインマニュアル]
最新のドキュメント: ttp://search.cpan.org/dist/perl/
perl5.8.x のドキュメント(一部): ttp://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: ttp://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: ttp://www.cpan.jp/search.cgi (停止中)
perldoc.jp: ttp://www.perldoc.jp/
perldoc.com: ttp://www.perldoc.com/
0003デフォルトの名無しさん
2010/07/31(土) 10:55:55CPAN.com: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/
[テクニック]
Perl メモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perl のページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perl の小技: ttp://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl 5.8 Unicodeメモ]
ttp://www.rwds.net/kuroita/program/Perl_unicode.html (修正)
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0004デフォルトの名無しさん
2010/07/31(土) 10:56:59# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)"; # ※1
use Encode;
# 次に、あなたが実行したい処理の内容を入れて下さい。
$file = 'C:/なんたら/かんたら.txt';
open my $fh, '<', encode("cp932", $file) or die $! ; # ※2
print <$fh>;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。条件が異なる場合の対処方法は、ご自分で勉強して下さい。
# 【注】※1. の行を入れると、DOS 窓への日本語出力は簡便になりますが、
# ソースファイル名に非 ANSI 文字が含まれる場合に die 文の出力が失敗します。
# ※2. OS に渡す文字列(ファイル名,dos コマンドのオプションなど)は、
# この例のように cp932 でエンコードする必要があります。
0005デフォルトの名無しさん
2010/07/31(土) 10:58:191 http://pc.2ch.net/tech/kako/1017/10177/1017736187.html
2 http://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
3 http://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
4 http://pc2.2ch.net/tech/kako/1048/10485/1048519394.html
5 http://pc5.2ch.net/tech/kako/1053/10530/1053053082.html
6 http://pc5.2ch.net/tech/kako/1060/10606/1060689008.html
7 http://pc2.2ch.net/test/read.cgi/tech/1068051036/ (事故により消滅)
8 http://pc2.2ch.net/test/read.cgi/tech/1074151549/ (事故により消滅)
9 http://pc5.2ch.net/test/read.cgi/tech/1079114157/
10 http://pc5.2ch.net/test/read.cgi/tech/1085564875/
11 http://pc5.2ch.net/test/read.cgi/tech/1090889189/
12 http://pc5.2ch.net/test/read.cgi/tech/1094579428/
13 http://pc5.2ch.net/test/read.cgi/tech/1097851764/
14 http://pc5.2ch.net/test/read.cgi/tech/1101649274/
15 http://pc5.2ch.net/test/read.cgi/tech/1105953092/
16 http://pc8.2ch.net/test/read.cgi/tech/1111034732/
17 http://pc8.2ch.net/test/read.cgi/tech/1117870308/
18 http://pc8.2ch.net/test/read.cgi/tech/1121804136/
19 http://pc8.2ch.net/test/read.cgi/tech/1126977805/
20 http://pc8.2ch.net/test/read.cgi/tech/1131286411/
0006デフォルトの名無しさん
2010/07/31(土) 11:16:1321 http://pc8.2ch.net/test/read.cgi/tech/1134327348/
22 http://pc8.2ch.net/test/read.cgi/tech/1138519327/
23 http://pc8.2ch.net/test/read.cgi/tech/1141742901/
24 http://pc8.2ch.net/test/read.cgi/tech/1146022352/
25 http://pc8.2ch.net/test/read.cgi/tech/1149259409/
26 http://pc8.2ch.net/test/read.cgi/tech/1153412251/
27 http://pc8.2ch.net/test/read.cgi/tech/1157874614/
28 http://pc8.2ch.net/test/read.cgi/tech/1162273941/
29 http://pc11.2ch.net/test/read.cgi/tech/1166708139/
30 http://pc11.2ch.net/test/read.cgi/tech/1173880452/
31 http://pc11.2ch.net/test/read.cgi/tech/1181500187/
32 http://pc11.2ch.net/test/read.cgi/tech/1186995713/
33 http://pc11.2ch.net/test/read.cgi/tech/1192463997/
34 http://pc11.2ch.net/test/read.cgi/tech/1199977642/
35 http://pc11.2ch.net/test/read.cgi/tech/1208674881/
36 http://pc11.2ch.net/test/read.cgi/tech/1215569470/
37 http://pc11.2ch.net/test/read.cgi/tech/1218449440/
38 http://pc11.2ch.net/test/read.cgi/tech/1221967332/
39 http://pc12.2ch.net/test/read.cgi/tech/1234181856/
40 http://pc12.2ch.net/test/read.cgi/tech/1243631674/
0007デフォルトの名無しさん
2010/07/31(土) 12:48:4241 http://pc12.2ch.net/test/read.cgi/tech/1249581780/
42 http://pc12.2ch.net/test/read.cgi/tech/1257139591/
43 http://pc12.2ch.net/test/read.cgi/tech/1266565626/
0008デフォルトの名無しさん
2010/07/31(土) 13:35:520009デフォルトの名無しさん
2010/07/31(土) 18:28:59250桁同士の掛け算に15分かかる。
効率いい方法ってある?
0010デフォルトの名無しさん
2010/07/31(土) 19:13:400011デフォルトの名無しさん
2010/07/31(土) 19:53:59どうもです
0012デフォルトの名無しさん
2010/07/31(土) 20:21:18基礎を学んでUNIXC少しやってVBちょっとやったらCGIに入る予定だ。
目標KENT WEB!
多少なりとも足固めしてしてからサイトから落として徐々に作り変えて自分のサイトにしていく。
どうせ誰も見てないサイトだ。何やってるかなんてわかりゃしない。
がんばろ!
0013デフォルトの名無しさん
2010/07/31(土) 23:34:400014PHPヲタ
2010/07/31(土) 23:36:57こういう初心者最高すぎるよ!
0015PHPヲタ
2010/07/31(土) 23:40:17友達になろう
0016PHPヲタ
2010/08/01(日) 00:09:38君は最高だ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!っ
0017デフォルトの名無しさん
2010/08/01(日) 00:34:590018デフォルトの名無しさん
2010/08/01(日) 01:13:05KENTのように10年くらいで覚えて独立も視野にいれて頑張る。
儲かるぞーーーー、夢の上では^^;
貸借対象表と損益計算書でROA計算してROEもだしてヂュポンシステムで財務レバレッジの適正値も出すんだ。
KENTに仕事回してもらえるくらいにならんといかんな。
無いな^^;
だが、ROAはだせるはずだ。がんばろ。
0019デフォルトの名無しさん
2010/08/01(日) 01:37:140020デフォルトの名無しさん
2010/08/01(日) 02:34:46逆効果ってこたないだろうけど効果もないような気はする
0021デフォルトの名無しさん
2010/08/01(日) 08:11:03僕にはコミュニケーション能力と英語力があるので雇ってください
私はプログラミングにはTOEICが必要だと思っています
私はTOEICで900点以上目指して日々がんばっています
楽天が英語を使っているので 「今の企業は全て英語じゃないと行けない」と思いました
プログラミングなんて今時時代遅れなのです!今はコミュニケーション能力とクラウドの時代です
これからKENTWEBを使ったクラウドが沢山展開されると思っています!
KENTを利用することで大規模なクラウドが作り上げられます!
KENTを使ったホスティングサービスはクラウドというんです 私は5年前から目をつけてました
そもそもPerlなんて時代おくれです!!ですがCGI言語を使うために私はperlを使います
CGI=Perlなので CGI言語を取得すれば大丈夫です 私はIISをつかってますIISを使って高機能なサーバを提供できます
OSは一番最新なものがいいのです 私はWindows7をつかっています
CGI言語はActivePerlでかいているので・・・ あとCGI言語をみてると my our localなどuse xxx;
などと意味不明な文字が見つかります・・・なんなんでしょうねあれは かっこつけてるんでしょうか
私にはコミュニケーション能力と英語力と経営学、マネージメント力があるので
プログラミングより人をプログラミングするのです 今時TOEICをもってないプログラマはプログラマではありません
TOEICもってない英語のできない人はプログラミングがへたでしょう
あと毎日新聞読んでます あとは株などFXやって世界の事に関心をもってます
プログラミング歴はVB1年です 現在は自宅療養で職探しです
0022デフォルトの名無しさん
2010/08/01(日) 14:50:54002321
2010/08/01(日) 14:54:54聞いてますか?
0024デフォルトの名無しさん
2010/08/01(日) 16:33:24002521
2010/08/01(日) 16:51:09いまActivePerlをインストールしたんですが
最初は何入れた方が良いですか?
エディタは禿丸使ってます
0026名無し
2010/08/01(日) 17:40:13utf8のファイルをinnerTextで表示してるのに文字化けしてるなんでですか教えてください!
use strict;
use Encode::Guess;
use HTML::TagParser;
use Encode qw/from_to/;
my $html=HTML::TagParser->new("chat2.html");
my $elem=$html->getElementsByTagName("font");
my $data=$elem->innerText();
my $enc=guess_encoding($data);
print $enc->name."\n";
print $data;
ファイルの文字コードutf8ですし 読み込んだ文字も判別した結果もutf8なのに
なんで文字化けするんですか!!!教えてください!!端末の設定はutf8です!
utf8
���������(6)鐚�T
ってでます
0027デフォルトの名無しさん
2010/08/01(日) 17:48:23文字化けしないって思う方が理解できん
0028名無し
2010/08/01(日) 17:49:32早く解決方法教えろやこら?!
なあ?推測とか単語並べてんじゃねえ世早く教えロやこら!!
クソがよwwwwwなあ?wwww教えろよ派やくwwwwなあ?wwww早く教えてください
0029デフォルトの名無しさん
2010/08/01(日) 17:50:46とりあえず出力を16進数ダンプするとかfr、何が出力されてるか確認してみては
0030名無し
2010/08/01(日) 17:56:250000010: b6bd efbf bdef bfbd efbf bdef bfbd efbf ................
0000020: bdef bfbd efbf bdef bfbd efbf bdef bd83 ................
0000030: efbf bdef bfbd efbf bdef bfbd efbf bd0a ................
・・・・・・・
0031名無し
2010/08/01(日) 18:05:18教えてくださいお願いします
0032名無し
2010/08/01(日) 18:09:09文字化けしてるワードは他のやつです教えてください
0033デフォルトの名無しさん
2010/08/01(日) 18:29:27化けてる可能性はないんだろうか。
あとテスト書いた方が問題切り分けやすいよ
0034デフォルトの名無しさん
2010/08/01(日) 18:31:29たぶんchat2.htmlのcharset指定が間違ってるためだと思う
<html>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<font>超初心者チャット</font>
</html>
$ ./hoga.pl |od -x
0000000 7475 3866 e80a 878e bfef efbd bdbf bfef
0000020 efbd bdbf b6e7 efbd bdbf bfef efbd bdbf
0000040 bfef efbd bdbf bfef efbd bdbf bfef efbd
0000060 bdbf bdef ef83 bdbf bfef efbd bdbf bfef
0000100 efbd bdbf
0035デフォルトの名無しさん
2010/08/01(日) 18:33:42>>26はOS何?
0036名無し
2010/08/01(日) 18:35:32できました!!ありがとうございます!!
HTML::TagParser で取り出した文字コードは UTF-8 となります。
META タグで文字コード(エンコーディング)が指定されている場合、自動的に文字コードを UTF-8 変換します。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
って書いてあったんで UTF-8に変換してくれるとおもったら
EUCのままでしたそうじゃないんですね ありがとうございました
本当にありがとうございます
0037名無し
2010/08/01(日) 18:36:41MacOSXです^^
自分に非はありませんでした^^
0038デフォルトの名無しさん
2010/08/01(日) 18:51:55非ありまくりだろ
0039デフォルトの名無しさん
2010/08/01(日) 19:43:11^^;
0040デフォルトの名無しさん
2010/08/01(日) 21:43:47ベンチマーク探したけど、両者を比較しているのは見つかりませんでした。
というか xslate のほうは後発なんだから、高速だと主張するならTTなんかじゃなくて
mobasifと比べてほしいよね。
0041PHPヲタ
2010/08/01(日) 22:05:14まじ名前ってあんだから名前つければいいのにwwwwwばかじゃねえのほんとあほくせえ
0042デフォルトの名無しさん
2010/08/01(日) 22:29:58↑これの$;$はどういう意味ですか?
0043デフォルトの名無しさん
2010/08/01(日) 22:35:130044デフォルトの名無しさん
2010/08/01(日) 22:42:23受け取る引数の型や数を指定できるんですね。
0045デフォルトの名無しさん
2010/08/01(日) 22:54:02use foo::bar
{ package foo::bar;
my %hash
sub hash {return \%hash}
}
としてみたんだが、どうもこれはクラス変数になるっぽい
メンバ変数を追加する方法を教えてください
0046PHPヲタ
2010/08/01(日) 23:32:59しってるのに聞くてめえは老人かぼけが!!!!!!^^
0047デフォルトの名無しさん
2010/08/02(月) 22:37:10どうすればいいですか?ここで質問したら恥ずかしいと思ってます
かといってPerlの場所できいたら 初心者だなこいつ って思われるから聞きたくないです
どうすればいいでしょうか教えてください
0048PHPヲタ
2010/08/02(月) 22:44:45しねよてめえはよ!!!!!!!!!!
0049名無し
2010/08/03(火) 12:02:23$req=HTTP::Request->new(GET=>"http://xxxxxxxx.xxx/xx.html");
$res=$ua->request($req);
print "Content-Type: text/html;charset=utf-8\n\n";
print $res->content;
やっぱりこれだと 読み込んだのがEUCなので文字化けされてしまいます
charset=euc-jpに変えれば問題なく表示されるんですが
utf-8で読み込んで表示させたいです
なんかrequestで読み込むとき HTML::TagParserみたいに自動でutf8で読み込まれる方法ないんですか???
教えてください!
0050名無し
2010/08/03(火) 12:04:23おしえてください
0051デフォルトの名無しさん
2010/08/03(火) 12:32:530052デフォルトの名無しさん
2010/08/03(火) 13:06:550053デフォルトの名無しさん
2010/08/03(火) 13:10:020054名無し
2010/08/03(火) 13:26:34my $ua=LWP::UserAgent->new();
my $req=HTTP::Request->new(GET=>"xxxxxxx");
my $res=$ua->request($req);
print "Content-Type: text/html;charset=utf-8\n\n";
print encode_utf8($res->content);
出来ないです!!!!教えてください!!
0055デフォルトの名無しさん
2010/08/03(火) 13:29:490056名無し
2010/08/03(火) 13:32:22charsetもEUC-JPです
0057名無し
2010/08/03(火) 13:33:41$res->decoded_content(charset => "euc-jp");
print "Content-Type: text/html;charset=utf-8\n\n";
print encode_utf8($res->content);
すみません $res->decoded_content(charset => "euc-jp")
これぬけてました
これがあってもできません
0058デフォルトの名無しさん
2010/08/03(火) 13:43:100059名無し
2010/08/03(火) 13:52:46できました ありがとうございます
ちゃんと表示されました。
encode_utf8つかえばsocketで1行1行読みこんでもutf8にできるんですかね?
LWPで1行ずつ読み込む方法ないんですか?
requestだと一気に読み込まれてるんですが
やっぱりuse Socket;使わないと 1行単位での処理はむりでしょうか?
いちいちsocketでprnt socket "ファイルパス";みたいにするのがめんどくさいので
LWPみたいにurl指定して 1行読み込む奴無いですか?おしえてください
0060名無し
2010/08/03(火) 16:04:42教えてください!!!!!!!!
0061デフォルトの名無しさん
2010/08/03(火) 17:06:45use Encode qw(from_to);
use IO::All;
my $io = io("http://example.com");
$io->autoclose(1);
while(my $line = $io->getline){
from_to($line, 'euc-jp', 'utf8');
print $line;
}
>>60
x修飾子
0062名無し
2010/08/03(火) 17:10:09きみすごいな〜 よかったらボクの弟子になりませんか?
天才すぎるよ〜本やサイトみるより君にきいたほうがすごいからねえ
0063デフォルトの名無しさん
2010/08/04(水) 03:22:010064デフォルトの名無しさん
2010/08/04(水) 17:36:22HTML::TagParser
LWP::UserAgent の他にネットで加工する時に役に立つモジュール教えてください。
0065デフォルトの名無しさん
2010/08/04(水) 17:40:40use URI::Amazon::APA; # 弾氏作成モジュール
use LWP::UserAgent;
use XML::Simple; # http://search.cpan.org/~grantm/XML-Simple-2.18/lib/XML/Simple.pm
use YAML::Syck;
use Encode ;
0066デフォルトの名無しさん
2010/08/04(水) 17:43:54ありがとうございます。
他の人々もあったら教えてください。
0067デフォルトの名無しさん
2010/08/04(水) 19:05:50URIを相対パス→絶対パスに置換してくれるモジュールないですかね?
0068PHPヲタ
2010/08/04(水) 19:17:35てめえそんなの正規表現でやりぇお!!!!!!!!!!!
あたりまえだろ!?!!!!てめえそれでもperlやってんのか!?
モジュールとかなら質問してもいいけどなああ?そんな当たり前の素人みたいな質問してんじゃねえぞ!!!!!!!!!!!!
0069デフォルトの名無しさん
2010/08/04(水) 19:17:38URIでいいんじゃねーの? LWPあるんなら入ってるだろ。
0070PHPヲタ
2010/08/04(水) 19:19:122010/08/04(水) 19:17:35
2010/08/04(水) 19:17:38
0071デフォルトの名無しさん
2010/08/04(水) 19:50:03まさに求めていたものでした。thx
0072デフォルトの名無しさん
2010/08/05(木) 07:39:08my $a="\x{304$i}";
my $a=encode("utf-8",$a);
print $a;
これ 「あ」 ってでるはずなんだえどでません
\x{3042};だとでますが ブレースのなかで変数展開をするにはどうすればいんでしょうか?教えてください
あいうえおって表示させたいです 2ずつ繰り上げて
0073デフォルトの名無しさん
2010/08/05(木) 08:47:530074デフォルトの名無しさん
2010/08/05(木) 10:04:14my $io=io("http://xxxx.com");
while(my $line=$io->getline)
{
form_to($line,'euc-jp','utf-8');
print $line;
}
$io->close;
それやると
Can't find a class for method 'http' at test.pl line 11
ってでるんだけどな!!!
0075デフォルトの名無しさん
2010/08/05(木) 10:09:150076デフォルトの名無しさん
2010/08/05(木) 10:12:570077デフォルトの名無しさん
2010/08/05(木) 10:37:18IO::All::LWPを突っ込め
0078デフォルトの名無しさん
2010/08/05(木) 10:46:40はい隊長!!!!!!!!!!
0079デフォルトの名無しさん
2010/08/05(木) 11:00:14入れたら
できましたよ!!!!!!!!ありがとうございます!!
0080デフォルトの名無しさん
2010/08/05(木) 14:31:43もう解決しちゃったかもしれんが、
HTML::ResolveLinkっつーのがあるよ
0081名無し
2010/08/05(木) 14:32:02##################
わろす
うしね^^b
きんも
##################
use utf8;
use Encode qw(encode from_to);
open FH,"say.txt" or die "error";
our $c=0;
while(<FH>)
{
push @list,$_;
$c++;
}
close FH;
my $a="あいうえお";
print encode("euc-jp",$a);
print "\n";
print encode("euc-jp",$list[0]);
EUCで出力すると
〓〓〓〓〓〓〓〓
あいうえお
ãⅺ?ãⅺ?ãⅺ?
0082名無し
2010/08/05(木) 14:33:37my $a="あいうえお";
print encode("euc-jp",$a);
print "\n";
print encode("euc-jp",$list[0]);
これって同じじゃないんですか? ファイルから@listに読み込んだのはutf-8だし
$a="あいうえお";これもutf-8なんで2個目の
print encode("euc-jp",$list[0]);はeucに変換してるのに 文字化けするんでしょうか?
$a=あいうえお のほうはちゃんと変換できてるんですが
教えてください
0083名無し
2010/08/05(木) 14:34:53print $list[0];
my $a="あいうえお";
print encode("euc-jp",$a);
print "\n";
print encode("euc-jp",$list[0]);
でした
教えて下し
0084名無し
2010/08/05(木) 14:38:27これやったらできましたwwwwwwwwwwwwwwwwwwww
0085デフォルトの名無しさん
2010/08/05(木) 20:11:08内部文字列
覚えました 外部か読み込んだ奴はencodeするんですね。
次覚えた方が良いのありますか??教えてください!
0086デフォルトの名無しさん
2010/08/05(木) 23:01:37$io->autoclose(1);
foreach(1..7)
{
$line=$io->getline;
if($_==7)
{
from_to($line,"euc-jp","utf8");
}
}
if($line=~//)
{
decode("utf-8",$1);
print $1;
}
これを繰り返したいのですが
while(1)でかこってもできません・・・ 1回ならちゃんとマッチされた文字がかえるのですが
くりかえしやると 1回目の表示すらされません おしえてくだい
0087デフォルトの名無しさん
2010/08/05(木) 23:30:060088デフォルトの名無しさん
2010/08/05(木) 23:36:100089デフォルトの名無しさん
2010/08/05(木) 23:39:351回しか読み込まれないってことですか?
$ioのバッファクリアするにはどうすればいいんですか?
0090デフォルトの名無しさん
2010/08/05(木) 23:49:41$io->clear();
$io->close();
sleep(20);
0091デフォルトの名無しさん
2010/08/06(金) 08:29:040092デフォルトの名無しさん
2010/08/06(金) 08:57:450093デフォルトの名無しさん
2010/08/06(金) 09:19:510094デフォルトの名無しさん
2010/08/06(金) 11:40:27{
if($i==6)
{
$line=decode("euc-jp",$line);
if($line=~/(aiueo)/)
{
print $1;
}
$1をクリアして ずっと$1を使う事はできますか?
$1=undef;とやってもできませんでした
教えてください
0095デフォルトの名無しさん
2010/08/06(金) 12:17:22できません。$1は読み出し専用。マニュアルに書いてある。
ttp://perldoc.jp/docs/perl/5.10.1/perlvar.pod
# $<digits> $1 $2 $3
最後のパターンマッチで対応する括弧のサブパターンにマッチした文字列が入っているが、
既に抜けてしまったブロックでのパターンマッチは勘定に入れない。 (記憶法: \(数字) の
ようなもの。) これらの変数はすべて read-onlyで、現在の BLOCK に動的なスコープを
持ちます。
0096デフォルトの名無しさん
2010/08/06(金) 12:27:49<FONT COLOR="green"><B>aaaa</B></FONT> <B><FONT size="4" >aiueo </FONT></B>
こういうデータの <font>のなかの aiueoをとりだしたいんです 一番目の場所がaaaaではなく
aiueoだったらまずいので どうしても <font size=\"\d\" >のやつをとりだしたいんです
ですが$1つかってやると 無限ループみたいになっちゃって
my $i=0;
my $io=io("http://aaa.com/a.html");
my @a;
while($line=$io->getline || $io->getline)
{
if($i==6)
{
$line=decode("euc-jp",$line);
if($line=~/(aiueo)/)
{
print $1;
}
$i=-1;
$io->close;
}
$i++;
}
$io->close();
=========
print $1;のあとにlast;つかうと ちゃんと aiueoって表示されて終了するんですが
ログを監視したいので ずっとループさせたいです ですが$1の場合だとよみこまれません空表示
print $line;だともちろ<FONT COLOR="green"><B>aaaa</B></FONT> <B><FONT size="4" >aiueo </FONT></B>
って表示されてましてどうか教えてください
$1の代わりとか マッチ変数しりませんか?なんかどうすればいいんでしょうかreset();やってもだめでしたが
0097デフォルトの名無しさん
2010/08/06(金) 12:29:11返事ありがとうございます
なんかいい解決方法ありませんか?
0098デフォルトの名無しさん
2010/08/06(金) 12:39:570099デフォルトの名無しさん
2010/08/06(金) 12:44:15$|=1;ってこと?
0100デフォルトの名無しさん
2010/08/06(金) 12:47:360101デフォルトの名無しさん
2010/08/06(金) 12:48:200102デフォルトの名無しさん
2010/08/06(金) 12:53:02これやったらなんか できそうです
又後で質問します
0103デフォルトの名無しさん
2010/08/06(金) 13:00:08一つで解決しました!!!!!!!!!!!!!!!!!!!!
うおおおおおおおお!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!
0104デフォルトの名無しさん
2010/08/06(金) 13:04:13私ですが何か?
0105デフォルトの名無しさん
2010/08/06(金) 13:06:48ありがとう感謝するよ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
最高だよ!!!!!!!!!!!!!!!!!!
0106デフォルトの名無しさん
2010/08/06(金) 13:16:320107デフォルトの名無しさん
2010/08/06(金) 13:19:020108デフォルトの名無しさん
2010/08/06(金) 13:21:330109デフォルトの名無しさん
2010/08/06(金) 15:45:16高望みするなよ。
0110名無し
2010/08/06(金) 16:28:15了解しました!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!
!!!!!!!!!!!
!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0111デフォルトの名無しさん
2010/08/06(金) 16:29:370112名無し
2010/08/06(金) 17:42:16すみません
0113デフォルトの名無しさん
2010/08/06(金) 17:44:28コピペ化ケテーイ
0114名無し
2010/08/06(金) 17:51:25意味文恵
い み ふ み え
0115デフォルトの名無しさん
2010/08/06(金) 23:52:00つーか、もういっぱいいっぱいだろ。
0116名無し
2010/08/06(金) 23:56:43うぜえんだよしね
0117名無し
2010/08/07(土) 00:04:15誰に言ってるのかな?
どこが悪いとかいってみ?な?おめえの判断がむかつくんだよ みすかされてるみたいでよなあ
おめえ strictとかきにしてるばかくそばかだろ?何番目のレスのコードがわるいかいってみ?
いっぱいいっぱいとかウゼエなお前は死んじまえよ速く レスじゃなくて 他のこいってるのかな?
お前死ねよな?クソがネット社会や著名人にすがりついていきがってんじゃねえよかす
その筋悪とか伸びしろとかいわれるとむかつくんだ 謝れ 謝罪しろ
いっぱいいっぱいとか 謝罪しろ お前マジ死んでほしい
0118デフォルトの名無しさん
2010/08/07(土) 00:14:530119デフォルトの名無しさん
2010/08/07(土) 00:23:450120デフォルトの名無しさん
2010/08/07(土) 11:39:16行末改行を削除したいのですが、-lオプションの使い方が間違ってるのかうまくいきません。
初歩的な質問で申し訳ないですが、どうやればいいか教えて下さい。
0121デフォルトの名無しさん
2010/08/07(土) 12:39:30無難に行けば良いんじゃないだろうか。
perl -e 'print map{chomp; $_} <>'
0122デフォルトの名無しさん
2010/08/07(土) 12:53:05もっと短くかけるよ
p -e 'p m{c;$_}<>'
0123デフォルトの名無しさん
2010/08/07(土) 13:10:56$ha{'hoge'} って感じで ' ' で囲うけど、ここって
囲わなくても正常に動作しちゃうよね。
これって仕様? それとも糖衣構文?
0124デフォルトの名無しさん
2010/08/07(土) 13:31:050125デフォルトの名無しさん
2010/08/07(土) 14:03:180126デフォルトの名無しさん
2010/08/07(土) 14:05:48書いてあるHPとかある?
仕様といわれてもソース無しだと納得できん
0127デフォルトの名無しさん
2010/08/07(土) 14:14:39$a = hoge ;
ってエラーになんないんだな。いいのかこれ。
0128デフォルトの名無しさん
2010/08/07(土) 14:40:070129デフォルトの名無しさん
2010/08/07(土) 15:49:250130デフォルトの名無しさん
2010/08/07(土) 17:30:04use strict; つけてもbarewordって有効になっちゃう・・・
うちのperlがバグってんのか
0132デフォルトの名無しさん
2010/08/07(土) 19:10:06夏だね^^;
0133デフォルトの名無しさん
2010/08/07(土) 19:17:160134デフォルトの名無しさん
2010/08/07(土) 19:19:17そんなの昔からしってましたし^^;(汗
0135デフォルトの名無しさん
2010/08/07(土) 19:21:25なんでですか(笑) バカ企業人さん教えてください^^;
0136デフォルトの名無しさん
2010/08/07(土) 19:28:140137デフォルトの名無しさん
2010/08/07(土) 19:57:20NG出来ない
0138デフォルトの名無しさん
2010/08/07(土) 19:59:41とかやって実行結果取得したときの結果から改行を取るのって
やっぱchopとかchompとかしかないの?
0139デフォルトの名無しさん
2010/08/07(土) 20:36:04そんな簡単な事質問するまでの事か七?
0140デフォルトの名無しさん
2010/08/07(土) 20:55:32正規表現で置換するか、分割して結合するか
ってのもあるけど、格好悪いじゃん。
0141名無し
2010/08/07(土) 21:24:40print $u;
^^;
0142名無し
2010/08/07(土) 21:26:47print $u;
これで改行がスペースにかわるよ^^;
0143名無し
2010/08/07(土) 21:32:20どういうことだね!?!!!!!!!!!!!!!!!!!!!僕はニートみたいなもんだぞ!!!!!
0144名無し
2010/08/07(土) 21:34:191、頭が良すぎた
2、努力
3、問題が低レベルすぎた
^^;
0145デフォルトの名無しさん
2010/08/07(土) 21:37:550146デフォルトの名無しさん
2010/08/07(土) 21:39:26〜か 〜だな って僕が言えば回避できませんね(笑)
0147デフォルトの名無しさん
2010/08/07(土) 21:44:51私はパイナップル味とコーラ味が好きです
今日はマスカット・アレキサンドリア味食べたら美味しかったです
ガリガリきみが40円台で買えるから嬉しいです きみ等も食べたまえ
0148デフォルトの名無しさん
2010/08/08(日) 12:55:27あと、Perlのメリットって何ですか?
どなたか教えてください。
0149デフォルトの名無しさん
2010/08/08(日) 16:56:46いまからインストールしますとかいってるやつにはメリットは無い。
0150デフォルトの名無しさん
2010/08/08(日) 17:25:39Active perlいれろと言われたんですが ダウンロード先とかがわからないです
英語が苦手なので
DOSプロンプトとかでインストールしたりしますか?あまりPCいじったことないので
メリットどうこう、そういうのは人によって違うのでは?こちらが悪いならあやまります。
すみません。
0151デフォルトの名無しさん
2010/08/08(日) 17:31:56研究でPerlを使うので、10日までに入れないと間に合いません。
インストール方法教えてくれる人が要らしたらご教授ください。
0152120
2010/08/08(日) 18:01:40http://www.activestate.com/activeperl/downloads
0154152
2010/08/08(日) 18:04:46×151
○152
0155デフォルトの名無しさん
2010/08/08(日) 19:45:53そこ見ました。
どれをダウンロードすればいいんですか?
時間的に足りるか心配です。
0156デフォルトの名無しさん
2010/08/08(日) 19:47:22Yahoo知恵袋でやってろよ
0157デフォルトの名無しさん
2010/08/08(日) 20:05:00多分、「Download ActivePerl 5.12.1 for Windows (x86)」って書いてあるボタン。
0158PHPヲタ
2010/08/08(日) 20:09:59おめえ最高ノバカだなwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
やっぱりWindows使ってるやつってろくにインスコできねえしかすすぎwwwww
しかもそれで研究とかごみwwwwwwww
アホだろwwwwwwwwwwwwwwwwwwwwwww
本当ごみだなwwwww技術的な質問ならいいのに インストできいてるばかwwwww
インストもできない Windows使ってるばかはこれだからだめなんだよwwww
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
Yahooの珍言袋で聞いてろよwwwwwwwwwwwwwwwwwwwwwwwwwwww(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
0159デフォルトの名無しさん
2010/08/08(日) 20:51:430160デフォルトの名無しさん
2010/08/09(月) 12:44:220161デフォルトの名無しさん
2010/08/09(月) 15:40:18・高木浩光
・牧大輔
・池?智洋
・山口徹
・大沢和宏
・伊勢幸一
0162デフォルトの名無しさん
2010/08/09(月) 16:10:14? じゃねえよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0163デフォルトの名無しさん
2010/08/09(月) 16:13:300164デフォルトの名無しさん
2010/08/09(月) 16:19:240165デフォルトの名無しさん
2010/08/09(月) 17:55:490166デフォルトの名無しさん
2010/08/09(月) 19:27:120167デフォルトの名無しさん
2010/08/09(月) 20:12:040168デフォルトの名無しさん
2010/08/09(月) 20:29:54標準出力や標準エラー出力なんかどうでもいい。
0169デフォルトの名無しさん
2010/08/09(月) 20:37:560170デフォルトの名無しさん
2010/08/09(月) 20:39:03サンキュー
0171デフォルトの名無しさん
2010/08/09(月) 20:50:44$u=<FH>;だけでいいだろ
おまえばか?
>>168
禁術をおおしえてやろう火遁
$u=system("ls|true")?$?:$?;
print $u;
0172デフォルトの名無しさん
2010/08/09(月) 20:55:57オープンとクローズがうっとおしいので
0173デフォルトの名無しさん
2010/08/09(月) 21:05:05コマンドつかえよなああああああ
がりがりくん食ってて片手でうってるから思いつかねえんだよ
0174デフォルトの名無しさん
2010/08/09(月) 21:21:55ところでついでに質問なんだけどさ、
<FH>;
だけで$_に入るんだとばっかり思ってたけど実際には
$_=<FH>;
って書かないと入らないんだな。知ってた?
0175デフォルトの名無しさん
2010/08/09(月) 21:22:48なめてんのか?
0176デフォルトの名無しさん
2010/08/09(月) 21:25:22で本題なんだけど、なんで while(<FH) とかだと $_ に入るの?
0177デフォルトの名無しさん
2010/08/09(月) 21:28:280178デフォルトの名無しさん
2010/08/09(月) 21:28:510179デフォルトの名無しさん
2010/08/09(月) 21:29:19これ結構 謎なんだけど <FH>だけでは$_に入らないのに
while( $_=条件式 )みたいな隠れ代入があるわけ?
でももしそうならwhile(1)の中は$_=1になっちゃうよね?
0181デフォルトの名無しさん
2010/08/09(月) 21:32:30入力シンボルだけが while ループの条件文の中にある場合は (そしてこの場合にかぎり)、 値は変数"$_" に自動的に代入されます。
ほんと例外的な仕様だったんだなー。勉強になったわ。
0182デフォルトの名無しさん
2010/08/09(月) 21:41:510183デフォルトの名無しさん
2010/08/09(月) 21:46:450184デフォルトの名無しさん
2010/08/09(月) 21:48:02http://d.hatena.ne.jp/perlcodesample/20100228/1269445781
ここ最高だぞ^^
0185デフォルトの名無しさん
2010/08/09(月) 21:55:23詳しく書いてなかったぞ
0186デフォルトの名無しさん
2010/08/09(月) 22:03:39へりくつほざいてんじゃねえぞこら
0187デフォルトの名無しさん
2010/08/09(月) 22:15:00俺が持ってるのは第三版でpp.104-105に詳しく書いてある
版が違うか別の本の話をしてるのかもね
0188デフォルトの名無しさん
2010/08/09(月) 22:17:030189デフォルトの名無しさん
2010/08/09(月) 22:29:000190デフォルトの名無しさん
2010/08/09(月) 23:18:46質問したからこたえてね @_@
0191デフォルトの名無しさん
2010/08/09(月) 23:19:140192デフォルトの名無しさん
2010/08/09(月) 23:25:44異星人乙津
0193デフォルトの名無しさん
2010/08/09(月) 23:27:27はてなでやれ
0194デフォルトの名無しさん
2010/08/09(月) 23:28:23おおめえどこまで つれてくんだよ
つぎはライブドアでやれ
アメブロでやれ
グリーでやれとかなあ????
0195デフォルトの名無しさん
2010/08/09(月) 23:43:030196デフォルトの名無しさん
2010/08/09(月) 23:50:05wwwwwwwwwwwwww
wwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwww
0197デフォルトの名無しさん
2010/08/10(火) 00:51:580198デフォルトの名無しさん
2010/08/10(火) 04:08:30UNIX版 perl -e'print"\"$_\","for 0..9,A..Z,a..z'
WIN 版 perl -e"print\"'$_',\"for 0..9,A..Z,a..z"
望んでいる出力結果
"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
いわゆるGolf的なことがしたいのです。
シングルクオートでもダブルクオートでも構いません。ただしきちんとクオートが対応していることが条件とします。
0199デフォルトの名無しさん
2010/08/10(火) 05:42:400200デフォルトの名無しさん
2010/08/10(火) 10:27:36phpのfile関数みたいなのがほしい
0201デフォルトの名無しさん
2010/08/10(火) 10:34:560202☆忍者Perl☆ ◆M5ZWRnXOj6
2010/08/10(火) 11:45:28var GET_amp = '_%%amp%%_';
これってどういういみ?
PerlやってるやつでJavascriptやってる人いるだろ?なあ?教えてください
eqとampって最初からあるやつだよな? %%なんで2個つけてるの?おしえて
0203デフォルトの名無しさん
2010/08/10(火) 17:33:580204デフォルトの名無しさん
2010/08/10(火) 19:22:58ありがとうございます。
でも、微かに長くなりました
UNIX版
perl -e'print qq("$_",)for 0..9,A..Z,a..z'
perl -e'print"\"$_\","for 0..9,A..Z,a..z'
Win版
perl -e"print qq('$_',)for 0..9,A..Z,a..z"
perl -e"print\"'$_',\"for 0..9,A..Z,a..z"
引数の省略を上手く使えたら良いのですがなかなか上手くいかないですねぇ
あとprintが長すぎ。`echo `も上手くは使えないですねぇ
perl -e'print qq(").join(qq(","),0..9,A..Z,a..z).qq(",)'
perl -e'for(0..128){print"\"".chr."\","if chr=~/[a-zA-Z0-9]/}'
↑こんなのも書いてみました
0205☆忍者Perl☆ ◆M5ZWRnXOj6
2010/08/10(火) 20:40:46めんどくさそうだし しょぼそうだし
ファイルにかいたほうがいいしね^^;
0206perl ninja ◆M5ZWRnXOj6
2010/08/11(水) 00:24:020207デフォルトの名無しさん
2010/08/11(水) 16:47:06数独を解くプログラムを作っているのですが2つ数字が入ったところで止まってしまいます
どうしたらよいかお教えください
q001.txtの中身はこれです↓
004001020
000300005
507060400
030009008
005020600
600700040
003050102
900004000
060100300
よろしくお願いします
0208デフォルトの名無しさん
2010/08/11(水) 16:49:20一番手っ取り早いのは、動かないコードを捨てて動くコードを使う。
例えばココとか。
ttp://spring.sakurasaita.net/perl/28.html
0209☆忍者Perl☆ ◆M5ZWRnXOj6
2010/08/11(水) 22:02:28かきくけこ
わおん
まで表示するのって
my @a=unpack("C*","あ");
$a[2]+=2;
とかやって繰り返すしかないの?
簡単な方法あったらおしえて
0210デフォルトの名無しさん
2010/08/12(木) 01:26:05Exifを全て削除したいのですが、どうすればいいのですか?
0211デフォルトの名無しさん
2010/08/12(木) 02:00:030212☆忍者Perl☆ ◆M5ZWRnXOj6
2010/08/13(金) 15:52:41彼の作成した「ちりりduke」は現在、掲示板荒らし系スクリプトの中で最も高性能であるとされている。
VVSってやつここにいるの?誰だ?Perlやってるしwwww
http://ja.wikipedia.org/wiki/VVS
きになる忍刀とかのなかにはいないよね?
0213デフォルトの名無しさん
2010/08/14(土) 00:43:13そろそろうざいわ
言っとくけど俺をあまりナメないほうがいいよ
VIPでコテハンやってるしクソコテ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね
0214デフォルトの名無しさん
2010/08/14(土) 08:16:220215デフォルトの名無しさん
2010/08/15(日) 09:09:41同じ意味になると思ってるんですが、間違っていますか?
0216▲☆◎Perl忍者◎☆▼ ◆M5ZWRnXOj6
2010/08/15(日) 14:43:240217デフォルトの名無しさん
2010/08/17(火) 14:48:39いいから早く潰してみせろよバカ
0218デフォルトの名無しさん
2010/08/17(火) 15:00:07文字列リテラルとして意味は同じなので、あとは書いた奴に聞けとしか。
'...'をさらに文字列化しようとするとエスケープとかめんどくさいけど
q{..}ならバランス見てくれるので楽という人はいた。
俺ならはじめから単に 1 と書くけどな。
0219デフォルトの名無しさん
2010/08/17(火) 15:45:55use strict;
my @file=<*.jpg>;
my $i=0;
my @list;
foreach (@file)
{
my $time=(stat "$_")[9];
my ($sec,$min,$hour,$day,$mon,$year)=localtime($time);
$year+=1900;
$mon++;
$list[$i]=join ":",($year,$mon,$day,$hour,$min,$sec);
$i++;
}
map {print "$_\n"} sort @list;
2010:8:16:21:32:24
2010:8:16:22:9:22
2010:8:8:14:53:47
2010:8:9:12:23:59
これを日付の昇順でやりたいんですが でません 教えてください
0220デフォルトの名無しさん
2010/08/17(火) 15:50:500221デフォルトの名無しさん
2010/08/17(火) 15:53:59絶対楽だと思うぞ。表示用の文字列を作るのは最後にしろ。
0222デフォルトの名無しさん
2010/08/17(火) 15:58:06これってアップローダでファイルをcopy()して新しい順にするときは
↑の方法で良いんですか?
perlでアップローダつくってて そのとき10件ずつ画像表示させたいんです
これで日順にして もしファイルが14個とかだったら 10個表示して次のページとかやりたいんですが
なんかモジュール使うんでしょうか? 引数で xxx.cgi?next=1 これで10県表示で
とかやって残りの4件を表示ささせるやりかたは next=2ってやるんですか?
ファイルが14個あって (最大10個表示)そして最初のページに10個表示させて
あまりの4個は次のページみたいに表示させたいんですが
お教えください
0223デフォルトの名無しさん
2010/08/17(火) 15:59:430224デフォルトの名無しさん
2010/08/17(火) 16:14:02my $time=(stat "$_")[9];
で$timeに入れてる数のことだよ。1970年1月1日0時0分0秒(UTC)からの
秒数で表した日時で、1つの数だから大小比較や足したり引いたりが楽。
つーかわかっててlocaltimeで変換してたんじゃないんかい。
0225デフォルトの名無しさん
2010/08/17(火) 16:57:16上記の計算結果が割り切れ無ければ、ページ数を1足す
(この余りが幾つかは気にしなくていい)
全データ件数−(最初に割り出したページ数×1ページに表示させたい件数)=最後のページの件数
全ページ数の範囲外のページ指定は1ページ目にしてしまう
0226デフォルトの名無しさん
2010/08/17(火) 17:21:030227デフォルトの名無しさん
2010/08/17(火) 17:26:43めんどくさいのでこれ使うと楽だよ。
0228デフォルトの名無しさん
2010/08/17(火) 17:26:49ネットではお前 おいクソで良いけど リアルでは君かさんずけしろクソ^-^
あああそうか そういういみね 11223434333みたいな数値ね 文字だけだったからみのが
>>225
やっぱ割ればいいのかあ
そういう公式どっかにのってるの??
きみあたまいいね〜〜〜〜
0229デフォルトの名無しさん
2010/08/17(火) 17:33:15逆鱗にふれたようだねえきみは
クソガリそうだけど 殴りアイする?
ぼこぼこになるよ君 プログラマに鳴りたくてもなれない奴いんだからな
てめえは死んでほしいよ
0230デフォルトの名無しさん
2010/08/17(火) 18:32:510231デフォルトの名無しさん
2010/08/17(火) 19:51:200232デフォルトの名無しさん
2010/08/17(火) 20:29:01小学校からやり直した方がいいんじゃね?
0233デフォルトの名無しさん
2010/08/17(火) 21:07:55Pass長16文字くらいまでしか対応できないのでしょうか?
(20字以上ログイン失敗、17〜19字は未確認)
どこか参考になるドキュメントとかあれば教えてください。
0234デフォルトの名無しさん
2010/08/17(火) 21:32:360235デフォルトの名無しさん
2010/08/17(火) 22:15:00英語ばりばり クソイですねえしらべますかあ
0236デフォルトの名無しさん
2010/08/17(火) 22:26:110237233
2010/08/18(水) 00:56:41すみません、情報不足でした。
IEでログインして、そのままhotmail(WindowsLive)を使いたいのです。
「ブラウザとして振舞う」事は出来ても、そのセッションをIE/Fxで使ったりできませんよね?
・・・と確認してたらWin32::IEAutomationなるものを見つけましたので、調べて見ます。
(ぶっちゃけランダムな英数記号16字のパスワードで何も問題ないのですが・・・)
0238デフォルトの名無しさん
2010/08/18(水) 08:44:52LWPにHTTP::Cookies::Microsoftて入ってるだろ
0239デフォルトの名無しさん
2010/08/18(水) 12:46:40教えて
[% %]これよくみかけるど
0240デフォルトの名無しさん
2010/08/18(水) 13:00:1310県表示みたいな
0241デフォルトの名無しさん
2010/08/18(水) 13:07:470242デフォルトの名無しさん
2010/08/18(水) 13:20:06ファイルが14個あったら ファイルをリストに保存するんですよね?
それでunix timeで並び替えて
@a=(ファイル14個);
my $page = Data::Page->new($total_entries, $entries_per_page, $current_page);
my $page = Data::Page->new($#a+1, 10);
どうやって使っていいか分からない
10個になるまで 表示させて 次のページ 前のページってやるんだけど
10こ表示したとかカウントはどうするの?
<img src="xxxx.jpg"><img src="xxxx.jpg"><img src="xxxx.jpg">とかを10個ちゃんと認識してくれてるの?
意味が分からないんですが教えてください
0243デフォルトの名無しさん
2010/08/18(水) 13:31:35といったら何番から何番の要素を出せばいいかって計算
するだけで、実際にその数字にしたがって物を揃えたり
表示したりするのは使う人の仕事だよ。
0244デフォルトの名無しさん
2010/08/18(水) 14:40:00xxx.cgi?page=$xx->next_pageみたいに
0245デフォルトの名無しさん
2010/08/18(水) 14:56:08うん
0246デフォルトの名無しさん
2010/08/18(水) 16:08:55use strict;
use CGI;
use Data::Page;
my $page=Data::Page->new(20,5);
my $next=$page->next_page;
my $back=$page->previous_page;
print "Content-type: text/html\n\n";
print <<"HTML"
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Page</title>
</head>
<body>
<a href="./test.cgi?page=$next">次のページ</a>
<br>
<a href="./test.cgi?page=$back">前のページ</a>
</body>
</html
HTML
これ次のページやっても ずっと 2のまま
20/4で5ページまで表示されるはずなのに
何でか教えてください
0247デフォルトの名無しさん
2010/08/18(水) 16:11:213、4、5ってなってほしいんですが 次のページのリンクのやつが
0248デフォルトの名無しさん
2010/08/18(水) 16:26:20+1の意味知ってる人居ますか?
+1って何だったか教えてください
0249デフォルトの名無しさん
2010/08/18(水) 17:04:40全項目数とページあたりの項目数しか指定してないだろ。
現在のページが何ページか指定しなかったらデフォルトの
1ページ目になるのでずっとそのままだぞ。
$page->current_page(現在のページ);
で設定しろな。
0250デフォルトの名無しさん
2010/08/18(水) 17:18:14うひぃひょ〜〜〜〜〜〜〜〜できたよ〜〜
my $cgi=CGI->new();
my $current=$cgi->param("page");
my $page=Data::Page->new(20,5,$current);
きみあたまいいな〜
0251デフォルトの名無しさん
2010/08/18(水) 19:32:55perl最高!!とか思ってたりするんですか?教えてください
0252デフォルトの名無しさん
2010/08/18(水) 19:39:47うん
0253デフォルトの名無しさん
2010/08/18(水) 20:16:120254デフォルトの名無しさん
2010/08/18(水) 20:58:28などネットワーク系?CPANのモジュール?
これしか知らないけどなにかある?
>>253
そういうひともいるみたいですねえ〜^ ー^
0255デフォルトの名無しさん
2010/08/18(水) 20:59:25上のだとありがちだから
0256デフォルトの名無しさん
2010/08/19(木) 16:58:04それでもperlはよく使います。
0257デフォルトの名無しさん
2010/08/19(木) 21:09:060258デフォルトの名無しさん
2010/08/19(木) 22:15:160259デフォルトの名無しさん
2010/08/20(金) 10:51:09これって略したりできませんか?
正規表現みたいに
f/*.jpe?g||*.png
みたいにやりたいんですが
0260デフォルトの名無しさん
2010/08/20(金) 11:08:42出来合いのは知らないけど
*CORE::GLOBAL::glob = \&適当な関数
でオーバーライドできるから好きなの書けばいいんじゃないか?
0261デフォルトの名無しさん
2010/08/20(金) 11:10:53頭良いねえ
0262デフォルトの名無しさん
2010/08/20(金) 11:40:19こっちのほうがはやいかな^^;
考えるより
0263デフォルトの名無しさん
2010/08/20(金) 12:09:400264デフォルトの名無しさん
2010/08/20(金) 12:14:37拡張子がそれだとうまくとれないんだよね
他の名前のファイルはいるからね
グロブで正規表現使えたら最高だけどね^
0265デフォルトの名無しさん
2010/08/20(金) 15:46:50それ以上のことがやりたきゃ他の方法と併用するのが筋だと思う
というか>>263でだめな理由がわからん
0266デフォルトの名無しさん
2010/08/20(金) 16:19:10>>263
0267デフォルトの名無しさん
2010/08/20(金) 17:15:22頭の良い人はそういうところまで考えるんですよ
0268デフォルトの名無しさん
2010/08/20(金) 22:55:12ここの
__DATA__
@@ index.html.ep
<%= $message %>
や@@とか% %とか_DATA_とかなんですか?
なんかよくわからないんですが検索してもひっかからないし
意味教えてくださいお願いします。
0269デフォルトの名無しさん
2010/08/20(金) 23:11:14__DATA__から先の部分はDATAというファイルハンドルで読み込むことができる。
perlとして決まってるのはここまでで、読んだ後どう使われるかはプログラム次第。
0270デフォルトの名無しさん
2010/08/20(金) 23:43:090271デフォルトの名無しさん
2010/08/21(土) 09:45:27たぶんそれを目印にしてなんか加工するプログラムなんだろうけど、それは
プログラムを読んで理解しろってことだ。perlとしてはただの文字列。
0272デフォルトの名無しさん
2010/08/21(土) 10:20:54簡単な解説もあったよ
http://d.hatena.ne.jp/perlcodesample/20091217/1260183022
ちなみにこれなんかと似てる
http://jp.rubyist.net/magazine/?0017-BundledLibraries
0273デフォルトの名無しさん
2010/08/21(土) 10:54:38とりあえずここ。
ttp://wiki.livedoor.jp/mojolicious/
0274デフォルトの名無しさん
2010/08/21(土) 11:34:46print map { s/^(.+)$/「$1」\n/g, $_ } @arr;
実行結果
1「foo」
1「bar」
この"1"はどこから出てきて、どうすれば消えるのでしょうか?
0275デフォルトの名無しさん
2010/08/21(土) 11:45:22↑
foreachで書き直すとこうなってる
foreach (@arr){
print (s/^(.+)$/「$1」\n/g, $_);
}
printに(s/^(.+)$/「$1」\n/g, $_)のリストが渡されてる
だから1はs/^(.+)$/「$1」\n/gの評価結果
1を消したいなら、
print map { s/^(.+)$/「$1」\n/g, $_ } @arr;
ではなく
print map { s/^(.+)$/「$1」\n/g; $_ } @arr;
にすればいい
コンマでなくセミコロンで区切る
0276デフォルトの名無しさん
2010/08/21(土) 11:47:321はs///gで置き換えられた要素の数。
s///gの後がセミコロンじゃなくてコンマになってるせいで
mapの返り値が (1, "「foo」\n", 1, "「bar」\n") になってる。
0277デフォルトの名無しさん
2010/08/21(土) 11:48:17s///の戻り値。(1回置換したから1)
方法はいくつかあるけど、簡単なのは「,」じゃなくて「;」にしろ。
print map { s/^(.+)$/「$1」¥n/g; $_ } @arr;
0278デフォルトの名無しさん
2010/08/21(土) 11:48:570279デフォルトの名無しさん
2010/08/21(土) 11:49:07>>276
>>277
誰の説明が一番わかりやすかった?
0280デフォルトの名無しさん
2010/08/21(土) 11:49:23しかも全員説明が違うw
0281忍者Perl ◆M5ZWRnXOj6
2010/08/21(土) 11:55:340282デフォルトの名無しさん
2010/08/21(土) 11:55:590283デフォルトの名無しさん
2010/08/21(土) 11:57:490284274
2010/08/21(土) 12:06:32ありがとうwww
いや、すみません、思わず草生やしたくなりました。
久しぶりにmap使ったので「;」で区切ることを完全に忘れてました。
>>279
>>275はとても丁寧でした。最初真偽が返ってるのかと思ったけど、評価数なのですね。
>>276はとても簡潔で、原因もずばり突いてくれてるので分かりやすかったです。
>>277もとても簡潔で、初心者には一番理解しやすいかもしれませんね。
0285グリー社員 ◆M5ZWRnXOj6
2010/08/21(土) 12:08:19wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!wwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!wwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!wwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!シュッシュッシュパネーーーーーーーーーーッス!!wwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
0286デフォルトの名無しさん
2010/08/21(土) 12:10:40Larryがコミケでプリキュア同人誌の売り子やってた
0287デフォルトの名無しさん
2010/08/21(土) 17:59:320288デフォルトの名無しさん
2010/08/21(土) 18:10:090289デフォルトの名無しさん
2010/08/21(土) 18:25:560290忍者Perl ◆M5ZWRnXOj6
2010/08/21(土) 23:26:48\$aって$aのリファレンスですが
$a=[ {a=>10,b=>20},{u=>30,i=>40}];
これってなんていえばいいんですか?
無名ハッシュの無名配列っていうんですか?
読み方が分からないです教えてください。
0291デフォルトの名無しさん
2010/08/22(日) 03:40:060292デフォルトの名無しさん
2010/08/23(月) 12:24:09シェルで perl xx.plっていうのを新規ウインドウを立ち上げまくってやるのが大変です
っでwhileで繰り返しやってsystem(perl xx.pl)ってやっても1回しか起動されず
どうやれば一気に起動して実行することができるのでしょうか?
教えてください
0293デフォルトの名無しさん
2010/08/23(月) 13:23:070294デフォルトの名無しさん
2010/08/24(火) 01:14:110295デフォルトの名無しさん
2010/08/24(火) 03:16:03system("$^X xx.pl &")
0296デフォルトの名無しさん
2010/08/24(火) 11:28:46ヒアドキュメントってやつ?
ヒアじゃない感じだけど
0297デフォルトの名無しさん
2010/08/24(火) 12:01:49open my $FH "< hoge";
はOKなのに
open my FH "< hoge";
がNGなのはなぜ?
0298デフォルトの名無しさん
2010/08/24(火) 13:25:130299Perl忍者 ◆M5ZWRnXOj6
2010/08/24(火) 13:33:12そんなのもわからないの?
知恵おくれ(笑)
0300デフォルトの名無しさん
2010/08/24(火) 19:33:50出来れば回答おねがいします
0301デフォルトの名無しさん
2010/08/24(火) 19:41:340302デフォルトの名無しさん
2010/08/24(火) 20:01:36というか、どうしてファイルハンドラをレキシカルスコープで
持てるようになってないの? ラリーさん耄碌してるの?
0303デフォルトの名無しさん
2010/08/24(火) 20:09:06open local(*FH), "<", "/etc/passwd";
0304デフォルトの名無しさん
2010/08/24(火) 20:15:33ありがとう。 さすがラリーさん、しっかりしてるわ。
0305デフォルトの名無しさん
2010/08/24(火) 21:43:350306デフォルトの名無しさん
2010/08/24(火) 23:05:230307デフォルトの名無しさん
2010/08/25(水) 08:41:140308Perl忍者 ◆M5ZWRnXOj6
2010/08/25(水) 08:59:260309デフォルトの名無しさん
2010/08/25(水) 09:03:250310Perl忍者 ◆M5ZWRnXOj6
2010/08/25(水) 09:09:40自分が答えられないモノがあると
「何がしたいのかわからない っで? 答え用が無い 何を求めてるのか分からない」
まじ簡単なものは クソ詳しく熱弁するけど 難しい質問には
>>309
みたいにクソみたいな答えかたしかできない(苦笑)
0311デフォルトの名無しさん
2010/08/25(水) 09:39:05分かるように説明してくれたら回答するよ。
お前も回答してやれ。
0312デフォルトの名無しさん
2010/08/25(水) 09:51:00ていうか、ほんとうにわからないの?馬鹿なのは君じゃないのか?
0313デフォルトの名無しさん
2010/08/25(水) 11:15:52localはダイナミックスコープだし、型グロブはグローバルスコープ。
だから、レキシカル変数にファイルハンドルを渡せば解決。
という理解なんだが、求めるものは違うわけだろ?
0314Perl忍者 ◆M5ZWRnXOj6
2010/08/25(水) 11:23:24勘違い妄想 幻術にかかってるwwwwwwwwwwwwwww
いますぐ俺のレスみて 「解!!!!!!!!!!!」って叫んだ方が良いよ(苦笑)
0315Perl忍者 ◆M5ZWRnXOj6
2010/08/25(水) 11:28:20309 :デフォルトの名無しさん:2010/08/25(水) 09:03:25
何を求めてるのか分からないから、答えようがない。
312 :デフォルトの名無しさん:2010/08/25(水) 09:51:00
>>309
ていうか、ほんとうにわからないの?馬鹿なのは君じゃないのか?
0316デフォルトの名無しさん
2010/08/25(水) 12:56:15>レキシカル変数にファイルハンドルを渡せば解決。
内部でダブらないようにユニークなファイルハンドルを
作ってるって解釈でいいの?
0317Perl忍者 ◆M5ZWRnXOj6
2010/08/25(水) 14:23:11ともだちコード 2149 7693 9978
【対戦ルール 6on6 シングル
【対戦レベル】50
【使用ロム】ハートゴールド
【ボイスチャット】×
募集します。
対戦したいやつはコード教えて下さい
0318デフォルトの名無しさん
2010/08/27(金) 21:28:48my $isbn13 = length( ARGV[0]) eq 13 ? ARGV[0] : die( "13keta");
これでは動きません。
どのようにかけばいいのでしょうか?
0319デフォルトの名無しさん
2010/08/27(金) 21:37:090320デフォルトの名無しさん
2010/08/27(金) 21:39:00if(!defined($isbn13)){
〜エラー処理〜
}
丁寧にやるならこんな感じかな?
0321デフォルトの名無しさん
2010/08/27(金) 21:40:44以後、誤字には気をつけます・・
0322デフォルトの名無しさん
2010/08/27(金) 21:43:24length $isbn13 == 13 or die "13桁で入力しろってんだよボケカス";
これでいいだろ
0323デフォルトの名無しさん
2010/08/28(土) 00:14:42でいいような気もしなくは無い
0324nipotan ◆M5ZWRnXOj6
2010/08/28(土) 08:02:43* +
. / ーーーーーーーーーーーーーーー\
/ _,,,... ヽ;: /""ヽ ヽ .
+ | ;'" "\ l /;:;;:::-'''"ヽ, i *
. | /::::::::-'''''"~ ヽ, .|,
. | |;:" ヽ ! . +
| / | |
* | 人 ,,,,;;::''''' i, | .
| '; ,,,,;;::::::::::;;; .: ,,,,,, ヽ ヽ
| | " ,,,,,,,,, .:: ;''“”` | | * 「フッ use strict 使わないとライブドアとか入れない。」
+ | |: ;::''“”“~` ::::. |. i .
| i:: ::::: i | ,;| +
| ヽ. ::::::: , _〉 .| ,| .
+ | ノ:: | |, .
| 人::::.. ___,,,,,,,,...:;-' | | +
.. * |;:'" `、ヽ '"''=.:;;:;ノ゛ / | +
| ヽ:: \ :::::: ./ | .
::;|::. `ヽ、_ /'|ヽ./"
+ ,/. ::::::::::::;;:::人:. `'''----―'' .|: ヽ *
/;:;:;:;;:;;;;;;;;;;;;/ `ー、 ;-'" \ー-、
. ,.-'" \ \ ;:-''" .| `-:;;,,
0325デフォルトの名無しさん
2010/08/28(土) 09:31:270326nipotan ◆M5ZWRnXOj6
2010/08/28(土) 10:43:37* +
.
/ _,,,... ヽ;: /""ヽ ヽ .
+ | ;'" "\ l /;:;;:::-'''"ヽ, i *
. | /::::::::-'''''"~ ヽ, .|,
. | |;:" ヽ ! . +
| / | |
* | 人 ,,,,;;::''''' i, | .
| '; ,,,,;;::::::::::;;; .: ,,,,,, ヽ ヽ
| | " ,,,,,,,,, .:: ;''“”` | | * 「フッ use strict 使わないとライブドアとか入れない。」
+ | |: ;::''“”“~` ::::. |. i .
| i:: ::::: i | ,;| +
| ヽ. ::::::: , _〉 .| ,| .
+ | ノ:: | |, .
| 人::::.. ___,,,,,,,,...:;-' | | +
.. * |;:'" `、ヽ '"''=.:;;:;ノ゛ / | +
| ヽ:: \ :::::: ./ | .
::;|::. `ヽ、_ /'|ヽ./"
+ ,/. ::::::::::::;;:::人:. `'''----―'' .|: ヽ *
/;:;:;:;;:;;;;;;;;;;;;/ `ー、 ;-'" \ー-、
. ,.-'" \ \ ;:-''" .| `-:;;,,
0327nipotan ◆M5ZWRnXOj6
2010/08/28(土) 10:45:52君はミスドでアルバイトしてなさい!!!!!!
0328nipotan ◆M5ZWRnXOj6
2010/08/28(土) 10:55:020329nipotan ◆M5ZWRnXOj6
2010/08/28(土) 11:00:48CTOの座を狙っています
この前はホリエと一緒に中2病発症して バイクのって総合格闘技見てきました
30代デビューです
口癖は 「〜とか」 です
0330nipotan ◆M5ZWRnXOj6
2010/08/28(土) 11:12:460331nipotan ◆M5ZWRnXOj6
2010/08/28(土) 11:17:43むやみに変な発言いえません
マジレスしちゃいます
0332nipotan ◆M5ZWRnXOj6
2010/08/28(土) 12:56:20光の速さでフォロー仕返すよ!!!
0333デフォルトの名無しさん
2010/08/28(土) 21:42:16画像の処理をしていてspacer.gifなファイルは除外したいので。
0334Perl忍者 ◆M5ZWRnXOj6
2010/08/28(土) 21:47:03馬鹿だろ?脳味噌たりてる?
ファイルのサイズとかとかとかとかとかとかとかとかとかとかとかとかとかとか
0335デフォルトの名無しさん
2010/08/28(土) 22:14:16ファイルを開いてみて 1x1 のサイズ
は処理の対象外
何をどう迷うのか分からない
0336デフォルトの名無しさん
2010/08/29(日) 11:57:44ということで、問題はperlではなくgifのフォーマットにシフトした。
gifのスレに行くといいよ。
0337デフォルトの名無しさん
2010/08/29(日) 12:02:51ほったらかしかよww
いくらなんでも、画像の種類を判定するようなモジュールはCPANにあるだろw
そんな機械的な作業よか難しいのは、文脈的にみてその画像がスペーサーかどうか判定することじゃね?
ひねくれた人間はjpgやpngでスペーサーつくるかも知れないし。
画像の種類と名まえと大きさとサイズだけ見てスペーサーと判定できりゃいいけどな
0338Perl忍者 ◆M5ZWRnXOj6
2010/08/29(日) 12:21:160339デフォルトの名無しさん
2010/08/29(日) 12:35:43>にみてその画像がスペーサーかどうか判定
その判定基準はすでに提示されているからいいんじゃね?
判定をもれる件についてはあとでも対処すればいいわけだし
そこは本質では無いと思う
0340デフォルトの名無しさん
2010/08/29(日) 17:07:5910x10ピクセル以下の画像を捨てれば済む話。
0341ホリエ ◆M5ZWRnXOj6
2010/08/29(日) 21:29:03彡川川川三三三ミ〜
プーン 川|川\ /|〜
‖|‖ ・ ・|〜
川川‖ 3 ヽ〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
川川 ∴)〆(∴)〜 < Perl難しくて挫折したんだよね
川川 〜 /〜 | 宮川君にまかせちゃったんだ ブヒッ!
川川‖ 〜 /‖〜 \______________
川川川川 (⌒)川‖〜 ヴィシッ!
//::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::| /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄ `-Lλ_レ′
0342デフォルトの名無しさん
2010/08/30(月) 00:35:43以下のコードに対する注釈で
「この正規表現は、monkeyとマッチするが、その場合にマッチするはずの変則的な複数形はmoneyである」
となっている理由がわかりません。
どこが原因で、moneyがマッチしてしまうのでしょうか?
#変則的な複数形のテーブル
my %irregular_plural_of = (
'child' => 'children',
'brother' => 'brethren',
'money' => 'monies',
'mongoose' => 'mongooses',
'ox' => 'oxen',
'cow' => 'kine',
'soliloquy' => 'solioquies',
'prima donna' => 'prime donne',
'octopus' => 'octopodes',
'tooth' => 'teeth',
'toothfish' => 'toothfish',
);
次に続きます
0343342
2010/08/30(月) 00:42:24#変則的な複数形のパターンマッチ
my $has_irregular_plural = qr{
child | brother | mongoose
| ox | cow | monkey
| soliloquy | prima donnna | octopus
| tooth(?:fish)?
}xms;
#複数形の組み立て
while (my $word = <>) {
chomp $word;
if ($word =~ m/\A ($has_irregular_plural) \z/xms) {
print $iregular_plural_of{$word}, "\n";
}
else{
print form_regular_plural_of{$word}, "\n";
}
}
0344デフォルトの名無しさん
2010/08/30(月) 01:15:01「マッチパターンとテーブルを別々に用意したら(コピペしたら)、
タイポが紛れ込むから止めときな」
って例でmoney(monkey=typo)を使ってるだけ。
当たり前だがmoneyは、その例での
m{\A ($has_irregular_plural) \z}xms
にはマッチしない。
0345デフォルトの名無しさん
2010/08/30(月) 01:15:32>「この正規表現は、monkeyとマッチするが、その場合にマッチするはずの変則的な複数形はmoneyである」
これは「このコードを書いた人間がマッチすることを期待しているのはmoneyであるはずだが、実際にはミスタイプによりmonkeyがマッチしてしまう」ってことじゃないの?
同じ単語をハッシュを作るときと正規表現パターンを作る時とで2回ずつ書くのは無駄だし、
たとえばmoneyと書くべきところを片方だけmonkeyと書いてしまうような間違いをする確率を増やしてしまうので、こういう書き方はやめましょう、って話だと思うんだが。
0346デフォルトの名無しさん
2010/08/30(月) 01:17:410347デフォルトの名無しさん
2010/08/30(月) 02:31:17ありがとうございました。
0348デフォルトの名無しさん
2010/08/30(月) 10:38:050349デフォルトの名無しさん
2010/08/30(月) 17:16:38今度、Perlでのメールフォームを作成してみたのですが、メールが送信できません。
sendmail のパスは /usr/lib/sendmail で間違ってはいないのですが、
PHPのmail関数(mb_send_mail)と、同じ処理をしたのです。
何かチェックするところはありますか?
PHPのmail関数って便利ですが..
0350デフォルトの名無しさん
2010/08/30(月) 17:17:34さぼんな平地
0351349
2010/08/30(月) 17:23:280352デフォルトの名無しさん
2010/08/30(月) 17:38:50どこでどんなエラーが出てるかチェックするといいよ。
この件に限らず、エラーチェックは必ずする癖をつけるといい。
0353349
2010/08/30(月) 18:04:11usr/sbin/sendmail の方にもありましたので、そちらにしましたら動作しました。
アクセス権の問題のようです。
お騒がせしました ペコm(_ _;m)三(m;_ _)mペコ
0354デフォルトの名無しさん
2010/08/31(火) 16:37:310355デフォルトの名無しさん
2010/08/31(火) 16:40:25バックスペースを出力します。
0356デフォルトの名無しさん
2010/08/31(火) 16:42:49出力した画面全体を消したいなら・・・system('cls') とかw
0357デフォルトの名無しさん
2010/08/31(火) 17:14:590358Perl忍者 ◆M5ZWRnXOj6
2010/08/31(火) 17:47:450359デフォルトの名無しさん
2010/08/31(火) 17:49:370360354
2010/08/31(火) 17:57:07`clear`でうまくいきました
ありがとうございます。
ところで改行は\bでは消えないんでしょうか・・・?
0361Perl忍者 ◆M5ZWRnXOj6
2010/08/31(火) 18:04:35なんの改行さしてんの? 意味分からないよw
だったら改行いれなければいいじゃんw
0362デフォルトの名無しさん
2010/09/01(水) 02:09:12for($i=0;$i<=10;$i++){
printf("%g %d\n", $tmp, $tmp*10);
$tmp+=0.1;
}
これを実行すると
0 0
0.1 1
0.2 2
0.3 3
0.4 4
0.5 5
0.6 6
0.7 7
0.8 7
0.9 9
1 9
となってしまうのですが、なぜ0.8の10倍が7になってしまうのでしょうか?
0363デフォルトの名無しさん
2010/09/01(水) 02:10:570364デフォルトの名無しさん
2010/09/01(水) 02:43:15ttp://blog.goo.ne.jp/_hal/e/5ad229ee154e16208368e05c3df837c2
0365デフォルトの名無しさん
2010/09/01(水) 18:28:28my @pattern = ("color", "red");
my $str1 = "background color red";
my $str2 = "color hoge";
if ($str =~ /@pattern/){
print "$str\n";
}
$str2 だけに、マッチさせたいんだけど、
patternの前方一致をマッチ
my @pattern = ("^color", "^red");
こうしたり、
/^@pattern/
こしたけど駄目だった。
どうすりゃいいの?
0366デフォルトの名無しさん
2010/09/01(水) 18:29:230367デフォルトの名無しさん
2010/09/01(水) 18:36:22if($str2 =~ /^$tmp_pattern/){
〜処理〜
last; # ← 処理を続けたいならコメントアウト
}
}
grep とかで書き直せると思うけど、今は無理せず分かりやすく書くことを心がけたほうがいいと思う。
0368デフォルトの名無しさん
2010/09/01(水) 18:39:390369デフォルトの名無しさん
2010/09/01(水) 18:57:28sub is_prefix_match { $_[0] =~ /^\Q$_\E/ && return 1 for @_[1..$#_]; 0 }
for my $str ($str1, $str2) {
if (is_prefix_match($str, @pattern)) {
print "$str\n";
0370365
2010/09/01(水) 21:09:24>>369
こんなのを、さらっと書ける人になりたい。
\Qなんて使ったことないし・・・。
動作は思いどおりなんだけど、自分で読めないんで、
制御に追加があると困るので、勉強して理解出来てからにします。
>>368
エラーでした。
>>367
そうですね。
感覚的に「この処理って正規表現だと簡潔にかけるんじゃねーの」
みたいな感じだったので・・・。ご指摘の様に自分にとって適当かなと
思いました。
0371デフォルトの名無しさん
2010/09/01(水) 23:39:07my @pattern = (qr/^foo/, qr/bar/, qr/baz\z/);
my @str = qw(quuxfoo bquaurx qubarux bazquux quuxbaz);
$_ ~~ @pattern && print "$_\n" for @str;
0372デフォルトの名無しさん
2010/09/01(水) 23:58:22foreach my $str ($str1, $str2){
grep !index($str, $_), @pattern and print "$str\n";
}
自分で使うならこっち。
foreach my $str ($str1, $str2){
foreach my $ptn (@pattern){
index($str, $ptn) and next;
print "$str\n";
last;
}
}
0373デフォルトの名無しさん
2010/09/02(木) 14:21:31Perlでの多次元連想配列とはハッシュのリファレンスのハッシュなのでしょうか?
Perlでのオブジェクトとはblessで名前が付けられたハッシュのリファレンスなのでしょうか?
0374デフォルトの名無しさん
2010/09/02(木) 14:41:14Yes
ハッシュ以外のリファレンスでもよい
0375デフォルトの名無しさん
2010/09/02(木) 16:24:35ここのMagical YuYu 1.0を動かしたいのですが動きません。
Cantなんとかって出てきます
どうしたら動きますか?
0376デフォルトの名無しさん
2010/09/02(木) 16:32:300377デフォルトの名無しさん
2010/09/02(木) 16:56:17Can't locate IO/All/LWP.pm in @INC (@INC contains: 長いので省略) at tomoya/yuyu.pl line 6.
BEGIN failed--compilation aborted at tomoya/yuyu.pl line 6.
CPANでインストールしたら動きました。
ですが今度は
Unmatched right curly bracket at tomoya/yuyu.pl line 383, at end of line
syntax error at tomoya/yuyu.pl line 383, near "}"
Execution of tomoya/yuyu.pl aborted due to compilation errors.
と出てきてしまいました
0378デフォルトの名無しさん
2010/09/02(木) 18:14:38よくわからんけど俺がそこから拾ってきてperl -wcした限りでは
構文エラーは出なかったので、コピペをミスったんじゃねーの?
0379デフォルトの名無しさん
2010/09/02(木) 18:25:110380デフォルトの名無しさん
2010/09/02(木) 19:27:19ImageMagicは後片付けしてくれないの?
0381デフォルトの名無しさん
2010/09/02(木) 19:45:19異常終了してたり、終了処理をちゃんとしてなかったり
0382デフォルトの名無しさん
2010/09/03(金) 00:32:10ありがとうございます。二進数の小数では0.8をきっぱりと書くことができないのが原因なんですね。
printf("%d", 0.8*10);で7が出力されるのはどうも納得できないというかなんとかならなかったのかと思いますが。。
0383デフォルトの名無しさん
2010/09/03(金) 17:08:41小数として必要なときにだけ、10で割る。
0384デフォルトの名無しさん
2010/09/03(金) 17:46:53計算前に値を1000倍
色々計算
結果を割る1000
これで欲しい値が
もちろんそんな単純じゃないとは思うけどw
0385デフォルトの名無しさん
2010/09/04(土) 05:24:03使用量/個: 7.89g/個
個数: 1234個
月別原価係数: 1.001
(中略)
原価: 銭単位まで出す
原価 = 123.456 * 7.89 * 1234 * 1.001 * 中略 / 100
大昔にこんなのを全部整数化して最後にまとめて割る方式で組んでたら
整数乗算時点でオーバーフローした思い出
0386デフォルトの名無しさん
2010/09/04(土) 06:44:33print "<a href=\"$link?mode=all&number=$FORM{'number'}\">表示</a>";
$FORM{'number'}の内容をそのまま表示してますが、問題ないものなのでしょうか?
0387デフォルトの名無しさん
2010/09/04(土) 09:30:34ただ、その一文だけじゃなにも分からないよw
0388デフォルトの名無しさん
2010/09/04(土) 11:45:58$h->push_content("&lt;"); #実際は半角です。
とすると、内部では「&amp;lt;」ってエスケープ処理されてしまうのですが、
エスケープ処理させないようには出来ないでしょうか?
0389デフォルトの名無しさん
2010/09/04(土) 19:49:28もし "<" じゃなく、"<" を入れたいのなら、
$h->push_content("<");
とすればいいのでは?
push_content()がそういう仕様なんだから・・・
0390デフォルトの名無しさん
2010/09/05(日) 03:43:23<を入れたら<が入ることね?
0391デフォルトの名無しさん
2010/09/05(日) 12:31:08そう。
0392デフォルトの名無しさん
2010/09/06(月) 04:06:21プログラミング教えてくれっていう甥にはsed,awkやらせてる
0393デフォルトの名無しさん
2010/09/06(月) 04:07:380394デフォルトの名無しさん
2010/09/06(月) 11:01:36この$dataに格納されている行ごとのデータをランダムにするにはどうしたら良いですか?
0395デフォルトの名無しさん
2010/09/06(月) 11:13:00sedの正規表現はうんこなので、sed使うときはむしろperl使ってるわ
0396デフォルトの名無しさん
2010/09/06(月) 11:26:061.CSVを配列に入れる
2.配列の添え字でランダム性を確保する
slurpもあるよ!
0397デフォルトの名無しさん
2010/09/06(月) 11:40:08直接スカラー変数に入れて改行コード別に区切るよりも、配列変数として扱ったほうが良いって事ですね?
ちょっと試してみます。
0398デフォルトの名無しさん
2010/09/06(月) 17:32:24open(IN, '<', 'test.txt');
my $pos = int(rand(-s IN));
seek(IN, $pos, 0);
my $dataline;
while (defined ($char = getc(IN)){
seek(IN, -1, 1); # getc で進んだファイル位置を戻す
if(tell(IN) = 0 || $char =~ /\x0D|\x0A/){
$dataline = <IN>;
last;
}
seek(IN, -1, 1); # ファイル位置をマイナス方向へ進ませる
}
close(IN);
1行が数千文字に達する場合はものすごく遅くなるかも。
0399デフォルトの名無しさん
2010/09/07(火) 01:41:21そんなに行ないならこんなんどう?
@data = <IN>;
chomp @data;
my $i = @data;
while($i--){
my $j = int(rand($i + 1));
@data[$i, $j] = @data[$j, $i];
}
0400デフォルトの名無しさん
2010/09/07(火) 05:19:49一度終了しても次にブラウジングするときは前回の続きから行いたいです。
ブラウジングを終了するときにWWW::Mechanizeの情報を保存し、
ブラウジングを開始するときにWWW::Mechanizeの情報を読み込むことはできないでしょうか?
0401デフォルトの名無しさん
2010/09/07(火) 07:55:42次回の閲覧時はそのファイルを表示するところから始めればいい
Mech の機能にはなく、自分で実装する必要あり。
ただそこまで難しくは無いかと思う。
0402デフォルトの名無しさん
2010/09/07(火) 09:07:13ありがとうございます。
両方を参考にしてみましたが、>>399の方法が一番簡単っぽかったです。
あくまで配列としてロードしたあと、乱数を発生させて成功しました。
1行はせいぜい半角500文字程度なので、速度もとりあえず問題なさそうです。
SSIで実際動かしてるのですが、今度は複数のSSIがあるページで
今回作った物をhtml上、一番最後に置かないと実行出来ないというトラブルに遭遇しました。
こちらはスレ違いなので、試行錯誤して調整してみます…。
0403デフォルトの名無しさん
2010/09/07(火) 13:00:31$hash_addr = sprintf {access => 'success'};
# この $hash_addr から success という文字列を得ることができるでしょうか
0404デフォルトの名無しさん
2010/09/07(火) 13:35:59これだと無名ハッシュリファレンスのREFCNTが0になって即消滅しちゃうんじゃないの?
0405デフォルトの名無しさん
2010/09/08(水) 00:42:11ガベージコレクタが動くタイミングはまちまちってどっかで聞いたから即は消えないと思う
あと、リファレンスカウンタを増やすことはできるはずだからその問題は解決可能かと
別にこれが出来たからどうこうってわけじゃないけど、
なんでもできるPerlならこんなこともできるのかなーと気になっただけでした
0406デフォルトの名無しさん
2010/09/08(水) 07:51:03実装してみました。
しかしワンタイムトークンを使っている場合に問題がありました。
具体的にはヤフオクの取引ナビです。
メッセージのURIにcrumb=xxxxxというワンタイムトークンが指定されて、
このメッセージのURIにアクセスするとcrumb=xxxxxが違うようで400BadRequestが返って来てしまいます。
そこでcookieもファイルに保存するようにしましたが、結果は同じでした。
cookie以外でも情報を保持しているものってありますか?
0407デフォルトの名無しさん
2010/09/08(水) 08:56:30なんかのパラメタが足りないのかもしれないしなんともいえないね。
一度終了しなければ続きのアクセスができるのなら、できるときと
だめなときで通信内容を比べてみるとかそういうところから追い
かけてみたら?
0408デフォルトの名無しさん
2010/09/08(水) 13:58:00というのは、普通にブラウザで見てても、どんなタイミングかわからないけど
履歴から直接メッセージの表示しようとしたらはじかれる事が多々あるので。
たぶん Yahoo のシステムがどんな動きするのかを調べた方が早いかもです。
0409デフォルトの名無しさん
2010/09/08(水) 21:30:43レスありがとうございます。
解決しました。恥ずかしいことに「次回からIDの入力を省略」のチェックを入れずにログイン処理していました。
チェックを入れてログイン処理したところ、ブラウジングを途中で終わらせてもちゃんと続きから開始してメッセージを見れました。
お騒がせしました。
0410デフォルトの名無しさん
2010/09/09(木) 01:37:43$str = "hogefuga";
@ar = split(//,$str);
これではうまくいきませぬ
0411デフォルトの名無しさん
2010/09/09(木) 01:42:330412デフォルトの名無しさん
2010/09/09(木) 19:42:23Linux/SolarisのPerlからOracleに接続するのはわかるのだけど、Windowsはよくわかりません。
0413デフォルトの名無しさん
2010/09/09(木) 19:48:33ttp://tuka.s12.xrea.com/index.xcg?p=Perl#p15
0414デフォルトの名無しさん
2010/09/10(金) 11:50:44Mooseというのがありますが、これからPerlでクラスを書く場合
こちらで書くべきなのでしょうか?個人的に型を指定できるのがキモいので
あんまり使いたくないのです。
0415デフォルトの名無しさん
2010/09/10(金) 12:03:53別に分かってやるなら好きにすればいいんじゃねーの?
0417デフォルトの名無しさん
2010/09/10(金) 20:06:190418デフォルトの名無しさん
2010/09/10(金) 20:30:32tkを入れたいけど、何かのセキュリティでppmが使えない@職場
家でダウンロードしておいて、USBメモリでインストール用の何かを持ちこめる?
0419デフォルトの名無しさん
2010/09/10(金) 20:42:26システム管理者にかけあうのが一番早い
0420デフォルトの名無しさん
2010/09/10(金) 21:48:35意外な落とし穴だな
0421デフォルトの名無しさん
2010/09/10(金) 23:00:500422デフォルトの名無しさん
2010/09/11(土) 00:23:510423デフォルトの名無しさん
2010/09/11(土) 05:00:390424デフォルトの名無しさん
2010/09/11(土) 05:04:53はい?できますよ?
0425デフォルトの名無しさん
2010/09/11(土) 09:02:00メニューから辿っていって誰でもできるようなものではない
0426デフォルトの名無しさん
2010/09/11(土) 10:03:29要求されるようになってる。ローカルにリポジトリ立てるしか無いかも。
0427デフォルトの名無しさん
2010/09/11(土) 12:53:160428デフォルトの名無しさん
2010/09/11(土) 15:04:39tkxに慣れるか
0429デフォルトの名無しさん
2010/09/11(土) 16:56:200430デフォルトの名無しさん
2010/09/13(月) 00:11:56下記の $1って何が入っているのでしょうか?
$crptkey = 3になる条件が理解できないので困ってます。
----------------
#
# パスワード暗号化
#
sub cry_ {
$time = time;
($p1, $p2) = unpack("C2", $time);
$wk = $time / (60*60*24*7) + $p1 + $p2 - 8;
@saltset = ('a'..'z','A'..'Z','0'..'9','.','/');
$nsalt = $saltset[$wk % 64] . $saltset[$time % 64];
$epasswd = crypt($FORM{'delkey'}, $nsalt);
}
#
# パスワード解読
#
sub cryma_ {
if ($de =~ /^\$1\$/) { $crptkey = 3; } #<---- $1 って何??
else { $crptkey = 0; }
$ok = "n";
if (crypt($FORM{'delkey'}, substr($de,$crptkey,2)) eq $de) {
$ok = "y";
}
}
0431デフォルトの名無しさん
2010/09/13(月) 00:33:00どうみたってグローバル変数多用してるし
0432デフォルトの名無しさん
2010/09/13(月) 00:43:23$1に何が入ってるとか関係なくて$deの先頭に「$1$」という文字が入ってるかどうかをチェックしてるだけじゃないの
0433デフォルトの名無しさん
2010/09/13(月) 00:49:280434デフォルトの名無しさん
2010/09/13(月) 00:58:43$1などは正規表現でマッチした変数で混乱しました。
単純に「$deが$1$で始まる文字列なら3」 で納得しました。ありがとうございます
0435デフォルトの名無しさん
2010/09/13(月) 01:10:50> もし salt の文字列が "$id$" で始まっていて、"$" で終わっている文字列が続いている場合:
> $id$salt$encrypted
> DES を使う代わりに、 id で使用する暗号化手法を識別し、これがパスワード文字列の
> 残りの部分を解釈する方法を決定する。
らしいですよ
0436デフォルトの名無しさん
2010/09/13(月) 01:17:220437デフォルトの名無しさん
2010/09/13(月) 01:42:042ch互換掲示板の一番最初につまづいているようですねえ。
0chを選ばない理由はなんでしょうか?
0438デフォルトの名無しさん
2010/09/13(月) 02:01:340439デフォルトの名無しさん
2010/09/13(月) 02:08:13myやlocalを知らない人ですか?
0440デフォルトの名無しさん
2010/09/13(月) 03:00:12sub すら作ってないことに気がついたw
このままだと 関数? なにそれ 状態になる
0441デフォルトの名無しさん
2010/09/13(月) 03:01:120442デフォルトの名無しさん
2010/09/13(月) 04:05:38この質問に答えるのに局所化云々は不要だろ。
> 一部だけ見せられてもわかるわけない
該当する一行だけで余裕で分かりますが。
0443デフォルトの名無しさん
2010/09/13(月) 07:34:480444デフォルトの名無しさん
2010/09/13(月) 12:52:41(+Φ Φ)…† Sheet!!
0445デフォルトの名無しさん
2010/09/13(月) 18:27:400446デフォルトの名無しさん
2010/09/13(月) 20:06:29Image::ExifToolというのが定番みたい。
スレ違いだけど時期的にα55でも買った?
Image::ExifTool - search.cpan.org
http://search.cpan.org/~exiftool/Image-ExifTool-8.25/lib/Image/ExifTool.pod
Image::ExifToolでGPS情報を除去する | ちょめちょめ通信
http://ch0me2.blogspot.com/2010/08/imageexiftoolgps.html
0447デフォルトの名無しさん
2010/09/13(月) 21:57:130448デフォルトの名無しさん
2010/09/15(水) 12:54:03Win32::OLE->new('imacros')のところで、dieのエラーに引っかかってしまう
普通に動かすには何か環境設定が必要なんですかね?
http://wiki.imacros.net/Perl
0449デフォルトの名無しさん
2010/09/15(水) 12:55:19単体での動作も確認済みです
0450デフォルトの名無しさん
2010/09/15(水) 13:09:05WWW::Mechanizeを使ってブラウジングしてます。
xxx->click();したときにどんな風にPOSTデータを送っているのか調べたいです
FireFoxのPOSTデータもどんなデータを送っているのか調べて比較したいです
どんな方法が正確に簡単に比較できますかね?ツールとか使うことになるんでしょうか
よろしくお願いします
0451デフォルトの名無しさん
2010/09/15(水) 13:27:06インスタンスが生成されていないってことだろ
0452デフォルトの名無しさん
2010/09/15(水) 13:46:57パケットキャプチャすればいいのではないかしら
0453デフォルトの名無しさん
2010/09/15(水) 13:52:080454デフォルトの名無しさん
2010/09/15(水) 14:03:58Mechのほうはソース読め。
0455デフォルトの名無しさん
2010/09/15(水) 14:10:250456デフォルトの名無しさん
2010/09/15(水) 14:30:070457デフォルトの名無しさん
2010/09/15(水) 16:02:22Win32::OLEは当然インストールされてます
0458デフォルトの名無しさん
2010/09/15(水) 16:35:59ざっくりやるならProxomitronでいいんじゃないの。
単純なのだったら、ローカルにHTTPサーバ立ててキャプチャしてみるとか。
0459デフォルトの名無しさん
2010/09/15(水) 16:50:03ならインスタンスが生成されない理由を探れよ
0460デフォルトの名無しさん
2010/09/15(水) 16:53:11探れないのでここで聞いてまする
0461デフォルトの名無しさん
2010/09/15(水) 16:54:290462450
2010/09/15(水) 17:07:12LiveHTTPHeadersを使ってみてみます
問題はWWW::Mechanizeのほうですね
ソース読むっきゃないんですかね・・・これは大変そうだ・・
0463450
2010/09/15(水) 17:10:57ffでやる分には普通に出来るけどWWW::Mechanizeで動かしたいので
何でWWW::Mechanizeを使っていると判断しているのかを調べたかったので
それともHTTP_USER_AGENTあたりで微妙な違いで判断してるのかな・・
0464458
2010/09/15(水) 17:13:37しばらく2chやめるかね。
0465458
2010/09/15(水) 17:14:510466デフォルトの名無しさん
2010/09/15(水) 17:16:300467450
2010/09/15(水) 17:19:09さらにそこでの質問が増えそうだったので。
たまたま入っていたLiveHTTPHeadersの手軽さを選択しました
0468450
2010/09/15(水) 17:30:25Perlだけでなくその辺の知識も初心者なので・・・
調べてきます
0469デフォルトの名無しさん
2010/09/15(水) 18:28:15超難しい
挫折しそう
0470448
2010/09/15(水) 18:42:45の1行でテストしてみた。こっちはdieには引っかからないようだ
'imacros'っていうのがやはりおかしいのかな。ダメだわからねぇ
0471デフォルトの名無しさん
2010/09/15(水) 23:39:130472デフォルトの名無しさん
2010/09/15(水) 23:44:590473デフォルトの名無しさん
2010/09/15(水) 23:50:05http://perldoc.jp/docs/modules/Win32-GuiTest-1.3/GuiTest.pod
ここ読んで意味がわからなかったもので
0474デフォルトの名無しさん
2010/09/16(木) 00:27:410475デフォルトの名無しさん
2010/09/16(木) 00:31:100476デフォルトの名無しさん
2010/09/16(木) 00:33:550477デフォルトの名無しさん
2010/09/16(木) 00:39:020478デフォルトの名無しさん
2010/09/16(木) 00:39:52これはひどい
0479デフォルトの名無しさん
2010/09/16(木) 00:39:52日本語でおk
0480デフォルトの名無しさん
2010/09/16(木) 00:43:510481デフォルトの名無しさん
2010/09/16(木) 00:47:120482デフォルトの名無しさん
2010/09/16(木) 00:48:03http://perldoc.perl.org/perlfaq1.html#What%27s-the-difference-between-%22perl%22-and-%22Perl%22?
http://perldoc.jp/docs/perl/5.10.1/perlfaq1.pod
0483デフォルトの名無しさん
2010/09/16(木) 00:55:540484デフォルトの名無しさん
2010/09/16(木) 00:56:190485デフォルトの名無しさん
2010/09/16(木) 01:56:38キーバインドを送ることは不可能かな?どこ見てもそういったことはやっていないみたいだけど
0486デフォルトの名無しさん
2010/09/16(木) 01:58:00日本語でおk
0487デフォルトの名無しさん
2010/09/16(木) 03:16:07の違いはなんですか?
0488デフォルトの名無しさん
2010/09/16(木) 05:31:54h2xs は perl の付属ツールでその他はドキュメント。
それぞれのドキュメントは説明されている内容が違う。
perlXStut - Tutorial for writing XSUBs
http://perldoc.perl.org/perlxstut.html
http://perldoc.jp/docs/perl/5.10.0/perlxstut.pod
> このチュートリアルは読者にPerlのエクステンションを作るのに必要なステップを教えるものです。
perlxs - XS language reference manual
http://perldoc.perl.org/perlxs.html
http://perldoc.jp/docs/perl/5.10.0/perlxs.pod
h2xs - convert .h C header files to Perl extensions
http://perldoc.perl.org/h2xs.html
perlguts - Introduction to the Perl API
http://perldoc.perl.org/perlguts.html
http://perldoc.jp/docs/perl/5.10.0/perlguts.pod
> このドキュメントでは Perl API の使い方、および Perl コアの基本的な動作に関する
> いくばくかの情報を提供しようとしています。
perlapi - autogenerated documentation for the perl public API
http://perldoc.perl.org/perlapi.html
http://perldoc.jp/docs/perl/5.10.0/perlapi.pod
> このファイルは embed.pl で生成された perl の公式な API のドキュメントです;
> 特にエクステンションの作者が使うかもしれない関数、マクロ、フラグ、変数の一覧です。
0489デフォルトの名無しさん
2010/09/16(木) 10:53:12"perlだけがPerlを解釈することができる"
でググるといいよ
0490nipotan応援団
2010/09/16(木) 14:04:46書けよー!書けよー!書け書けよー! 書けよ書けよーモジュール!
お前が書かなきゃ誰が書く!!かっとばせー!nipotan!ゴーゴーレッツゴーnipotan!燃えろ燃えろ!
光 輝く!大空高く! 燃える男のチャンスに強いnipotan!
あなたの目標は何ですか!?宮川超える事そうですか!
宮川以上のスーパースーパースーパースーパースーパーコーティング( イェイェイェイ!!
0491デフォルトの名無しさん
2010/09/16(木) 14:26:42一番スマートなのはどういったコードを書けばいいのかな
0492デフォルトの名無しさん
2010/09/16(木) 15:26:03nslookupやらを公開しているサイトにアクセスして
結果から盗むってのが手っ取り早いかな
0493デフォルトの名無しさん
2010/09/16(木) 16:16:18可能ならどう取得すればいいのか教えてもらえればありがたいです
0494デフォルトの名無しさん
2010/09/16(木) 18:18:13%ENVをぐるぐる回れば見れるよ!
と思ったけどヘッダーかぁ
リクエストヘッダーはサーバに食われちゃうから
成功法じゃあ見る方法ってないんじゃね?
0495デフォルトの名無しさん
2010/09/16(木) 18:51:32UPnPを使うのが一番スマートじゃないか
0496デフォルトの名無しさん
2010/09/16(木) 18:52:28FirefoxにはLive http headerというアドオンがあったはずだけれど、これでいいかな?
0497デフォルトの名無しさん
2010/09/16(木) 21:35:070498デフォルトの名無しさん
2010/09/16(木) 21:44:120499デフォルトの名無しさん
2010/09/16(木) 22:14:55Syslogつかえ
0500デフォルトの名無しさん
2010/09/16(木) 22:53:37ありがとう。やっぱりその方法が手軽かな
0501デフォルトの名無しさん
2010/09/16(木) 23:22:18UPnPですか。調べてみます
ありがとう
0502デフォルトの名無しさん
2010/09/16(木) 23:25:44IO::Fileモジュール
0503デフォルトの名無しさん
2010/09/17(金) 00:10:33>>496
どうもです。うーむ難しそうですね
もっと調べてみます
0504デフォルトの名無しさん
2010/09/17(金) 05:40:530505デフォルトの名無しさん
2010/09/17(金) 06:08:47どうもありがとう
自分で作るっきゃないんすね
レベル指定で色々出力したりしようと思ったけど
0506デフォルトの名無しさん
2010/09/17(金) 11:33:10だあらSys::Syslogつかえっつってんだろひとのhなしきいてんのかぉよ
0507デフォルトの名無しさん
2010/09/17(金) 11:37:47涙ふけよ
0508デフォルトの名無しさん
2010/09/17(金) 11:44:56使ったこと無いけど、 log4perl
0509デフォルトの名無しさん
2010/09/17(金) 11:57:14ありがと。
SyslogじゃなくてSys::Syslogかあ。
Syslogで必死にぐぐってみたけど変なのしか出てこなくて
再度ぐぐってみる
>>508
ありがと。ぐぐってみる
0510デフォルトの名無しさん
2010/09/17(金) 19:05:470511デフォルトの名無しさん
2010/09/17(金) 19:46:00Log::Handler使ってる
0512デフォルトの名無しさん
2010/09/17(金) 20:02:57my %hash;
$hash{'234'}=["山田太郎\n", "ほげほげ\nあいうえお\n"];
$hash{'236'}=["鈴木花子\n", "ふがふが\nかきくけこ\n"];
print @{$hash{'234'}};
print @{$hash{'235'}};
print @{$hash{'236'}};
このコードを実行すると print @{$hash{'235'}}; の所で Can't use an undefined value as an ARRAY reference とエラーが出て終了する。
先頭のマークを変えて%{$hash{'235'}}や${$hash{'235'}}としても同様のメッセージが出る。
しかしprint ${$hash{'235'}}[0}; や ${$hash{'235'}}{'hoge'}とすると何もエラーがでず何も出力されず、次の処理に移る。
なぜこの場合はエラーが出ないのでしょうか?
0513デフォルトの名無しさん
2010/09/17(金) 20:16:19print しようとしてるものが undef だから。
use warnings すればおしらせが出る。
0514デフォルトの名無しさん
2010/09/17(金) 20:21:18未定義なのは@{$hash{'235'}} も ${$hash{'235'}}[0} も同じですよね?
それなのに片方ではエラーが出て、片方では出ないのは何故なのかと思いました。
0515デフォルトの名無しさん
2010/09/17(金) 20:52:12$math += $_ * ($count--%2?3:1) foreach( @strArray);
これの読み方がよくわかりません。
解説していただけませんか?
0516デフォルトの名無しさん
2010/09/17(金) 21:09:54>$count--%2?3:1
3項演算子を使っている。
この場合、$countを2で割った余りが1なら3を返す。あまりが0なら1を返す。
$count--とあるので、処理が終わった後$countは1減る。
foreach(@strArray) {
if($count%2==1){
$math += $_*3;
} else {
$math += $_*1;
}
$count--;
}
0517デフォルトの名無しさん
2010/09/17(金) 21:12:45ありがとう
いろいろ調べてみた
Sys::SyslogはWin環境だと微妙だと判断
log4perlは便利だけど日本語資料が乏しく結構覚えるのが大変そう
Log::Handlerは結構シンプルだね
今のところlog4perlで難しかったらLog::Handlerでいこうかな
0518デフォルトの名無しさん
2010/09/17(金) 21:18:53ありがとうございます。
http://masaya.w32.jp/?p=248
これを見てるのですが、なぜ$countが12なのかもわかりません。
0519デフォルトの名無しさん
2010/09/17(金) 21:21:13undef自体をデリファレンスしようとすれば当然エラーになるが
リファレンス階層では存在しない値は自動生成されるのでエラーにならない
とかだった気がする
0520デフォルトの名無しさん
2010/09/17(金) 22:47:59わざわざそのページの作者さんがwikiのURL張ってくれてんじゃん
13桁だからチェックデジットの計算が12回
0521デフォルトの名無しさん
2010/09/17(金) 23:35:41Webから取得したのを丸ごと出力しておきたいんだけど
日本語が入っているから文字化けしてる
0522デフォルトの名無しさん
2010/09/17(金) 23:42:290523デフォルトの名無しさん
2010/09/17(金) 23:45:07レスありがとうございます。
>undef自体をデリファレンスしようとすれば当然エラーになるが
納得できます
>リファレンス階層では存在しない値は自動生成されるのでエラーにならない
リファレンス階層とはどういう事でしょうか?
${$hash{'235'}}[0]は@{$hash{'235'}}という配列の要素でそれはundefをデリファレンスした配列なのに、、
0524デフォルトの名無しさん
2010/09/17(金) 23:52:28| なんでだろ〜♪
\____ _______________
V |
| なんでだろ〜♪
\_____ _____
V
_,ヾゝー'"'"'"ー、,; ,.:-‐―‐-.、_
,ラ 、_ ヽ,、 / \
イ r-'ー゙ "ー‐、, ミ/ ヽ
i! ,! i! ミi ,ハ i
,j i /ニ=、 ,r==、i ,,ハ ,ノヽi! ゙'レ>ヾ-、 ,!r'
i V <(・)>i i!(・)>゙!,i !!イ(・)) <.(・)>゙ i /!i
゙!ji! ., j .i_ /j i 。 。, ト-'
,ィi:. ;" ー-‐' ト' .! ,.=、 / ̄ ゙̄ー-、_
__ノ !ハ : 0 ; ,/ _,.-‐''\ ゙='' ,/
/ \\  ̄ ,// ゙ー-‐‐"
/ \.゙ー-イ ,/
0525デフォルトの名無しさん
2010/09/18(土) 00:27:15mainのほうでは、binmode STDIN, ":encoding(cp932)"; で標準出力をs-sjisにして出力しているので
自分で出力する分には文字化けしないんだけど、log4perlのモジュールを介して出力させると
binmode が効いてないっぽい。何か方法はないですかね。文字コード変換は面倒だからbinmodeで
なんとかならないですかね
0526デフォルトの名無しさん
2010/09/18(土) 00:34:26my $result = testfun($data);
みたいに undef を変数に入れても問題無いですよね?
普通に使ってきたけど、「そういや undef って未定義だよな・・・」 って思ったら正しいやり方なのか不安になってきた。
0527デフォルトの名無しさん
2010/09/18(土) 00:53:460528デフォルトの名無しさん
2010/09/18(土) 01:46:15http://perldoc.perl.org/perlref.html#Using-References の 3.
http://perldoc.jp/docs/perl/5.10.0/perlref.pod
http://perldoc.perl.org/perldsc.html
http://perldoc.jp/docs/perl/5.10.0/perldsc.pod
-> (矢印演算子)の左辺にはリファレンス(かパッケージ名)が期待されていて、
左辺が「未定義」かつ「代入可能な何か」なら、右辺と辻褄のあうリファレンスが
自動生成・代入される仕組みになっている。
${$hash{'235'}}[0] は $hash{'235'}->[0] と等価で、上記の仕様に従いまず
$hash{'235'} = []; が暗黙の内に行われる。然る後 $hash{'235'}->[0]、即ち
undef が print される。よってこの文の後、$hash{'235'} には空の配列
リファレンスが代入された状態になっている。
翻って print @{$hash{'235'}}; における @{$hash{'235'}} は print という「リストを
受け取る単項演算子」のオペランドであって上記機能の対象とならず、既に
配列リファレンスであるという前提の元にデリファレンスされるのでエラーとなる。
0529デフォルトの名無しさん
2010/09/18(土) 02:01:50おお、なるほど、分かりやすい。
| $array[$x]->{"foo"}->[0] = "January";
|これが、先の左辺値コンテキストで用いるとリファレンスが存在するようになるというケースの一つです。
|この文以前には、$array[$x] は未定義かもしれません。その場合自動的にハッシュリファレンスと定義
|されて、{"foo"} が検索できるようになります。同じように $array[$x]->{"foo"} が配列リファレンスで定義
|されるので、 [0] をそこで探すことができます。このプロセスは 自動有効化 (autovivification) と呼ばれます。
こういう明文化された仕様があったんですね。
(ほげほげ)->[0]の場合、自動でリファレンスを作ってくれると。
丁寧なレスありがとうございました。
0530デフォルトの名無しさん
2010/09/18(土) 13:38:37第三引数で渡したか渡してないかで判断して処理しようと思うんだけど
こんな方法でも特に問題になることはないですかね?ちょっと不安で
&abc('test1','test2');
&abc('test1','test2','test3');
sub abc{
my ($test1, $test2, $test3) = @_;
if(defined($test1)) {
処理1
}
if(defined($test2)) {
処理2
}
if(defined($test3)) {
処理3
}
0531デフォルトの名無しさん
2010/09/18(土) 13:53:04scalar @_ == 2 ? 処理2 : 処理3
0532デフォルトの名無しさん
2010/09/18(土) 13:53:11サブルーチンを呼び出す側で第三引数を渡したつもりでも
undefな変数を渡していたら処理されないような。
0533デフォルトの名無しさん
2010/09/18(土) 13:58:51531のように引数の数でチェックしたほうがよさそうですね
思わぬバグになるところでした。聞いて良かったありがとう
0534デフォルトの名無しさん
2010/09/18(土) 14:02:47&abc('test1','test2');
よりも、
abc(1,2,undef);
のように明示的にundefしたほうがよさそうですね
単純に忘れたのか明示的に外したのかが上だと分からないし
勉強になりましたありがとう
0535デフォルトの名無しさん
2010/09/18(土) 14:05:53undefでも引数の数は3になるのか・・
やっぱり
&abc('test1','test2');
scalar @_ == 2 ? 処理2 : 処理3
のようなチェックのほうがいいか
0536デフォルトの名無しさん
2010/09/18(土) 23:07:36Low 2058 (Q9650+2GB+Ge9600GT)
夏仕様(VGAクロック半減)で Low1020
0537デフォルトの名無しさん
2010/09/18(土) 23:14:43Perlだとどう書くとスマートなのかな。解説しているサイトでもいいので
もし知っていたらスマートな書き方を教えてください。よろしくお願いします
int main(int argc, char** argv)
{
int (*pfunc[2])() = {plus, minus};
printf ("3 + 5 = %d\n", (*pfunc[0])(3, 5));
printf ("3 - 5 = %d\n", (*pfunc[1])(3, 5));
return(0);
}
int plus(unsigned int a, unsigned int b)
{
return((int)(a + b));
}
int minus(unsigned int a, unsigned int b)
{
return((int)(a - b));
}
0538デフォルトの名無しさん
2010/09/18(土) 23:38:02print $func[0](1,2);
print $func[1](1,2);
sub plus {
($a, $b) = @_;
return $a+$b;
}
sub minus {
($a, $b) = @_;
return $a-$b;
}
0539デフォルトの名無しさん
2010/09/18(土) 23:47:31Perlのほうが、やっぱり記述が短いですね
参考になりました。
ありがとうございました。
0540デフォルトの名無しさん
2010/09/18(土) 23:50:33()付けろよ
0541デフォルトの名無しさん
2010/09/18(土) 23:52:24Bareword "plus" not allowed while "strict subs" in use at f.pl line 10.
Bareword "minus" not allowed while "strict subs" in use at f.pl line 10.
Execution of f.pl aborted due to compilation errors.
どこに()をつければいいんだろう
0542デフォルトの名無しさん
2010/09/19(日) 00:00:000543デフォルトの名無しさん
2010/09/19(日) 00:10:16ありがとう
my @func = (\&plus, \&minus);
print $func[0](1,2);
print $func[1](1,2);
sub plus {
($a, $b) = @_;
return $a+$b;
}
sub minus {
($a, $b) = @_;
return $a-$b;
}
実行結果
3-1
で、うまく動きました。間に-が入るのが気になるけど
0544デフォルトの名無しさん
2010/09/19(日) 00:13:08-1だからか。これでうまく行きましたね
みなさんどうもありがとう
0545デフォルトの名無しさん
2010/09/19(日) 02:53:54if($level == 'EAT') {
print "ok\n";
}
上のところ。なぜかif文が通ってしまいます
なぜですかね。書き方が間違っているのでしょうか
0546デフォルトの名無しさん
2010/09/19(日) 02:58:28自己レスです。
文字列は==ではなくeqみたいですね
Active perl, v5.10.1 を使ってます
原因がわかるまで凄い苦労した・・・
スレ汚し失礼しました
0547デフォルトの名無しさん
2010/09/19(日) 10:08:380548デフォルトの名無しさん
2010/09/19(日) 10:29:460549デフォルトの名無しさん
2010/09/19(日) 12:51:320550デフォルトの名無しさん
2010/09/19(日) 17:36:52Appenderはどれ使ってるの? ScrernとFileならutf8オプションあるだろ。
Fileならさらにbinmode指定するオプションで凝ったこともできる。
0551デフォルトの名無しさん
2010/09/19(日) 20:03:04ありがとうございます
Scrernです。コマンドプロンプロトがShift_JIS なのでShift_JIS で出力せたいです
utf8オプションなんてあるんですか?ファイルのほうは別にutf8でいいです
何かしらエディッタなら対応してますから。メモ帳でも
ただコマンドプロンプロトの変わりはそうはないのでつらいですね。
諦めて画面にはPRINT文で出すことにしました
0552デフォルトの名無しさん
2010/09/20(月) 01:23:08ScreenならSTDOUTかSTDERRをbinmodeで設定しておきゃいいんじゃないの?
utf8オプションも結局それやってるだけだし。
0553デフォルトの名無しさん
2010/09/20(月) 01:26:08binmode STDIN, ":encoding(cp932)";
っていうのを呼び元のところで設定しているけどうまくいかない・・・
0554デフォルトの名無しさん
2010/09/20(月) 01:27:07binmode STDOUT, ":encoding(cp932)";
自分でPRINTする分には出るんだけどね
0555デフォルトの名無しさん
2010/09/20(月) 08:11:21って、パッケージ宣言ごとに書かないとだめですか。
今、ひとつのファイルに複数のパッケージを書いているのですが、
ファイルの先頭で use strict; すれば、そのファイル全体で有効だと
思いこんでいたのですが、なんか違うような気がしてきました。
0556デフォルトの名無しさん
2010/09/20(月) 13:30:08そうです。基本的なことですから押さえておきましょう。
0557デフォルトの名無しさん
2010/09/20(月) 14:58:160558デフォルトの名無しさん
2010/09/20(月) 15:08:27ドキュメントや入門ページを見るとナルホドなかなか良いなとも思ったのですが、
Perlで仕事をしている方々の評判はどんな感じなんでしょうか。
自分一人ならいいけど他のPGが読めなくなるから使わないとか、、
それとも今時のPerl使いはこれくらいは知っていて当然なのでしょうか?
0559デフォルトの名無しさん
2010/09/20(月) 17:28:14my $image2 = new Image::Magick;
$image2->Read("foo.gif");
$image1->Composite(image => $image2, compose => 'Over');
を
$image1->Composite(image => Image::Magick->new()->Read("foo.gif"), compose => 'Over');
のようにしたいのです。
0560デフォルトの名無しさん
2010/09/20(月) 18:00:470561デフォルトの名無しさん
2010/09/20(月) 20:55:49↑
これのやり方がわかりません
そもそもコードはどうやって表示させるのでしょうか?
初心者すぎですが、どなたか教えて下さい<m(__)m>
:: の意味もわからないです
0562デフォルトの名無しさん
2010/09/20(月) 21:23:18Readの戻り値がImage::Magickオブジェクトじゃないからしょうがないね。
お望みの動作をするMyReadでも勝手に定義すれば?
0563デフォルトの名無しさん
2010/09/20(月) 21:24:23::の意味もわからない奴に教えるのは大変すぎるので
頑張ってperlの勉強してください。
0564デフォルトの名無しさん
2010/09/20(月) 21:28:20use strictの有効範囲はレキシカルスコープだからファイルの最後まで
効くんじゃねーの? use varsと混同してない?
use strict;
package Package1;
use vars '$x';
our $y;
$x = 1;
$y = 2;
package Package2;
$x = 3; # これはエラーになる
$y = 4;
0565555
2010/09/21(火) 01:24:46どっちが正しいんでしょうか。
自分で試したところ、
use strict;
package Package1;
my $x = 1;
package Package2;
print $x, "¥n";
print $y, "¥n"; # use stric ありならエラー
となったので、564氏が正しいように思いますが、どうなんでしょうか。
0566デフォルトの名無しさん
2010/09/21(火) 02:41:17これ便利そうじゃね?使っている人いる?
0567デフォルトの名無しさん
2010/09/21(火) 03:08:36実験してみた
0568デフォルトの名無しさん
2010/09/21(火) 03:11:531000件ぐらいのデータから1件だけをマッチさせて抜き出す処理を考えています
データ的には
日本語20,30文字と数字3桁の2つ
日本語で検索を賭けて抜き出します
こういった処理に適しているお勧めのパッケージってありますかね
CSVファイルにしてText::CSV::Simpleあたりのモジュールで読み込んでやろうかなとも考えているのですが
0569デフォルトの名無しさん
2010/09/21(火) 03:17:52失礼
use strict;
{ package Test1;
sub test(){
$x = 1;
print "no strict\n";
}
}
Test::test();
> Global symbol "$x" requires explicit package name at test1.pl line 9.
Execution of test1.pl aborted due to compilation errors.
ついでに同一パッケージで効くかどうか調べてみた
{ package Test;
use strict;
}
{ package Test;
sub test(){
$x = 1;
print "no strict\n";
}
}
Test::test();
> no strict
0570デフォルトの名無しさん
2010/09/21(火) 03:21:10強いて言うなら DBI::SQLite とか?
そんくらいならモジュール使わんでも適当に書けるんじゃね?
0571デフォルトの名無しさん
2010/09/21(火) 03:39:44どうもありがとう。DBI::SQLiteだとDB関連ですかね。
このデータは随時追加したり頻繁に変更したりしたいのでCSVにして
エクセルにて色々弄ろうかとも考えているんですよね
DBはちょっと自分には敷居が高いなあー
やっぱりモジュール使わんでも適当に書いたほうがいいですかね
0572デフォルトの名無しさん
2010/09/21(火) 04:02:03多分リレーショナルな部分は使わんだろうけど、いい機会だと思ってSQL勉強しときなさい
一度覚えたら他の言語に移っても使えるからな
ちなみに厳密に言うとCSVファイルもDBだぞ
0573デフォルトの名無しさん
2010/09/21(火) 06:37:33Tokyo CabinetかKyoto Cabinetで
0574デフォルトの名無しさん
2010/09/21(火) 06:43:49必要な時には自動的に呼ばれます。
たとえば
class Hello
def to_s
return "hello"
end
end
obj = Hello.new()
print obj #=> obj.to_s() メソッドが自動的に呼ばれる
これと同じような機能は、Perlにあるでしょうか。
package Hello;
があって、
my $obj = Hello->new();
my $s = 'value=' . $obj;
としたときに、$obj->to_s() とか何かが自動的に呼ばれるようにしたいです。
0575デフォルトの名無しさん
2010/09/21(火) 06:48:13ありがとう。もうちょっと調べてみる
>>573
ありがとう。ぐぐってみます。
0576デフォルトの名無しさん
2010/09/21(火) 07:36:08use strict;
package Hello;
use overload q{""} => \&to_s, fallback => 1;
sub new { bless {}, shift }
sub to_s { "hello" }
package main;
my $obj = Hello->new();
my $s = 'value=' . $obj;
print "$s\n";
0577デフォルトの名無しさん
2010/09/21(火) 17:25:50$ref_result = \%result;
$ref_resultから@urlsを取り出す方法を教えてください
0578デフォルトの名無しさん
2010/09/21(火) 18:10:050579デフォルトの名無しさん
2010/09/22(水) 00:04:29my $a = ¥@tmp;
これを一発でかくにはどうしたらいいの?おしえてえらいひと
0580デフォルトの名無しさん
2010/09/22(水) 00:12:09$a と $b は sort が(ry
0581デフォルトの名無しさん
2010/09/22(水) 00:21:16参照カウント方式で起動もくそもないように思いますが、
もしあればおしえてください。
なお「Perl GC」でググってみましたが、それらしいのは
みつかりませんでした。
0582デフォルトの名無しさん
2010/09/22(水) 00:51:28この辺で分からなければ無いんじゃない。
http://perldoc.perl.org/perl.html#Internals-and-C-Language-Interface
http://search.cpan.org/modlist/Development_Support
http://search.cpan.org/search?m=all&q=Devel&n=100
perl本体のハック目的でもない限り、そんな事気にしながらじゃLL使う意味無いしな。
0583デフォルトの名無しさん
2010/09/22(水) 01:18:29ありがとう
0584デフォルトの名無しさん
2010/09/22(水) 02:39:50これと同じことを行ってくれるパーサはありますでしょうか。
use strict; だとスクリプトを実行しないといけないので、それだと
副作用があって危険なので、実行せずに構文解析だけでできるのが希望です。
0585デフォルトの名無しさん
2010/09/22(水) 02:44:000586デフォルトの名無しさん
2010/09/22(水) 03:25:19SJISファイルをそのまま読み込んだ場合で
内部のUTF8とマッチング処理をするときは
どっちをどうやってコード変換すれば一番いいんですかね?
0587デフォルトの名無しさん
2010/09/22(水) 03:30:140588デフォルトの名無しさん
2010/09/22(水) 03:47:04さんくす
できれば外部コマンドとして起動するのではなく、ライブラリとして使いたいです。
無理でしょうか。
0589デフォルトの名無しさん
2010/09/22(水) 07:14:23Perl 5.8ばっかりだね。ふるいのばかり。今5.8使っている人いるのかな
細々とはいるだろうけど
0590デフォルトの名無しさん
2010/09/22(水) 12:32:530591デフォルトの名無しさん
2010/09/22(水) 12:38:12Shift_JISからJISに変換する際、Encodeでは未定義文字が正しく変換されないので
Jcode-0.88を使用していたのですが、今度2.07にバージョンアップすることになりました。
これまでのアルゴリズムを利用するには、同梱されているJcode::_Classicを使えばよい
ということまでは分ったのですが、いざJcode-2.07をインストールしてみても
肝心のJcode::_Classicや、内部で使用するJcode::H2Zがインストールされません。
正確にいうと、Jcode-2.07.tar.gzを展開したJcodeディレクトリには入っているのですが、
make installまで行ってもlibディレクトリにコピーされず、
perl -MJcode::_Classic -e '' で Can't locate エラーになってしまいます。
Jcode/*.pmはどうやってインストールしたらよいのでしょうか?
もし手動でコピーするしかないのだとしたら、コピー先はJcode.pm本体と同じ
libディレクトリでよいでしょうか?
以上、よろしくお願い致します。
0592デフォルトの名無しさん
2010/09/22(水) 13:29:55使用状況がいまいち想定できないんだけど、どういう使い方したいの?
Perlでどう解釈されてるか見たいという要望にはB::Deparseオススメしとく
0593デフォルトの名無しさん
2010/09/22(水) 13:32:45ありがと。そうなんだ
0594デフォルトの名無しさん
2010/09/22(水) 17:36:14ところが、cgiを使ったURLを取得すると、cgiが作成したhtmlは取得できません。
方法としては
wget -E と Eオプションをつけることで解決するのでしょうか?(これを試しても取得できませんでしたが)
cgiが作成したhtmlをクロールするにはどうすればいいのでしょうか?
0595デフォルトの名無しさん
2010/09/22(水) 18:20:040596デフォルトの名無しさん
2010/09/22(水) 18:44:590597デフォルトの名無しさん
2010/09/22(水) 18:48:29?
?
0598デフォルトの名無しさん
2010/09/22(水) 18:52:05CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://pc11.2ch.net/php/)
このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。
http://www.perl.org/get.html
● 2010/07/31 現在の最新版: 5.12.0
▼ 前スレ
Perlについての質問箱 43箱目
http://pc12.2ch.net/test/read.cgi/tech/1266565626/
リンク集は >>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは >>5-7 あたり
0599デフォルトの名無しさん
2010/09/22(水) 19:01:26ありがとう
0600デフォルトの名無しさん
2010/09/22(水) 20:44:49どうしたらいい?
0601デフォルトの名無しさん
2010/09/22(水) 21:09:16ってのを1行でかっこよく書きたいんだけどどうしたらいい?
open( my $fh,"hoge" ) and print $fh ・・・
とか書くのめんどうくさい
0602デフォルトの名無しさん
2010/09/22(水) 21:20:130603デフォルトの名無しさん
2010/09/22(水) 22:53:19Encode で正しく変換されないというよりも
shiftjis と cp932 をごっちゃに思ってた
なんてオチだったりして?
Encode::Guess はデータの文字コードの判断に失敗した時は
デフォルト値で誤魔化さずオブジェクトの代わりにスカラーで候補を返すから
何が何でも変換したいなら
判断に失敗した場合の決め打ちを自分で書けば良いのでは?
0604デフォルトの名無しさん
2010/09/22(水) 23:40:00system("echo $bakatext > bakafile");
0605デフォルトの名無しさん
2010/09/22(水) 23:41:370606デフォルトの名無しさん
2010/09/22(水) 23:42:07sedモードというのが何を指して言っているのか分からないが、
cmd.exe のような環境で走らせている場合も含め、
shebang に付けられたオプションを perl 自身が解釈してくれる。
http://perldoc.perl.org/perlrun.html
http://perldoc.jp/docs/perl/5.10.0/perlrun.pod
> シェルから以下のように起動すると:
>
> $ perl -p -i.orig -e "s/foo/bar/; ... "
>
> プログラムで以下のようにするのと同じで:
>
> #!/usr/bin/perl -pi.orig
> s/foo/bar/;
0607デフォルトの名無しさん
2010/09/22(水) 23:57:52内部コードとのキーとマッチング処理を行うときに
Encode::_utf8_onとしないと外部ファイルからのデータはutf8として比較してくれないのですかね?
Perl5.10で、use utf8;指定しています。(binmode STDIN, ":encoding(cp932)";も)
0608デフォルトの名無しさん
2010/09/23(木) 00:15:49内部も日本語でutf8で比較しています
0609591
2010/09/23(木) 00:41:19>shiftjis と cp932 をごっちゃに思ってたなんてオチだったりして?
違います。
EncodeはいちいちUnicodeを経由して変換を行いますが、
恐らくマッピング上の問題で、Shift_JISの未定義領域をJISの未定義領域へ
正しく変換できないのです。
そのため、コード位置を計算で求める従来のアルゴリズムが必要なのです。
>判断に失敗した場合の決め打ちを自分で書けば良いのでは?
Jcodeにこだわっているのは、上記のアルゴリズムで実装されたJcode-0.88に
強く依存したコードがあちこちに存在するためです。
Jcode::_Classicが使えるなら、use部分+αの細工だけで済みますので。
0610デフォルトの名無しさん
2010/09/23(木) 02:44:48は解決しました。取り下げます。
どうもスレ汚し失礼しました。
0611デフォルトの名無しさん
2010/09/23(木) 16:01:53やっぱそれしかないん?
インジェクションがおっかないからやなんだよなそれ
0612デフォルトの名無しさん
2010/09/23(木) 16:35:360613デフォルトの名無しさん
2010/09/23(木) 17:27:302つの引数からサブルーチンを返すプログラムを作成しそれを使うそうなのですが教えていただけないでしょうか
0614デフォルトの名無しさん
2010/09/23(木) 17:34:37わざわざ作らなくてもMath::BigIntを使えば?
0615デフォルトの名無しさん
2010/09/23(木) 17:37:48613じゃないけど
0617デフォルトの名無しさん
2010/09/23(木) 17:43:43何も考えずにかいたのがこんなん
sub gcd{
my ($a,$b)=@_;
if($a==0){$b}elsif($a<=$b){gcd($a,$b-$a)}else{gcd($b,$a-$b)};
}
こんなのを指すんかな?
sub gcd2{
my ($a,$b)=@_;
sub aux{
my ($c,$d)=@_;
if($c<=0){$d}else{aux($d-$c,$c);}
}
if($a>=$b){aux($b,$a);}else{aux($a,$b);}
}
速度を求めるなら再帰は使わない方がいいけど
perl久しぶりにさわったから、色々変かもしれない
return書いてないけど文法的に大丈夫か自信ないw
0618デフォルトの名無しさん
2010/09/23(木) 17:45:05わかってるけどPerlでそれを実現する方法がわからないのか。
……前者だったら救いようがないぞ
0620デフォルトの名無しさん
2010/09/23(木) 18:08:440621デフォルトの名無しさん
2010/09/23(木) 18:19:57my ($foo,$baa)=@_;
return $baa ? gcd($baa,$foo%$baa) : $foo
}
掲示板の都合上全角空白だけど動かすなら半角にしなければエラー吐く
0622デフォルトの名無しさん
2010/09/24(金) 03:39:18こういうEUC?コートでかかれているサイトをゲットしてきて
ソース内部のUTF8コードで書かれているものでキー検索するときは
どういった感じでコード変換かけてやればいいですかね?
0623デフォルトの名無しさん
2010/09/24(金) 03:48:590624デフォルトの名無しさん
2010/09/24(金) 03:52:52どうもありがとう。時間があるのときにそれで試してみます
0625デフォルトの名無しさん
2010/09/24(金) 14:12:53ファイルの文字列はurlのようにエスケープ文字を含んでいて、
比較対象もエスケープ文字を含んでいます。
完全一致の==で、ifしていますが、上手くいきません。
比較する2つの変数(文字列)を、\マークでエスケープしても
うまく動いていないようなのですか、どうすればいいでしょうか?
ご助言、参考サイトの紹介等お願いします。
0626デフォルトの名無しさん
2010/09/24(金) 14:26:100627デフォルトの名無しさん
2010/09/24(金) 14:44:59でも上手くいってません。
0628デフォルトの名無しさん
2010/09/24(金) 14:50:16ありがちなのはファイルから読み込んだほうの改行落としてないとか
0629デフォルトの名無しさん
2010/09/24(金) 15:29:52my $f_files="";
my $hikaku_moji="http://www.xxxx.com/index.html";
open( FILE ,"< $filename") ;
while( $f_lines=<FILE>){
#ファイル文字列側 改行削除
$f_lines =~ s/\r//g;
$f_lines = ~s/\n//g;
#ファイル文字列のエスケープ文字に\マークを付けている。
# 同じパターンで、"や'などもエスケープ
$f_lines =~ s/\//\\\//g ;
#比較側の$hikaku_mojiもここで同じ処理をしている。
if( $f_lines eq $hikaku_moji ){
print "同じです\n";
}else{
print "違います\n";
}
}
close( FILE );
エスケープ対象文字に漏れはありません。
文字列に円マークを入れていくのは変でしょうか?
0630デフォルトの名無しさん
2010/09/24(金) 15:33:25上手くいかないのはエスケープしてるからだろ
0631デフォルトの名無しさん
2010/09/24(金) 15:52:56変。
>#比較側の$hikaku_mojiもここで同じ処理をしている。
これwhileの中でやってたら何回も回すうちに http:\\\\\\\\\\/\\\\\\\\\\/ みたいになるんじゃねーの
0632デフォルトの名無しさん
2010/09/24(金) 16:00:56有難う御座いました。
0633デフォルトの名無しさん
2010/09/24(金) 16:01:22不必要に複雑にしてるとしか思えない。
0634デフォルトの名無しさん
2010/09/24(金) 18:08:100635デフォルトの名無しさん
2010/09/25(土) 14:41:38上記の文字列から数字だけを取り出して1個ずつ配列に格納するには
どうかくのがベストなのでしょうか。お願いします
0636デフォルトの名無しさん
2010/09/25(土) 14:53:49DB<9> $mojiretsu = "********1**********2***********3*********4********";
DB<10> @hairetsu = grep(/[0-9]/, split(/\*/, $mojiretsu));
0637デフォルトの名無しさん
2010/09/25(土) 14:57:01どうもありがとうございます。
なるほどsplitとかを使うのか。
参考になりました。
0638デフォルトの名無しさん
2010/09/25(土) 14:57:210639デフォルトの名無しさん
2010/09/25(土) 15:03:02どうもありがとうございます。
そんな方法初めて知った。勉強になりました
0640デフォルトの名無しさん
2010/09/25(土) 15:51:180641デフォルトの名無しさん
2010/09/25(土) 17:29:290642デフォルトの名無しさん
2010/09/25(土) 17:43:18$2に2が
っていう感じでマズはいるんだよね
0643デフォルトの名無しさん
2010/09/25(土) 20:59:39ほほーう!
0644デフォルトの名無しさん
2010/09/26(日) 22:48:110645デフォルトの名無しさん
2010/09/26(日) 23:02:49$before_10minute = localtime(time - 600);
$before_15minute = localtime(time - 900);
0646デフォルトの名無しさん
2010/09/26(日) 23:09:110647デフォルトの名無しさん
2010/09/27(月) 20:32:36perldoc DateTimeで詳しくみてないけど、
use strict;
use warnings;
use DateTime;
my $d = DateTime::Duration->new(minutes => 5);
my $now = DateTime->now(time_zone => 'Asia/Tokyo');
warn $now;
warn $now - $d;
warn $now - (2 * $d);
warn $now - (3 * $d);
こんな感じでいけた
0648デフォルトの名無しさん
2010/09/28(火) 13:30:54DateTimeつかうならこれで十分。
use DateTime;
my $now = DateTime->now(time_zone => 'Asia/Tokyo');
print $now->clone->subtract(minutes => $_), "\n" for 5,10,15;
0649デフォルトの名無しさん
2010/09/28(火) 15:08:27おぉ。そんな風にいけるのか。ありがとう
0650Perl忍者 ◆M5ZWRnXOj6
2010/09/28(火) 16:23:580651デフォルトの名無しさん
2010/09/29(水) 00:37:00ありがとうございます。コードがスマートになりました。
0652デフォルトの名無しさん
2010/09/29(水) 10:21:295.10を動かしてるところもあれば、5.8をつかってるところもあるんですけど。
5.6も考えたほうがいいんですか?
0653デフォルトの名無しさん
2010/09/29(水) 10:27:41Encode や今と同仕様の UTF-8 フラグを使えるのが 5.8.1 から。
モジュールの事を考えずに済むのなら、恐らく大半の人は 5.005_03 でも困らない筈。
0654デフォルトの名無しさん
2010/09/29(水) 13:56:26flockについてしらべてみたのですが、どういう問題があるのかなどわかりませんでした。
どのような問題があるのでしょうか?
0655デフォルトの名無しさん
2010/09/29(水) 14:13:210656デフォルトの名無しさん
2010/09/29(水) 14:20:56すみません。
私が読んだ記事には万能でないということしか書いておらず、
理由を探しております。
理由として探せたのはNFS上では使えないというものくらいでした。
(Windows9xで使えないというのもありましたが、最近では関係ないと思っております。
0657デフォルトの名無しさん
2010/09/29(水) 15:29:20このバージョンの書き方って、どう読めばいいんですか?
0658デフォルトの名無しさん
2010/09/29(水) 16:04:440659デフォルトの名無しさん
2010/09/29(水) 16:11:53ぱーるふぁいぶせぶんすりー
0660デフォルトの名無しさん
2010/09/29(水) 16:37:54正解
0661デフォルトの名無しさん
2010/09/29(水) 21:59:53日付だけ取ることはできませんか?¥
0662デフォルトの名無しさん
2010/09/29(水) 22:04:300663デフォルトの名無しさん
2010/09/29(水) 22:09:23>>662よりみじかくかけました
0664デフォルトの名無しさん
2010/09/29(水) 22:09:54perl 初心者がカキコ
my ($day) = (localtime(time))[3];
とかでいいのかな?
0665664
2010/09/29(水) 22:18:58で、もうちょっと考えてみて
もし自分で書くなら DateTime モジュール入れて
use DateTime;
my $tn = DateTime->now( time_zone => 'Asia/Tokyo' );
say $tn->day;
こんな感じにするかもしれない。
# 月とか扱いやすいしね
0666デフォルトの名無しさん
2010/09/29(水) 22:24:23my $wdy = (split ' ', localtime)[0]; # Wed etc.
my $mon = (localtime =~ /[^ ]+/g)[1]; # Sep etc.
my $hh_mm_ss = (localtime =~ /[^ ]+/g)[3];
0667デフォルトの名無しさん
2010/09/29(水) 23:02:25use Time::Piece;
print localtime->mday; #=> 29
>>664
($day)の括弧はこの場合は余計。
0668デフォルトの名無しさん
2010/09/30(木) 02:44:01linux なら POSIX::mkfifo で作れたけど、CamelBoxではムリポだった
0669デフォルトの名無しさん
2010/09/30(木) 08:06:23Time::Piece は 5.8.x 系までは標準モジュールでなかったので、
「それだけの目的」の為に可搬性を落とす必要はないという考え方もある。
0670デフォルトの名無しさん
2010/09/30(木) 16:36:130671デフォルトの名無しさん
2010/09/30(木) 17:16:190672デフォルトの名無しさん
2010/09/30(木) 17:18:090673デフォルトの名無しさん
2010/09/30(木) 17:28:07Pythonはちょろっとさわって、2x系と3系の違いが結構微妙だったので使うのをやめた
もっとこなれたらさわるかもしれない
0674デフォルトの名無しさん
2010/09/30(木) 18:06:03もう限界と感じるようになった
0675デフォルトの名無しさん
2010/09/30(木) 18:52:260676デフォルトの名無しさん
2010/09/30(木) 21:13:03って人も結構多いよね。
0677デフォルトの名無しさん
2010/09/30(木) 21:13:430678デフォルトの名無しさん
2010/09/30(木) 21:23:05まともにPerlを勉強してないけど
ある程度C言語の知識があると書けるね
0679デフォルトの名無しさん
2010/09/30(木) 21:23:49あー。確かにPerlは日本語とWindows環境で苦労してるわ
何度悩んで数日無駄にしたことか
0680デフォルトの名無しさん
2010/09/30(木) 21:27:230681デフォルトの名無しさん
2010/09/30(木) 21:29:320682デフォルトの名無しさん
2010/09/30(木) 21:32:12ドキメントも情報も英語が多いのとモジュールだと枝葉にいってしまうので
知っている人が少ない。日本語処理もおかしくなるときがあるので
逆にモジュールを使ってしまって失敗したケースもあるな。
0683デフォルトの名無しさん
2010/09/30(木) 22:11:091行目0D
2行目0D
3行目0D 0A
以降. 0D 0A
...
というちょっと困ったサイトがあります。これは特に問題ではなかったのですが、
このサイトをLWPのrequestを使って保存し、エディタで開いたところ
改行の後ろに空行が入る状態になってしまいました。
バイナリを見てみると
1行目0D 0A
2行目0D 0A
3行目0D 0D 0A
以降. 0D 0D 0A
...
となってしまっていました。置換が入っておかしな事になってしまったようでした。
いらぬ置換が入る前に自分で置換すれば良いですが、私としては元のままの状態で保存したいです。
$ua->mirror()を使ったところ改行コードの状態はそのまま保持されたのですが、
取得したデータをスクレイピングするので、mirrorを使うと、データを取得してファイルに保存してそしてそれを開くことになり、
これは如何なものかと思いました。$ua->request()を使った場合でも改行状態をそのまま保存する方法はないでしょうか?
684 :デフォルトの名無しさん [sage] :2010/09/30(木) 22:11:12
>>683
データ保存時にopen(FH, ">:raw", "filename.html");
685 :683 [sage] :2010/09/30(木) 22:11:20
>>684
おお、>:rawを指定して保存すると0Aが0D 0Aに置換されなくなるんですね。
無事そのままの状態で保存することができました。即レスありがとうございました。
0684デフォルトの名無しさん
2010/09/30(木) 22:13:430685デフォルトの名無しさん
2010/09/30(木) 22:43:490686デフォルトの名無しさん
2010/09/30(木) 23:05:55binmode と >:raw はイコール?
とすれば一々binmodeするのやめたいのだが・・・
0687デフォルトの名無しさん
2010/10/01(金) 00:28:51rubyのinclude?に相当する関数または演算子はありますか。
['a', 'b', 'c'].include?('b') #=> true
['a', 'b', 'c'].include?('x') #=> false
質問その2
use Hogehoge; をすると必ず Hogehoge.pm を読みにいくようですが、
Hogehoge.pmを読みにいかないようにできますか。
動機は、ひとつのファイルに複数のパッケージを定義したときに、
そのうちのひとつをuseしようとすると、存在しないファイルを読みにいって
しまうからです。
たとえばHoge.pmの中にHoge::AとHoge::Bというパッケージを定義したとして、
use Hoge; は問題なくできますが、use Hoge::A; を実行すると Hoge/A.pm を
探しにいってエラーとなってしまいます。
%INCを触ればいいのかと思いましたが、そうでもないようで行き詰まりました。
どなたかアドバイスお願いします。
0688デフォルトの名無しさん
2010/10/01(金) 00:51:07そういう新興宗教言語が欲しければ自分で作りなさい。
0689デフォルトの名無しさん
2010/10/01(金) 01:01:371. !!(grep { $_ eq 'b' } ('a'..'c')
2. use Hoge; Hoge::A->any_method(); # => ok
0690デフォルトの名無しさん
2010/10/01(金) 01:38:14ありがとうございます。
>1. !!(grep { $_ eq 'b' } ('a'..'c')
grepだとリストを全件見るんですよね。
そうではなくて、見つかった時点で即座に真を返すような関数はありませんでしょうか。
>
>2. use Hoge; Hoge::A->any_method(); # => ok
これは希望する動作ではないです。
今は Hoge.pm の中に Hoge::A も Hoge::B も定義されているんですが
将来的にファイルを分割した場合でも使い方を変えないですませたいです。
(あるいは逆に現在分割しているパッケージを1ファイルに集約した場合も。)
つまりファイルを分割してようがしてなかろうが、
use Hoge; use Hoge::A; または use Hoge; use Hoge::B;
のように使えたらうれしいんですけど、Perlでは難しいでしょうか。
0691デフォルトの名無しさん
2010/10/01(金) 01:52:02作ればおk
sub include($@){
my($char, @array) = @_;
foreach(@array){
return 1 if $char eq $_;
}
return 0;
}
新しく空のパッケージを作成しておく
-- Hoge/A.pm --
package Hoge::A;
1;
またはモジュールロード用のパッケージを作成しておき、処理の最初に必ず読み込むようにする
0692デフォルトの名無しさん
2010/10/01(金) 03:40:13入力部分にあらかじめ文字列を表示(入力)させておくことはできますか?
はじめから「hoge」と入力されてて、それに続けて入力できるような
0693デフォルトの名無しさん
2010/10/01(金) 08:04:040694デフォルトの名無しさん
2010/10/01(金) 08:38:33use List::Util 'first';
if ( defined first { $_ eq 'b' } 'a'..'c' ) { ... }
0695デフォルトの名無しさん
2010/10/01(金) 10:18:04use strict;
package Foo;
$INC{'Foo.pm'} = '/fake/path/to/Foo.pm'; print __PACKAGE__, " loaded.\n";
sub qux { "$_[0]::qux\n" }
package Bar::Baz;
$INC{'Bar/Baz.pm'} = '/fake/path/to/Bar/Baz.pm'; print __PACKAGE__, " loaded.\n";
sub qux { "$_[0]::qux\n" }
package Quux;
$INC{'Quux.pm'} = '/fake/path/to/Quux.pm'; print __PACKAGE__, " loaded.\n";
sub qux { "$_[0]::qux\n" }
1;
のような同一の中身で Foo.pm、Bar/Baz.pm、Quux.pm を作れば
#!/usr/bin/perl -w
use strict;
use Quux;
use Bar::Baz;
use Foo;
print Foo->qux, Bar::Baz->qux, Quux->qux, map "$_:[$INC{$_}]\n", sort keys %INC;
のように重複したりバラバラの順序で use してもエラーにならないし、スクリプト
からの見かけ上は use Foo; のみで Foo->qux が使える (実際は Foo.pm 内の
不要なパッケージも全て有効になっている)。ただ当然の帰結として、Quux を
分離したければ Foo.pm と Bar/Baz.pm から Quux を削除しておかないと、
use Foo; use Quux; のような順序で use しているスクリプトは Foo.pm 内の
Quux を使ってしまうといった下らない罠に自らはまる事になる。
0696デフォルトの名無しさん
2010/10/01(金) 15:46:58どうやればよいですか
0697デフォルトの名無しさん
2010/10/01(金) 16:51:10use warnings;
print "Input Data (Default: TEST) > TEST\r";
print "Input Data (Default: TEST) > ";
my $input = <STDIN>;
chomp $input;
$input = 'TEST' if !$input;
print $input;
欠点は4文字より少ない入力をするときにデータはちゃんと受け取れるが、
入力中が、例えば 「12ST」 のようになってしまう。
0698デフォルトの名無しさん
2010/10/01(金) 17:31:28その「TEST」の後ろから続けて入力できて、またバックスペースで「TEST」のところまで消したりできるようにしたいんです
「TEST」に続いて「hoge」と入力したら「TESThoge」が受けとれるようにしたいです
0699デフォルトの名無しさん
2010/10/01(金) 20:44:20List::Utilという便利パッケージがあるんですね。ありがとうございます。
ただinclude?相当の関数ぐらい標準であってもよさそうなもんですが、以外とそうでもないんですね。
>>695
まさにこれが知りたかった情報でした。ありがとうございます。
自分で%INCをいじってたときにはうまくいかなかったのですが、
このスクリプトはうまく動作することを確認しました。
自分のは何がまずかったのだろうか。
あと、perlではパッケージごとに別ファイルにするのが推奨なのでしょうか。
自分で%INCいじってると、そうとしか思えません。
クラスは細かくわけたいけど、ファイルまでわけるのはちょっと。
0700デフォルトの名無しさん
2010/10/01(金) 21:20:120701デフォルトの名無しさん
2010/10/01(金) 21:36:43最近読んだソースがみなカッコを省略する傾向にあったので、
Perlではそういう流儀なのかなと思って質問してみました。
なんかPerl標準のコーディング規約があればおしえてください。
0702デフォルトの名無しさん
2010/10/01(金) 21:39:56好み
0703デフォルトの名無しさん
2010/10/01(金) 21:40:370704デフォルトの名無しさん
2010/10/01(金) 21:49:25> パッケージごとに別ファイルにするのが推奨なのでしょうか。
ケースバイケース。
ただ指標として、実現手段が異様に複雑だと感じたなら設計を見直すべき。
あとは手元の環境にインストールされている沢山のモジュールをお手本に。
>>701
http://perldoc.perl.org/perlstyle.html
http://perldoc.jp/docs/perl/5.10.0/perlstyle.pod
0705デフォルトの名無しさん
2010/10/01(金) 22:19:12>ケースバイケース。
それをいっちゃうと身もふたもないような。
>ただ指標として、実現手段が異様に複雑だと感じたなら設計を見直すべき。
実現手段が複雑というのはどういう意味でしょうか。
今はパッケージごとにファイルを分割するべきかどうかを質問しているのですが、
その話の流れの中で「実現手段の複雑さ」とか「設計を見直す」とか言われても、何を意図しているのかよくわかりません。
>あとは手元の環境にインストールされている沢山のモジュールをお手本に。
いやだから、そのたくさんのモジュールたちはどういう基準でファイルを分割しているのかが知りたいんですが。
>ケースバイケース。
>ただ指標として、実現手段が異様に複雑だと感じたなら設計を見直すべき。
>あとは手元の環境にインストールされている沢山のモジュールをお手本に。
0706デフォルトの名無しさん
2010/10/01(金) 22:30:260707デフォルトの名無しさん
2010/10/01(金) 23:35:30現在ダウンロード可能な64bit用のソフトを下記サイトのように
転用しようと考えています。
http://builder.japan.zdnet.com/sp/snow-leopard-09/story/0,3800100196,20412692,00.htm
上記サイトで出ているコマンド(下記)
$ defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes
を実行することで解決しようと考えておりますが、
このコマンドを実行するにはどうしたらよいのでしょうか、
ご存じの方ご教示ください。
0708デフォルトの名無しさん
2010/10/01(金) 23:47:360709デフォルトの名無しさん
2010/10/02(土) 00:00:30ReadLine
0710デフォルトの名無しさん
2010/10/02(土) 00:39:50> それをいっちゃうと身もふたもないような。
曖昧模糊とした質問にはそう答えるしかないな。万能解は無いさ。
君の作ったパッケージ群がどういった基準で分けられていて、それぞれがどういう関係に
あって、何処からどれを使いたいかを俺は知らないからね。
> どういう基準でファイルを分割しているのかが知りたいんですが。
それぞれの作者が自分のやりたい事を Perl で実装する上で理に適ってると考えた
分け方をしてると思う。茶化してるわけじゃないよ。目的によって最適な手段は変わるから、
手段だけ切り離して必ずこうすべきとは言えないんだ。そして目的と手段を組み合わせた
実例が目の前のモジュールだから、自分のやりたい事と似たケースを探せばいい。
実装レベルでなく設計レベルの話ならその手の専門書でも読んでね。
> 実現手段が複雑というのはどういう意味でしょうか。
Perl は use Foo; で Foo.pm を読む仕組みになっているから、Foo::func() を使いたかったら
Foo.pm に package Foo; を書いて use Foo; するのが Perl 的にシンプル。 >>695 のように
複雑で面倒な事が必要になるのは、「ファイルは1つにまとめたいけど個別に use したい」
という要求に原因がある。パッケージごとにファイルを分けるべきかどうかや >>695 のような
アプローチを採るべきかどうかは、この要求がどのくらい切実かによって変わるんだよ。
まずい設計に引っ張られてまずい実装になっているなら設計を見直すべきだし、
実装レベルの工夫によってトータルで楽ができるならそうしたらいい。
0711デフォルトの名無しさん
2010/10/02(土) 01:35:06インターフェースかそうでないかでパッケージ分ければ?
俺はあとあとの変更が面倒だから全部最初から分けてるけど
0712デフォルトの名無しさん
2010/10/02(土) 07:22:35# どれも正常
open(HOGE, ">:raw", encode('CP932', "改行チェック0A.txt"));
print HOGE "あいうえお\x0Aかきくけこ\x0A"; # -> 0A
close HOGE;
open(HOGE, ">:raw", encode('CP932', "改行チェック0D.txt"));
print HOGE "あいうえお\x0Dかきくけこ\x0D"; # -> 0D
close HOGE;
open(HOGE, ">:raw", encode('CP932', "改行チェック0D0A.txt"));
print HOGE "あいうえお\x0D\x0Aかきくけこ\x0D\x0A"; # -> 0D 0A
close HOGE;
# 1,2番目は正常なファイル 3番目は異常なファイル
open(HOGE, ">:encoding(cp932)", encode('CP932', "改行チェック0A.txt"));
print HOGE "あいうえお\x0Aかきくけこ\x0A"; # -> 0D 0A
close HOGE;
open(HOGE, ">:encoding(cp932)", encode('CP932', "改行チェック0D.txt"));
print HOGE "あいうえお\x0Dかきくけこ\x0D"; # -> 0D
close HOGE;
open(HOGE, ">:encoding(cp932)", encode('CP932', "改行チェック0D0A.txt"));
print HOGE "あいうえお\x0D\x0Aかきくけこ\x0D\x0A"; # -> 0D 0D 0A
close HOGE;
>:encoding()を使って出力した場合、単純に0Aが0D 0Aに置換されていました。perl内部において改行コードは0Aで統一されているという事のようですね。 s/\x0D\x0A|\x0D/\x0A/g とすることにしました。
0713デフォルトの名無しさん
2010/10/02(土) 10:43:290714デフォルトの名無しさん
2010/10/02(土) 12:48:55Cのライブラリに依存してる気もするけど、
実際どうなんだろ。
0715デフォルトの名無しさん
2010/10/02(土) 18:25:45どうやればよいですか
0716デフォルトの名無しさん
2010/10/02(土) 23:44:51未だにECUやSJISで書いてる奴ってなんなの?
0717デフォルトの名無しさん
2010/10/02(土) 23:47:350718デフォルトの名無しさん
2010/10/03(日) 01:52:52print HOGE "あいうえお\x0D\x0Aかきくけこ\x0D\x0A"; # -> 0D 0D 0A
close HOGE;
0719デフォルトの名無しさん
2010/10/03(日) 08:44:43EUC-JP にしとけば大丈夫! って思ってた時期がありました
今も EUC-JP なのはその名残
新しく書き起こすのは UTF-8 にしてるけど、以前に作ったやつは今も稼動中なので、
そのサイト内で作る場合は EUC-JP なんだよね
改行コードは OS は \r\n なのでそれにあわしてる
0720デフォルトの名無しさん
2010/10/03(日) 13:43:17HTTPのようにCRLFに固定させたいなら、バイナリモードで扱えばいい。
0721デフォルトの名無しさん
2010/10/03(日) 15:36:50出力のエンコーディングや改行コードは状況に合わせる
0722デフォルトの名無しさん
2010/10/03(日) 19:11:32世の中にはsjisとeucだけあればいい
0723デフォルトの名無しさん
2010/10/03(日) 20:22:350724デフォルトの名無しさん
2010/10/03(日) 20:58:570725デフォルトの名無しさん
2010/10/03(日) 20:59:120726デフォルトの名無しさん
2010/10/03(日) 22:14:01MicroSoftが勝手にでっちあげた文字コードを、日本IBMやらNECやらの当時の乞食どもがさらにいじくり回して分けワカメ状態にして、その上さらに本家MSが泥沼状態に輪を掛けた、私企業謹製カオス文字コードだ。
ちなみに昔のNECのPC-9801シリーズでは、小細工すれば別々の漢字の左半分と右半分を合成して1文字枠に表示できたし、1つの漢字の文字面を左右逆転する事もできた。
今なら何も不思議では無いかもしれないが、当時はROMに搭載されている固定フォントしか表示出来なかった時代だ。
shift-jisの「shift」とは、元々はこの意味(半角単位でイメージ登録しているROMフォントの表示位置をずらす)だ。
0727デフォルトの名無しさん
2010/10/03(日) 23:06:13MS-KanjiとCP932
この二つは分けて考えるべきだと思うんだ。
出所がMS-DOSだったとしても。
0728デフォルトの名無しさん
2010/10/03(日) 23:21:37ちょうどこれを読み終わったところ
面白かったし為になった
eucにしとけば大丈夫とか思ってる奴は読んどけ
0729デフォルトの名無しさん
2010/10/03(日) 23:29:270730デフォルトの名無しさん
2010/10/04(月) 00:36:24JIS
CP932
携帯からこう書くのが面倒だったので省いただけw
誰も工業規格とか言ってましぇんよぅ
0731デフォルトの名無しさん
2010/10/04(月) 06:34:55悪い癖だ。
0732デフォルトの名無しさん
2010/10/04(月) 07:51:19なんか良さそうだね。
俺も読んでみるわ。
0733デフォルトの名無しさん
2010/10/04(月) 12:05:37スクリプトもUTF-8で書いて処理、出力もUTF-8
CGIはeucなんて書いてるサイトもあるが、昔の話だと個人的には思ってる。
まだまだsjisのサイトとか残ってるから、絶対にUTF-8とは言えんが。
自分のPC内で処理させるだけなら、自分の好きな文字コード使えばいいだろ。
仕事でPerl使ってると、また別の話。
0734デフォルトの名無しさん
2010/10/04(月) 16:15:06use utf8;
use Encode;
use Encode::JP::H2Z;
my $str_z = "Hello World.全角カタカナデス。 12345 67890";
my $str_h = "Hello World.全角カタカナデス。 12345 67890";
binmode STDIN, ":encoding(cp932)";
binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
# 全角カナ→半角カナ
Encode::_utf8_off($str_z);
Encode::from_to($str_z, "utf-8", "euc-jp");
Encode::JP::H2Z::z2h(\$str_z);
Encode::from_to($str_z, "euc-jp", "utf-8");
Encode::_utf8_on($str_z);
print $str_z, "\n"; # => Hello World.全角カタカナデス。 12345 67890
# 半角カナ→全角カナ
Encode::_utf8_off($str_h);
Encode::from_to($str_h, "utf-8", "euc-jp");
Encode::JP::H2Z::h2z(\$str_h);
Encode::from_to($str_h, "euc-jp", "utf-8");
Encode::_utf8_on($str_h);
print $str_h, "\n"; # => Hello World.全角カタカナデス。 12345 67890
めんどくせぇぇぇぇ・・・
0735デフォルトの名無しさん
2010/10/04(月) 16:27:11use Lingua::JA::Regular::Unicode;
use utf8;
binmode STDOUT, ":encoding(cp932)";
my $str_z = "Hello World.全角カタカナデス。 12345 67890";
my $str_h = "Hello World.全角カタカナデス。 12345 67890";
print katakana_z2h($str_z), "\n";
print katakana_h2z($str_h), "\n";
0736デフォルトの名無しさん
2010/10/04(月) 16:44:460737デフォルトの名無しさん
2010/10/04(月) 21:20:43ttp://d.hatena.ne.jp/dayflower/20060530/1148951624
0738デフォルトの名無しさん
2010/10/04(月) 23:39:240739デフォルトの名無しさん
2010/10/05(火) 02:20:55http://search.cpan.org/~tokuhirom/Lingua-JA-Regular-Unicode-0.04/lib/Lingua/JA/Regular/Unicode.pm
からLingua-JA-Regular-Unicode-0.04.tar.gzをダウソして、解凍して、Makefile.plを動かしてみると
|サポートされていない16ビットアプリケーション
|64ビットバージョンでの Windows での非互換性のため、プログラムまたは機能
|である"\??\C:\Perl64\bin\Nmake15.exe"を開始または実行できません。ソ
でインスコ失敗。
http://www.fxfrog.com/?p=194 ここ見て64bit版のnmakeを入れてから上の手順をやってみると、
it looks like goodのようなメッセージが出たので成功したように見えた。しかし実際にスクリプト内で
use Lingua::略をしてみると見つからないとのエラーが出た。インスコはうまくいってなかった。
今度はcpan Lingua::JA::Regular::Unicodeとしてみるとダラ〜っと色んな表示が出て勝手に色々
やってくれてうまく行った。
0740デフォルトの名無しさん
2010/10/05(火) 02:34:500741デフォルトの名無しさん
2010/10/05(火) 02:38:30と思って今もう一度試してみたら登録名がLingua-JA-Regular-Unicodeになっていた。
0742デフォルトの名無しさん
2010/10/05(火) 06:19:11Encode.pmのeuc縛りとutf8フラグのコンボが見事に炸裂しとるな
0743デフォルトの名無しさん
2010/10/05(火) 06:30:49@huga = qw(3 6 7 7 7 7 9);
@mixed = arrayMix(\@main, \@sub);
print @mixed;
sub arrayMix(){
my @ary1 = (sort {$b<=>$a} @{$_[0]}); #(1)
my @ary2 = (sort {$b<=>$a} @{$_[1]});
my @q = ();
my $x = shift @ary1;
my $y = shift @ary2;
while(1){
if($x>=$y){
push(@q,$x);
$x = shift @ary1;
next if $x ne "";
push(@q,@ary2);
last;
}else{
push(@q,$y);
$y = shift @ary2;
next if $y ne "";
push(@q,@ary1);
last;
}
}
return @q;
}
2つの昇順の配列を1つの配列にする関数をあれこれと書きなおしつつやっと完成させた。
ついでに並びがバラバラの配列にも対応させようと、(1)の部分にソート処理を付け加えている時に気づいたんだが、
この関数、my @mixed = (sort {$b<=>$a} (@hoge,@huga)); の一行で・・・
0744デフォルトの名無しさん
2010/10/05(火) 07:13:030745デフォルトの名無しさん
2010/10/05(火) 07:57:380746デフォルトの名無しさん
2010/10/05(火) 11:01:35〜とか狂うだろ。iconvは頭悪いからな。
0747デフォルトの名無しさん
2010/10/05(火) 13:41:58STDOUTをutf-8にすると何故かうまく表示できるのですが、それ以外が化けてしまいます。
これはどういうことなのでしょうか?
use utf8;
binmode STDIN, ":encoding(cp932)";
binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
print @ARGV, "\n";
print "ほげほげ\n";
>test.pl あいう
"\x{0082}" does not map to cp932 at test.pl line 5.
"\x{00a0}" does not map to cp932 at test.pl line 5.
"\x{0082}" does not map to cp932 at test.pl line 5.
"\x{0082}" does not map to cp932 at test.pl line 5.
"\x{00a4}" does not map to cp932 at test.pl line 5.
\x{0082}\x{00a0}\x{0082}¢\x{0082}\x{00a4}
ほげほげ
STDINを変えても変化なし、しかしSTDOUTを":utf-8"に変えると
>test.pl あいう
あいう
Wide character in print at test.pl line 6.
縺サ縺偵⊇縺・
0748747
2010/10/05(火) 14:25:35引数@ARGVは標準出力じゃないのではないかと思いました。
ぐぐってみるとSTDINと@ARGVは別物で@ARGVの文字コードを指定することは出来ないようでした。
binmode STDINのように簡単に変更することは出来ないんですね。やや面倒くさい。
@ARGV = map{decode('cp932', $_)} @ARGV;としたらうまくいきました。
STDOUTを":utf-8"とするとうまく表示できた理由は、
cp932の引数がutf-8としてエンコードされていたからutf-8としてデコードすると元のcp932に戻る、という過程による物のようでした。
0749デフォルトの名無しさん
2010/10/05(火) 15:00:47下の二行は間違い
0750747
2010/10/05(火) 15:21:26もしcp932の引数がutf-8として無理やりデコードされているなら
mapでは{decode('cp932', encode('utf-8', $_))}としないといけないはずですから。
実際の所そのコードは化けてしまい何故かdecode('cp932', $_)で正常動作したので疑問に思っていました。
(それと>>748ではエンコードとデコードの言葉遣いが逆でした。)
色々と試してみました。
まずrawで出力すると正常に表示されました。
binmode STDOUT, ":raw";
print $ARGV[0],"\n"; # つまり$ARGV[0]はcp932
次にcp932で出力すると化けました。これはcp932をさらにcp932にエンコードしているので当然。
binmode STDOUT, ":encoding(cp932)";
print $ARGV[0],"\n";
次にutf-8で出力すると何故か化けない。これが不思議。
cp932がutf-8として無理やりデコードされているから、utf-8にエンコードして出力するとするとcp932に戻ると思った。
binmode STDOUT, ":utf-8";
print $ARGV[0],"\n";
しかし、不思議なことにこうするとなぜか化ける。
binmode STDOUT, ":raw";
printf "%s\n", decode('utf-8', $ARGV[0]);
もしやと思いこうしてみた。
binmode STDOUT, ":encoding(utf-8)";
print $ARGV[0],"\n";
ビンゴ、同様に化けた。
":utf-8"はutfフラグが立っている場合のみエンコードして、立っていない場合はそのまま出力するんですね。
なぜutf-8の場合だけ":encoding(utf-8)"ではなく":utf-8"と省略して書けるんだろうと思っていましたが、意味が違ったんですね。スッキリしました。
0751デフォルトの名無しさん
2010/10/05(火) 16:23:25kakasiとか使ってる古いモジュールがEUC限定だったりはしないの?
0752デフォルトの名無しさん
2010/10/05(火) 18:19:47use Encode;
my $str = "\x82\xa0\x82\xa2\x82\xa4"; # (CP932) あいう
binmode STDOUT, ':utf8';
print $str, "\n";
binmode STDOUT, ':encoding(utf-8)';
print $str, "\n";
exit;
結果
ツつツつ「ツつ、
ツつツつ「ツつ、
手元では化けるけど、何が違ってるんだろうか。
0753デフォルトの名無しさん
2010/10/05(火) 18:39:41集団でなにかを差し出しているようだ
0754デフォルトの名無しさん
2010/10/05(火) 18:43:54my $str = "\x82\xa0\x82\xa2\x82\xa4"; # (CP932) あいう
binmode STDOUT, ':utf8';
print $str, "\n";
binmode STDOUT, ':encoding(utf-8)';
print $str, "\n";
だと
|ツつ�ツつ「ツつ、
|ツつ�ツつ「ツつ、
になるけど
binmode STDOUT, ':utf8';
print $ARGV[0], "\n";
binmode STDOUT, ':encoding(utf-8)';
print $ARGV[0], "\n";
だと
|あいう
|ツつツつ「ツつ、
になった
どういう事だろう
0755デフォルトの名無しさん
2010/10/05(火) 19:11:59ってどこかに書いてあったよ
なので 「なんでだろう?」 じゃなくて 「そうゆうもんなんだ」 って思うようにしてる
0756デフォルトの名無しさん
2010/10/05(火) 21:36:08IPアドレスが書かれたtxtから100個ずつ読み込み
このエントロピー計算に当てはめ計算結果を出していく
http://ourfilehost.net/up/file1/img/up1922.bmp
以下のプログラムを作ったのですがどうしても上手くいきません・・・
txtには300個のIPが以下のように書かれています
http://ourfilehost.net/up/file1/img/up1923.txt
デバックしてみたところ、問題点は
最初にtxtからIPを100個読み込むif文がうまく行っていないようです
最初のifで1個目から100個目のIPを読み、計算後カウンターを0にして
101〜200まで読み・・・の動作を行うつもりで作ったのですが
どうしても一巡目の100までしか読みません。(プログラムが終了してしまう)
もう一つの問題点は1〜100までの数値で計算結果は1つであるはずなのに
1〜100間の計算でなぜか7個も答えが出てしまう
ここで使用されている計算は100個中に出現するIPを集計して公式に当てはめます
「192〜1」のIPは100個中25個の場合25/100と100個内にある全ての種類を集計します
(25/100、20/100、5/100、18/100、32/100)結果としてはこのような感じです
なので計算結果は300個なら3つしか出ないのですが
計算をする部分でおかしくなっているようです(公式はあっています)
かなり悩んだのですがどうしても答えが出ないので
どうかご教授御願いします
0757デフォルトの名無しさん
2010/10/05(火) 21:40:55open(FILE,"testIP.txt"); #ファイル読み込み
open(out,">>testccc.cvs");
use strict;
use warnings;
use utf8;
my $count;
my $t;
my $key;
my $nu;
my $ref_freq;
my %ref_freq;
my @x;
my @syu;
my $v;
my $b;
my $count = 0; #全体IPカウント
my $numcount =0; #抽出するIP用のカウンター
my $b = 0;
0758デフォルトの名無しさん
2010/10/05(火) 21:42:42#IP集計
if($t){
++$ref_freq{$t};
$numcount +=0;
print"++$ref_freq{$t} \n\n"; #チェック用
print"$allcount \n\n"; #値チェック用
if($numcount==100){ #IP100個で集計で計算開始
print"100ko syuukei simasita! \n\n"; #チェック用
foreach my $syu (keys %ref_freq) { #IPの種類分ループ
@x[$b] = $ref_freq{$syu};
$count += @x[$b];
my $y=$count;
my $num =0;
my @pi = map $_ / $y, @x;
my $i;
for($i=0;$i<=$#pi;$i++){
print"keisann kaisi desu! \n\n"; #チェック用
print"beha $syu \n\n"; #値チェック用
print"pi-ai @pi \n\n"; #値チェック用
print"ekkusuha @x[$b] \n\n"; #値チェック用
print"bunbo $count \n\n"; #値チェック用
print"@pi\n\n";
$num += -($pi[$i]*log($pi[$i]) / log(2));
}
改行の関係で非常に読みにくいので
plを最後にうpします
0759デフォルトの名無しさん
2010/10/05(火) 21:48:33print "$num \n"; #値チェック用
}
#####値の初期化########
@x=0;
&shu=0;
$ref_freq=0;
%ref_freq=0;
$count=0;
$numcount=0;
}
}
}
ファイルはこちらになります
http://ourfilehost.net/up/file1/upload.php?id=1925
よろしく御願いします
0760デフォルトの名無しさん
2010/10/05(火) 22:03:22$numcount +=0;
折角のカウンタ $numcount をカウントアップしてねーじゃん。
このケースなら $. が利用出来るから、
while ($t = <FILE>){
前処理
if ( $. % 100 == 0 ){
処理
}
後処理
}
の方がスマート。
0761756
2010/10/05(火) 22:50:36アドバイスありがとうございます
$numcount +=0; は
うpするときに間違えてました
実際は$numcount +=1;で
実行結果は>>756様になります
0762デフォルトの名無しさん
2010/10/05(火) 23:10:190763デフォルトの名無しさん
2010/10/05(火) 23:14:51つか、$b は sort が(略
&shu = 0 # って何だよ? lvalue サブルーチンでも使ってるのか?
つか &shu をどこで使ってんだよ、本当は。
$ref_freq = 0; # って一個も使ってないぞ。
%ref_freq=0; # ハッシュの初期化になってねーよ。%ref_freq = ();
ってこんな風にかたっぱしからチェックしろと言うのか?
0764デフォルトの名無しさん
2010/10/05(火) 23:33:06ttp://codepad.org/FjFApjZZ
こんなのどうだ
ソースがあまりにもあんまりだから全面改定
0765デフォルトの名無しさん
2010/10/05(火) 23:34:210766756
2010/10/05(火) 23:48:37返信ありがとうございます
ネット上から調べて書いているので
見よう見まねで不透明な部分も非常に多いです
foreach my $syu (keys %ref_freq) { #IPの種類分ループ
@x[$b] = $ref_freq{$syu};
$count += @x[$b];
$bには$syuの値が入ってると思っていましたが
実際にプログラムを書いてる最中に
インクリメントしていないのと気がついたので
削ったのですが、削ると計算結果がおかしくなり
でも途中で入ってる数値をprintで確認しても0のまま・・・
keyでハッシュ(連想配列)の中身を取り出す際に必要な物かと
勝手に想像していました。
0767デフォルトの名無しさん
2010/10/06(水) 00:00:52は、
「こんなナメた質問をするんじゃねーよ。答える気にもならんよ。」
って暗に書いたつもりだ。言い訳のレスが欲しいわけじゃない。
俺にレスる時間があれば、>>764氏のソースをきっちり読み込めば?
(当方は未読だから本当に求めるものが出るか知らんが、)
0769756
2010/10/06(水) 00:06:33模範解答ありがとうございます
エントロピーの計算は少々違う物でしたが
データ流れは私が求めている物でした
コレを見ながら勉強させていただきます
答えはトリップ!
正解者にはperl一年分をプレゼント!!
0771デフォルトの名無しさん
2010/10/06(水) 00:15:450772デフォルトの名無しさん
2010/10/06(水) 01:26:59ちゃんと読んでないけどこれたぶん 0+@dummy とか書くべきとこだよね
あと$ips[0]が読み飛ばされてたりするけど、
そもそも最初からファイル全部読み込んでおいていいんだったらカウントして100行ごとに云々とかせんでも
my $start = 0;
while (my @ip100ko = grep { defined } @ips[$start..$start+99]) {
処理
$start += 100;
}
で終いだよね
正解!!
#[$i-1]
例えばIPが352個あるときは100,100,100,52の組にすることを想定
0774デフォルトの名無しさん
2010/10/06(水) 08:46:12$ua->agent('Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10');
$ua->timeout(60);
my $cookie_jar = HTTP::Cookies->new(file => 'cookie.txt', autosave => 1);
$ua->cookie_jar($cookie_jar);
my $mov_req = HTTP::Request->new(GET => $movie_url);
open(MOVFH, '>', $localflvfile);
binmode MOVFH;
my $mov_res = $ua->request($mov_req, ':content_cb' => \&ProgressDownload);
close(MOVFH);
sub ProgressDownload{
my ($chunk, $res, $proto) = @_;
print 'test';
}
LWP のダウンロードの進捗状況を表示してみようと、上記のようにやっているのですがコールバックが呼ばれません。
ダウンロードしようとしてる動画 URL は合っています。 (改造前ではダウンロード出来ています)
なんでコールバック関数が呼ばれないんでしょか・・・
0775デフォルトの名無しさん
2010/10/06(水) 08:52:19これだと呼ばれるのですが、個人的には request で処理したいのに・・・
0776デフォルトの名無しさん
2010/10/06(水) 08:57:07$ua->request($mov_req, ':content_cb' => \&ProgressDownload);
じゃなくて
$ua->request($mov_req, \&ProgressDownload);
っていうだけだった・・・
0777デフォルトの名無しさん
2010/10/06(水) 11:31:040778デフォルトの名無しさん
2010/10/06(水) 20:27:03Storableを使ってWWW::Mechanizeオブジェクトのクーロンを作ってみたのですが、$mech_clone->contentでエラーとなってしまいました。
どうしたら動作するように出来るでしょうか?
# cat a.pl
use WWW::Mechanize;
use Storable;
$Storable::Deparse = 1;
$Storable::Eval = 1;
my $mech = WWW::Mechanize->new();
my $serialized = Storable::freeze \$mech;
my $mech_clone = ${ Storable::thaw($serialized) };
$mech_clone->get("http://google.co.jp");
print $mech_clone->content();
# perl a.pl
Error GETing http://google.co.jp: Can't call method "add_cookie_header" on an undefined value at a.pl line 11
0779デフォルトの名無しさん
2010/10/06(水) 21:10:14$ARGV[1]に (1+1/2)/2 とかが入る。
$argv1 = $ARGV[1];
if($var > $argv1){
処理;
}
0780デフォルトの名無しさん
2010/10/06(水) 21:43:09$argv1 = eval($ARGV[1]);
0781デフォルトの名無しさん
2010/10/06(水) 23:05:19自分専用ならいきなり eval で済ませそうだけど。
0782デフォルトの名無しさん
2010/10/07(木) 00:10:16[qw(data1 data2 data3)],
[qw(hugahuga ほげ apa)],
[qw(3 のののの jljljkla)],
[qw(30987029847 ラリーウォール jljljkla)],
);
foreach(@data){
@tmp = @$_;
print "$tmp[0]\t$tmp[1]\t$tmp[2]\n";
}
>test.pl
|data1 data2 data3
|hugahuga ほげ apa
|3 のののの jljljkla
|30987029847 ラリーウォール jljljkla
タブで区切ってもずれてしまうことがあるのですが
こういうものをずれないように出力する方法はありませんか?
printf("%s\t%s\t%s\n", map{substr($_,0,6)} @tmp);では
|data1 data2 data3
|hugahu ほげ apa
|3 のののの jljljk
|309870 ラリーウォー jljljk
のような感じになってしまいました。
0783デフォルトの名無しさん
2010/10/07(木) 00:36:53http://perldoc.jp/docs/perl/5.12.1/perlfunc.pod#item__minimum__width
http://perldoc.jp/docs/perl/5.10.0/perlform.pod
0784デフォルトの名無しさん
2010/10/07(木) 00:59:39こんなモノがあったんですね。知りませんでした。
どういう事が出来るのか色々と試してみたいと思います。
レスありがとうございました。
0785デフォルトの名無しさん
2010/10/07(木) 01:24:3707861度目のマルチです
2010/10/07(木) 17:58:570787デフォルトの名無しさん
2010/10/07(木) 19:38:32perl -e '$re = shift; for (@ARGV) { $old = $_; eval $re; rename $old, $_ }' 's/foo/bar/' foo*
0789デフォルトの名無しさん
2010/10/08(金) 07:57:180790デフォルトの名無しさん
2010/10/08(金) 09:13:22クッキー
この2つを保存しておきゃえぇんとちゃうのん?
0791デフォルトの名無しさん
2010/10/08(金) 09:57:34クロージャに対応してないからうまくいかない。
対応してるData::Dump::Streamer等を使え
0792デフォルトの名無しさん
2010/10/08(金) 12:05:39以下のコードで$tmpという一時変数を使わずに同じ処理を行うにはどうすればよいでしょうか?
my @lst = ({hoge=>1, foo=>2}, {hoge=>3, foo=>4});
my $tmp = shift @lst;
print $$tmp{hoge};
0793デフォルトの名無しさん
2010/10/08(金) 12:13:340794デフォルトの名無しさん
2010/10/08(金) 12:27:070795デフォルトの名無しさん
2010/10/08(金) 12:58:12ありがとうございます。
あなたのおかげで理解が深まりました。
${shift @lst}{hoge}
としてもできるようですね。
0796デフォルトの名無しさん
2010/10/08(金) 15:07:52それは本当なのでしょうか。
もしそれが本当ならばどれほど影響するものなのでしょうか。
0797デフォルトの名無しさん
2010/10/08(金) 15:44:36perl はスクリプトを中間形式にコンパイルしてから実行するので、コメントの量と処理速度は関係ない。
ただ同じ内容のスクリプトでも、ファイルサイズや、コード部とコメント部の入れ替わり回数に極端な
差があるなら、ディスクの読み込み速度やCPUパワーが体感差に現れるかも知れない。
それらがどのくらいの差になるかは当然実行環境依存。
0799デフォルトの名無しさん
2010/10/08(金) 17:47:31猛烈にコメントつけた文字列のevalをループの中でぶん回すといった
ほとんどありえないことをしない限り気にしなくていいと思います。
% cat hoge.pl
use Benchmark qw(timethese);
use constant BASE =>
'$x = 100;';
use constant COMMENTED =>
("# hoge hoge \n" x 10000) . '$x = 100;';
timethese(undef,
{
base => sub { eval BASE; },
commented => sub { eval COMMENTED; },
}
);
% perl hoge.pl
Benchmark: running base, commented for at least 3 CPU seconds...
base: 4 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 53085.27/s (n=169342)
commented: 3 wallclock secs ( 3.00 usr + 0.00 sys = 3.00 CPU) @ 940.33/s (n=2821)
0800デフォルトの名無しさん
2010/10/08(金) 18:05:58パイプをオープンした場合には文字コードを指定することが出来ないのでしょうか?
<test.pl>
use utf8;
binmode STDOUT, ":encoding(cp932)";
open(TEST, "<:encoding(cp932)", "perl test2.pl|");
#open(TEST, "perl test2.pl|");
print while(<TEST>);
close TEST;
<test2.pl>
use utf8;
binmode STDOUT, ":encoding(cp932)";
print "hoge\n";
print "huga\n";
print "あいうえお\n";
0801デフォルトの名無しさん
2010/10/08(金) 18:28:48test1.pl STDOUT = CP932 TEST = utf8
test1.pl
binmode STDOUT, ":encoding(cp932)";
open(TEST, "perl test2.pl|") or die $!;
binmode TEST, ":utf8";
print while(<TEST>);
close TEST;
test2.pl
use utf8;
binmode STDOUT, ":utf8";
print "hoge\n";
print "huga\n";
print "あいうえお\n";
0802デフォルトの名無しさん
2010/10/08(金) 20:06:24Crypt::SaltedHash
http://search.cpan.org/~esskar/Crypt-SaltedHash-0.06/lib/Crypt/SaltedHash.pm
0803デフォルトの名無しさん
2010/10/08(金) 20:53:26インタプリタがコメントを読み飛ばすのに微量なCPUパワーを使うからじゃないの?
コンパイルして使う言語は、コンパイル時にコメント削ぎ落とすけど
インタプリタ型はソースを直接読むじゃない
これは滅茶苦茶スペースやタブとか改行とか入れる場合も該当するでしょう
痛くも痒くも無い程度には低下する筈
そんなナノセカンドのパフォーマンスの低下も許せないなら
実行ファイル作るべき
0804デフォルトの名無しさん
2010/10/08(金) 21:00:540805デフォルトの名無しさん
2010/10/08(金) 21:19:42ではその除く作業に微量なCPUパワーを消費するのでしょう
0806デフォルトの名無しさん
2010/10/08(金) 22:08:130807デフォルトの名無しさん
2010/10/08(金) 22:27:500808デフォルトの名無しさん
2010/10/08(金) 23:18:29コンパイラでもインタプリタでもなんでも、
コンパイルとかするときにはどうしてもコメント取らなきゃいけないじゃん
でもそのためのCPUの仕事なんて微々たるもんだとおもうよ
0809デフォルトの名無しさん
2010/10/08(金) 23:40:070810デフォルトの名無しさん
2010/10/09(土) 01:10:03どこを取り除けばいいのかコンパイラは分かりませんがな
0811デフォルトの名無しさん
2010/10/09(土) 01:20:25(金額入力場所で文頭に0をつけさせたくない)
0812デフォルトの名無しさん
2010/10/09(土) 01:21:430813デフォルトの名無しさん
2010/10/09(土) 01:23:56unless($data =~ /^[1-9][0-9]*/){
# 例外処理
0814デフォルトの名無しさん
2010/10/09(土) 08:11:04hoge{'1.2'}
hoge{'1.3'}
hoge{'1.7'}
hoge{'0.5'}
hoge{'2.1'}
みたいなパラメタがあるとき
key値が1〜2の間の値のものをまとめて処理する、ということをしたいです
(上の場合だと、1.2 1.3 1.7のもの hoge{'1.*'}みたいなことを)
このときどういうアクセスの仕方があるでしょうか?
0815デフォルトの名無しさん
2010/10/09(土) 08:45:241例として、
for my $key ( grep { 1 < $_ && $_ < 2 } keys %hoge ) {
print $hoge{$key}, "\n";
}
0816デフォルトの名無しさん
2010/10/09(土) 09:18:44最後だけコンマを付けないスマートなやり方は?
0817デフォルトの名無しさん
2010/10/09(土) 09:19:460818デフォルトの名無しさん
2010/10/09(土) 09:39:123つの帰り値と引数を持つ関数を作ったら、1つ目の引き数が受け取れませんでした。
my($a, $b, $c) = kansuu( "aaa", "bbb", "ccc");
sub kansuu{
my $p1=$_[0];
my $p2=$_[1];
my $p3=$_[2];
}
$p1には"bbb"、$p2に"ccc"で、$p3には値が入りません。
これは何が悪いのでしょうか。
Perlの仕様を調べてみても分りませんでした。
0819デフォルトの名無しさん
2010/10/09(土) 09:45:180820デフォルトの名無しさん
2010/10/09(土) 09:58:42CGIブームの頃に低レベルな著者が書いたperl解説本が世にあふれた。
ラクダ、ラマ、などの一部を除いてperl解説本は読んではいけない。
0821デフォルトの名無しさん
2010/10/09(土) 10:18:560822デフォルトの名無しさん
2010/10/09(土) 10:58:25書いたのと>>818が違ってるとしか
0823デフォルトの名無しさん
2010/10/09(土) 11:09:47とりあえず保留にして、配列渡しか何か別な方法で回避してみます。
0824デフォルトの名無しさん
2010/10/09(土) 11:45:35回避もなにも、>>818が一番素直な方法
これでできないなら、何かが決定的におかしい
回避方法を探るよりも、別にあるだろう原因を探った方がいい
0825デフォルトの名無しさん
2010/10/09(土) 12:53:56なるほど。確かにそのやり方はありますね。
grepとか使えない環境なので、perlのロジックのみでいければ助かります。
0826デフォルトの名無しさん
2010/10/09(土) 13:08:220827デフォルトの名無しさん
2010/10/09(土) 13:36:18ローカルにインストールしたperlには無い=unix環境じゃないと使えない
と思い込んでしまっていました
大変失礼しました
0828デフォルトの名無しさん
2010/10/09(土) 13:36:57何も知らないズブの素人だと露見した瞬間であった……
0829デフォルトの名無しさん
2010/10/09(土) 14:07:54少し頭冷してきますよ
0830デフォルトの名無しさん
2010/10/09(土) 14:14:230831デフォルトの名無しさん
2010/10/09(土) 16:26:16$[ が-1になってるとかw
$[ = -1;
my($a, $b, $c) = kansuu( "aaa", "bbb", "ccc");
sub kansuu{
my $p1=$_[0];
my $p2=$_[1];
my $p3=$_[2];
print "p1=$p1¥n";
print "p2=$p2¥n";
print "p3=$p3¥n";
}
0832デフォルトの名無しさん
2010/10/09(土) 16:47:40//_ [][]// ,,-―''':::::::::::::::ヽヾヽ':::::/、 誰 弄 こ
// \\ // /::::::::::::::::::::::::::::::i l | l i:::::::ミ だ っ の
 ̄  ̄  ̄/ /:::::::::,,,-‐,/i/`''' ̄ ̄ ̄ `i::;| あ た 変
―`―--^--、__ /:::::::::=ソ / ヽ、 / ,,|/ っ の 数
/f ),fヽ,-、 ノ | 三 i <ニ`-, ノ /、-ニニ' 」') !! は を
i'/ /^~i f-iノ |三 彡 t ̄ 。` ソ ハ_゙'、 ̄。,フ | )
,,, l'ノ j ノ::i⌒ヽ;;|  ̄ ̄ / _ヽ、 ̄ ゙i )
` '' - / ノ::| ヽミ `_,(_ i\_ `i ヽ、 ∧ ∧ ∧ ∧
/// |:::| ( ミ / __ニ'__`i | Y Y Y Y Y
,-" ,|:::ヽ ミ /-───―-`l | // |
| // l::::::::l\ ||||||||||||||||||||||/ | // |
/ ____.|:::::::| 、 `ー-―――┴ / __,,..-'|
/゙ー、,-―'''XXXX `''l::,/| ー- 、__ ̄_,,-"、_,-''XXXXX |
/XX/ XXXXXXXXXX| | _, /ノXXXXXXXXXX|
0833Perl忍者 ◆M5ZWRnXOj6
2010/10/09(土) 19:05:12GD::GraphがJcode使っててむかつくので
なんかグラフ表示させるやつ教えてください
javascriptでもいいですか?教えてください
クソコテですが まじめに教えてください
0834デフォルトの名無しさん
2010/10/09(土) 19:09:030835デフォルトの名無しさん
2010/10/09(土) 19:59:18グラフを得るのが最終目的だったら、Rとか使った方が綺麗
0836Perl忍者 ◆M5ZWRnXOj6
2010/10/09(土) 20:02:090837デフォルトの名無しさん
2010/10/09(土) 20:12:310838デフォルトの名無しさん
2010/10/09(土) 23:02:080839デフォルトの名無しさん
2010/10/10(日) 20:30:12$y = 2010;
$m = 10;
$d = 01;
$r = $y . $m . $d;
print $r;
こうやると、
2010101
と表示されてしまうのですが、ゼロが消えないようにするにはどうすればいいですか?
20101001となるようにしたいです。
よろしくお願いします。
0840デフォルトの名無しさん
2010/10/10(日) 20:35:390841デフォルトの名無しさん
2010/10/10(日) 20:57:120842デフォルトの名無しさん
2010/10/10(日) 21:19:29my($y, $m, $d);
$y = 2010;
$m = 10;
$d = 1;
$r = sprintf('%04d%02d%02d', $y, $m, $d);
print $r;
0が先頭つけると8進数として評価されるから気をつけろ
print 010 #=> 8
0843デフォルトの名無しさん
2010/10/10(日) 22:07:380844デフォルトの名無しさん
2010/10/10(日) 22:23:22my ($y,$m,$d) = ('2010','10','01');
print "$y$m$d";
0845デフォルトの名無しさん
2010/10/10(日) 22:47:43日本語でおk
0846デフォルトの名無しさん
2010/10/11(月) 01:33:130を数値の先頭につけると8進数として評価されるから気をつけろ
0847デフォルトの名無しさん
2010/10/11(月) 01:35:330848デフォルトの名無しさん
2010/10/11(月) 01:35:480849デフォルトの名無しさん
2010/10/11(月) 01:44:35PDP-11なんかで8進数がよく使われていたらしくてその残滓じゃないか
0850デフォルトの名無しさん
2010/10/11(月) 01:46:530851デフォルトの名無しさん
2010/10/11(月) 11:49:24$file = "test.cgi";
open(FILE, "$file");
@logs = <FILE>;
close(FILE);
@logs = reverse(@logs);
chomp(@logs);
($data,$text)=split(/<>/,@logs[0]);
$text = "$data:$text<br>";
print "Content-type: text/html; charset=Shift_JIS\n\n";
print "document.write(\"$text\");\n";
これでテキストだけだと表示されるんだけど、
画像とかリンクはさむとなんにもでないんですよ
0852デフォルトの名無しさん
2010/10/11(月) 12:20:24日記ならチラシの裏にでも書いてろks
0853デフォルトの名無しさん
2010/10/11(月) 12:37:29工作じゃねえよ
ネットに嘘の情報が蔓延らないように監視してんだろうが
0854デフォルトの名無しさん
2010/10/11(月) 14:42:400855デフォルトの名無しさん
2010/10/11(月) 14:45:480856デフォルトの名無しさん
2010/10/11(月) 17:47:29Windows(cp932)でもLINUX(UTF-8)でも動作するようにしたいんです。
>>4 の方法だと Windowsでしか動かせませんよね。
> binmode STDOUT => ":encoding(cp932)";
の「cp932」の部分を書き換えないと。
イメージとしてはこんな風にしたいんです。
> $encoding = エンコードを取得する何らかの方法;
> binmode STDOUT => ":encoding($encoding)";
本番では中国や台湾やフランス、ロシアなどで動かす予定があります。
いちいち手作業で書き換えてられません。
0857デフォルトの名無しさん
2010/10/11(月) 18:31:13固定メッセージとかは language とかのディレクトリに言語別に用意
なにか難しいことある?
0858デフォルトの名無しさん
2010/10/11(月) 18:35:13http://perldoc.perl.org/perllocale.html
0859デフォルトの名無しさん
2010/10/11(月) 21:40:16もういっかい書きます。質問の趣旨は
現在のコンソールのロケール?エンコード?を取得する方法を教えてください。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
です。
無理ならあきらめます。
0860デフォルトの名無しさん
2010/10/11(月) 21:48:460861デフォルトの名無しさん
2010/10/11(月) 22:05:450862デフォルトの名無しさん
2010/10/11(月) 22:52:10環境は
OS:WinXP
Excel2003
Perl 5.12.2
クリップボードにあるUnicodeのテキスト(簡体字やハングル)を貼付けたいのですが、うまくいきません。
PasteSpecial()を使ってみましたが指定が悪いのか、処理が帰ってこず、固まったままになってしまいます。
↓ソースここから
use strict;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
use Tkx; # Unicodeをクリップボードにコピーするので Win32::Clipboard ではない
use HTML::Entities;
use utf8;
my $excel = Win32::OLE->GetActiveObject('Excel.Application') ||
Win32::OLE->new('Excel.Application', 'Quit') || die;
my $book = $excel->Workbooks->Add || die;
my $sheet = $book->Worksheets('Sheet1') || die;
my $str = HTML::Entities::decode('丽');
Tkx::clipboard('clear');
Tkx::clipboard('append', $str);
$sheet->Cells(1,1)->Select;
$book->ActiveSheet->PasteSpecial(); #←ここがよく分からない
$excel->{DisplayAlerts} = 'False';
$book->SaveAs('c:\test.xls');
$book->Close();
VBAのPasteSpecialのリファレンスも見てみたのですが、Perlでの引数の指定の仕方が分からず苦戦しております。
どなたかよろしくお願い致します
0863862
2010/10/11(月) 23:18:14×my $str = HTML::Entities::decode('丽');
○my $str = HTML::Entities::decode('&#20029;');
要するに、数値文字参照をUnicodeで変換してエクセルに貼ることをしたいです。
$sheet->Cells(1, 1)->{Value} = Tkx::clipboard('get');
としてみましたが、これだと文字化けしてしまってダメでした。
なので、エクセルの 形式を選択して貼付け→Unicodeテキスト を実現したいです。
何方かお知恵を貸してください。お願い致します。
0864デフォルトの名無しさん
2010/10/11(月) 23:42:52given ("alfred") {
when (/fred/i) { say "Name has fred in it"; continue }
when (/^Fred/) { say "Name starts with Fred"; continue }
when ('Fred') { say "Name is Fred"; continue } # しまった!
default { say "I dont see a Fred"; }
}
みたいなコードは、
Name has fred in it
I don't see a Fred
となるので、I dont see a Fredにならないために3番目のcontinueをbreakにすればいいよ!
そしてbreakは省略できるよ!ってかいてるけど、やっぱりI dont see a Fredになっちゃいます
ほとんど本に書いてあるコードそのままなんですが、間違ってますかね?
0865864
2010/10/11(月) 23:46:450866nobody
2010/10/12(火) 00:15:10`chcp` でどうなのよ。
Perl板で質問しているから論点がずれているん
だと思うけど。これは OS ごとに違うから残りは
別の板で聞くといいよ。
0867デフォルトの名無しさん
2010/10/12(火) 00:57:39continueはwhen/defaultの評価を続けるって意味で、
Cみたいなfall throughは出来ないよ。
0868デフォルトの名無しさん
2010/10/12(火) 01:21:220869デフォルトの名無しさん
2010/10/12(火) 07:31:37when (/fred/i) {...} をdefaultの手前に移動してcontinueを
取れば望んだ動作になると思うけど。
given ("alfred") {
when (/^Fred/) { say "Name starts with Fred"; continue }
when ('Fred') { say "Name is Fred"; continue }
when (/fred/i) { say "Name has fred in it"; }
default { say "I dont see a Fred"; }
}
0870デフォルトの名無しさん
2010/10/12(火) 08:27:14RSS ですべてのタイトルとリンクを取得するにはどうしたらいいのでしょうか?
以下のコードを実行すると最新のいくつかしか取得できません。Google
Reader だと、どんどん掘り下げて古いものを読んでいけるのでやり方がある
と思うんですが、、、 教えください。
#!/usr/local/bin/perl
use strict;
use Encode;
use LWP::Simple;
use XML::RSS;
my @RSS_URLs = ("http://slashdot.jp/slashdotjp.rss");
for $url (@RSS_URLs) {
my $document = LWP::Simple::get($url) or die "cannot get content from $url";
my $rss = XML::RSS->new;
$rss->parse($document)
for (@{$rss->{items}}) {
print encode('shift_jis', $_->{title}), "\n";
}
}
0871デフォルトの名無しさん
2010/10/12(火) 08:55:27取得したRSSにそこまでしか書かれてないからなので
XML::RSSの使い方としては問題ない。
それ以上掘り進むやり方はサイトごとに違うので
Perlの話題じゃないね。
0872864
2010/10/12(火) 09:51:07ありがとうございます。
本にはbreakするかのように書いてあったのですが間違ってるみたいですね
>869 のようにするのが正解っぽいです
ありがとうございました
0873デフォルトの名無しさん
2010/10/12(火) 09:57:59あくまでも提供される1つのファイルに過ぎない。
Google が過去のまで取得できてるのは、RSS を講読してからのデータを保持してるから出来てるわけです。
0874デフォルトの名無しさん
2010/10/12(火) 10:50:04ふつう常識的にはこう書くでしょ。
given ("alfred") {
when (/fred/i) { say "Name has fred in it"; break }
when (/^Fred/) { say "Name starts with Fred"; break }
when ('Fred') { say "Name is Fred"; break }
default { say "I dont see a Fred"; break }
}
で、break は省略しても構わないから、こう書いてもオッケってこと。
given ("alfred") {
when (/fred/i) { say "Name has fred in it" }
when (/^Fred/) { say "Name starts with Fred" }
when ('Fred') { say "Name is Fred" }
default { say "I dont see a Fred" }
}
本の例題がひねくれ過ぎてるのか、>>864が曲解してるのか。
switch文の中でcontinueを使う場面は滅多にないから、そんな書き方を覚える必要はない。
>>864がしようとしてることは、昔でいえば、GOTO文だらけのスパゲッティプログラム
の書き方を覚えようとしてるようなもんだな。
0875デフォルトの名無しさん
2010/10/12(火) 11:17:48お前はもとのプログラムでやりたいことを全くわかってないな。
0876デフォルトの名無しさん
2010/10/12(火) 11:20:440877デフォルトの名無しさん
2010/10/12(火) 11:26:01よく読んだら爆笑した
0878デフォルトの名無しさん
2010/10/12(火) 16:34:38あれ、一回買っちゃえば、もうひとつライセンスが欲しくてもコピペしちゃえば
ばれなくない?
インデックスもされないし…
0879デフォルトの名無しさん
2010/10/12(火) 16:39:12バレなければ何をしてもいいという発想はモラルを疑う
0880デフォルトの名無しさん
2010/10/12(火) 18:36:480881デフォルトの名無しさん
2010/10/12(火) 18:41:080882デフォルトの名無しさん
2010/10/12(火) 21:31:18別にやるとは言ってないですけど…
0883デフォルトの名無しさん
2010/10/12(火) 21:40:130884デフォルトの名無しさん
2010/10/12(火) 21:42:200885デフォルトの名無しさん
2010/10/12(火) 22:02:36エラー判定だけもらって、終了させない方法を教えてください。
0886デフォルトの名無しさん
2010/10/12(火) 22:16:21my $time = eval { timelocal(0, 0, 0, 29, 1, 2010); };
unless ($time) { エラーのときの処理 }
print $time;
エラー文の内容まで必要だったら$@を参照するなりTry::Tinyなりで
0887デフォルトの名無しさん
2010/10/12(火) 22:17:560888デフォルトの名無しさん
2010/10/14(木) 05:02:53print "hoge"
このprint行には変更を加えず、前後行の変更のみで
変数に hoge を入れるにはどうすればよいでしょうか?
0889デフォルトの名無しさん
2010/10/14(木) 05:08:050890デフォルトの名無しさん
2010/10/14(木) 05:45:43print "hoge";
HOGE
0891s
2010/10/14(木) 07:43:130892s
2010/10/14(木) 07:54:19ttp://d.hatena.ne.jp/sugyan/20090715/1247613596
0893デフォルトの名無しさん
2010/10/14(木) 07:56:35すでに人気でも開発頻度でもphpに抜かれてるじゃん
いまさらやるメリットは?
0894デフォルトの名無しさん
2010/10/14(木) 09:00:39全くその通りなのでPHPへドゾー
0895デフォルトの名無しさん
2010/10/14(木) 11:41:17my $old = select($fh);
print "hoge";
close($fh);
select($old);
0896デフォルトの名無しさん
2010/10/14(木) 12:49:58へー、そんなことできるんだ
0897デフォルトの名無しさん
2010/10/14(木) 18:54:510898デフォルトの名無しさん
2010/10/14(木) 19:36:110899デフォルトの名無しさん
2010/10/14(木) 20:03:540900デフォルトの名無しさん
2010/10/14(木) 20:13:550901888
2010/10/14(木) 20:47:17レス有難う御座いました。
>>895 さんのコード スゴッ! バッチリ動作しました。
Perlの奥ゆかしさを知ると共に 大変有り難う御座いました。
0902デフォルトの名無しさん
2010/10/14(木) 21:08:33http://gihyo.jp/dev/feature/01/perl_ark/0002
初めて見ましたけど cpan -t って一般的なのかな・・・
0903デフォルトの名無しさん
2010/10/14(木) 21:39:31http://search.cpan.org/dist/CPAN/scripts/cpan
0904デフォルトの名無しさん
2010/10/14(木) 22:00:580905デフォルトの名無しさん
2010/10/14(木) 22:26:450906デフォルトの名無しさん
2010/10/14(木) 22:31:340907デフォルトの名無しさん
2010/10/14(木) 22:45:10rubyは1.8と1.9でも違うし、JRubyやIronRubyなど複数の実装があるから、
rubyスレで聞いたほうが早いと思うぞ。
0908デフォルトの名無しさん
2010/10/14(木) 22:53:090909デフォルトの名無しさん
2010/10/14(木) 23:07:325.3(実質php6 - unicode)なんて別次元。
死んだほうが早いと思うぞ。
っーか、21世紀にもなってunicode未対応とか、goto文始めましたとか・・・冷やし中華かよ!
0910デフォルトの名無しさん
2010/10/14(木) 23:09:240911デフォルトの名無しさん
2010/10/14(木) 23:13:310912デフォルトの名無しさん
2010/10/14(木) 23:14:01それはそうなんだけど、perl使いから見た体感速度を聞きたかったの。
0913デフォルトの名無しさん
2010/10/14(木) 23:18:080914デフォルトの名無しさん
2010/10/14(木) 23:20:500915デフォルトの名無しさん
2010/10/14(木) 23:34:220916デフォルトの名無しさん
2010/10/15(金) 00:07:11ぃ ヽ、 _ノ〃
、\ `丶、 , ' ´//
、ヽ `丶\ rvy'´ '
\\ ヽ ゝ ‐ 7⌒く 厶ィ′ /
ヽ、 y'′ `ァ ☆ 、_フ_彡'
. / L _人 _ハ
′ ` '.
′ ,
ノ y=-ミ、 >‐=く ヽ、_
`て_ " 、ニ, " >^
⌒^丶 、_/^Y^、_, '⌒′
{ ∧_ }
_厂(::X::)^{
(/ 、
{ }
└-ー冖ー-┘
0917デフォルトの名無しさん
2010/10/15(金) 02:05:45その後でClass::Accessor::Fastとベンチ比較すると、
CAF>>>>>>>>>>>>>>(60倍の壁)>>>>>>>>>.Mooseだったのですが、そんなモンでしょうか。
ちなみに比較内容は
use Class::Accessor::Fast qw(antlers); # or use Moose;
has 'hoge' => (is => 'rw', isa => 'Str');
の2行だけです。
0918デフォルトの名無しさん
2010/10/15(金) 04:53:15エラトステネスの篩でベンチしてみた。
言語ごとに調整してないから、あまりアテにならないが。
つーことで、私は、Ruby1.8は遅くて、Ruby1.9は速いという認識。
Ruby1.8.7 100%
PHP5.2.6 146%
Python2.5.2 294%
Perl5.10.0 534%
Ruby1.9.0 539%
0919デフォルトの名無しさん
2010/10/15(金) 13:49:13他のも使ってみる
0920デフォルトの名無しさん
2010/10/15(金) 14:06:19とだけ言っておこう
0921デフォルトの名無しさん
2010/10/15(金) 18:31:35OOで書く必要があるならJavaを使うし・・・
実行速度重視ならC/C++を使うだろうし
なんだかRubyって中途半端な感じがしてならない
0922デフォルトの名無しさん
2010/10/15(金) 22:29:03習得していちばん得しそうなのはpythonだろうし
0923デフォルトの名無しさん
2010/10/15(金) 22:48:02得するために値切ろうとして努力を惜しむと、結局得しないという説もある
わりと有名な話
0924デフォルトの名無しさん
2010/10/15(金) 23:10:160925デフォルトの名無しさん
2010/10/15(金) 23:22:19cost-benefitのことだよ
0926デフォルトの名無しさん
2010/10/15(金) 23:25:34しかもなんか言葉の使い方おかしいし
0927デフォルトの名無しさん
2010/10/15(金) 23:36:100928デフォルトの名無しさん
2010/10/15(金) 23:42:020929!stock
2010/10/16(土) 00:11:330930デフォルトの名無しさん
2010/10/16(土) 00:57:300931デフォルトの名無しさん
2010/10/16(土) 12:11:460932デフォルトの名無しさん
2010/10/16(土) 12:47:09CPANもそんなようなもんだが
0933Perl忍者 ◆M5ZWRnXOj6
2010/10/16(土) 14:08:27情報発信能力が高い
なんで??????
0934デフォルトの名無しさん
2010/10/16(土) 19:46:580935デフォルトの名無しさん
2010/10/16(土) 20:07:220936デフォルトの名無しさん
2010/10/16(土) 20:14:42Pythonの干物とか
0937デフォルトの名無しさん
2010/10/16(土) 20:22:140938デフォルトの名無しさん
2010/10/16(土) 20:52:040939デフォルトの名無しさん
2010/10/16(土) 20:54:37perlは始めて三日の初心者です。
CentOSのマシンのCOM1にシリアル接続のモデムを繋いで、
以下のようなscomm.plを実行してみたのですが、
OK[cr]が返ってきてほしいのに、AT[CR]が返ってきます。
なぜでしょうか?
*********************
#! /usr/bin/perl
use Fcntl;
sysopen (COM, "/dev/ttyS0", O_RDWR) || die; # ttyS0=COM1, S1=COM2, ...
syswrite (COM, "AT\n", 3) || die;
$buf = "";
$data="";
do {
$buf="";
sysread (COM, $buf, 1) || die;
$data=$data . $buf;
} while ($buf ne "T");
#sysread (COM, $data, 2) || die;
print $data, "\n";
*********************
0940Perl忍者 ◆M5ZWRnXOj6
2010/10/16(土) 23:52:020941デフォルトの名無しさん
2010/10/17(日) 01:47:53という書き方はどういう構文なのでしょう?
$a = $a || 'a';
と同じ?
0942デフォルトの名無しさん
2010/10/17(日) 01:59:110943941
2010/10/17(日) 02:03:57ありがとう。
perlのソースで分からない部分って、ググってヒットさせるの難しいよね…
記号の短い組み合わせなので、キーワードを無視されてるような。
0944デフォルトの名無しさん
2010/10/17(日) 05:18:34それはPerlに限ったことじゃねぇ
Perlならperldoc見るかラクダ本見るか汁
0945デフォルトの名無しさん
2010/10/17(日) 06:24:510946デフォルトの名無しさん
2010/10/17(日) 08:31:39$a //= 'a';
0947デフォルトの名無しさん
2010/10/17(日) 08:38:160948デフォルトの名無しさん
2010/10/17(日) 08:42:51エコーバックされてる。
0949デフォルトの名無しさん
2010/10/17(日) 08:44:27最近っていうか5.10以降ね
0950デフォルトの名無しさん
2010/10/17(日) 09:23:12可能か不可能かといえば可能だからぐぐってみ。やりたくなるのは相当の
変態さんだけだと思うがw
0951デフォルトの名無しさん
2010/10/18(月) 02:18:23何でなんでしょうか?
sub test(\$) {
my $x = shift;
print $x;
}
my $x = "foo";
test $x;
ラクダ本の通りならば "foo" になるはずなんですが、
実際には、変数 x のアドレスの様なものが表示されます。
Active Perl の 5.10.1 です。
0952デフォルトの名無しさん
2010/10/18(月) 02:26:130953デフォルトの名無しさん
2010/10/18(月) 02:32:46なるほど!ラクダ本は
print "you gave me $$x\n"
の様になっていたのですが、余分の $ は、お金の単位だと思ってましたw
ありがとうございました。
0954デフォルトの名無しさん
2010/10/18(月) 03:01:47〓(U+3013)に置き換えたいのですが、
元データがutf8の場合、置換式をどのように書けばいいでしょうか
上記範囲のutf8文字コードは、
[F0-F7] [80-BF] [80-BF] [80-BF]
で、
〓のutf8文字コードは、
[E3] [80] [93]
です
よろしくお願いします
0955デフォルトの名無しさん
2010/10/18(月) 03:07:010956デフォルトの名無しさん
2010/10/18(月) 12:19:09s/[\x{010000}-\x{1FFFFF}]/〓/g
でいけそうな気がする
0957デフォルトの名無しさん
2010/10/18(月) 14:24:31utf8フラグ付きで、5.8.1以降なら
use utf8;
{
no warnings 'utf8';
tr/\x{010000}-\x{1fffff}/\x{3013}/;
}
0958デフォルトの名無しさん
2010/10/18(月) 14:43:480959デフォルトの名無しさん
2010/10/18(月) 15:08:51unicodeの範囲を超えているので、use warningsしていると
(5.11以降?で)警告が出ます。その抑制です。
↓コレ
Unicode non-character %s is illegal for interchange
0960デフォルトの名無しさん
2010/10/18(月) 18:45:000961デフォルトの名無しさん
2010/10/18(月) 19:47:04命令じゃなくて正規表現でいいと思う
$hoge=~[^\w!%:]みたいな?
0962デフォルトの名無しさん
2010/10/18(月) 19:49:390963デフォルトの名無しさん
2010/10/18(月) 20:55:36s/([\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF])/\xE3\x80\x93/g;
0964デフォルトの名無しさん
2010/10/18(月) 21:24:15なるほど。それは知らなかったので勉強になった。
ところで、
U+010000 … U+1FFFFF
と
[F0-F7] [80-BF] [80-BF] [80-BF]
って数が合わなくね?
後者はきっかり21ビット(2^21)だけど前者は上2桁が01〜1F
なので21ビットに少し足りない(2^21 - 2^16)
0965デフォルトの名無しさん
2010/10/19(火) 00:01:32多くの方に質問に答えていただき、
ありがとうございました
そのまま変換したら一部文字化けが発生したので、
splitで1文字ごとに分離し、それを1文字ずつ、
s/^[\x{010000}-\x{1FFFFF}]$/〓/;
という式で変換したら、
無事目的の動作をしてくれました
>>964
最初の[80-BF]([F0-F7][80-BF]←この部分)は、
ちょっと変な扱いになっているようです
http://ja.wikipedia.org/wiki/UTF-8
0966Perl忍者 ◆M5ZWRnXOj6
2010/10/19(火) 00:27:520967デフォルトの名無しさん
2010/10/19(火) 19:58:42CPANシェルで 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 になってしまうのは何故なんだろう?
0968デフォルトの名無しさん
2010/10/19(火) 20:02:37サンクス
0969デフォルトの名無しさん
2010/10/19(火) 22:28:11峰松浩樹 LT - 基幹システムがperlでどうしてこうなった
http://www.youtube.com/watch?v=2tAX9NC4wJU
0970デフォルトの名無しさん
2010/10/19(火) 22:43:130971デフォルトの名無しさん
2010/10/19(火) 22:59:320972デフォルトの名無しさん
2010/10/19(火) 23:27:56COBOLとPerlのキメラみたいなソース…メンテナンスどうすんだろw
0973デフォルトの名無しさん
2010/10/19(火) 23:49:28まさにダクトテープ。
Perlらしい使い方だね。
0974デフォルトの名無しさん
2010/10/19(火) 23:51:51最初以外なぜオーディエンスが笑っているのかがわからん
0975デフォルトの名無しさん
2010/10/20(水) 00:02:280976Perl忍者 ◆M5ZWRnXOj6
2010/10/20(水) 00:07:120977デフォルトの名無しさん
2010/10/20(水) 01:07:22リポジトリを追加したか?
0978デフォルトの名無しさん
2010/10/20(水) 08:51:43うちの県のシステムかw
0979デフォルトの名無しさん
2010/10/20(水) 12:11:330980デフォルトの名無しさん
2010/10/20(水) 13:50:030981デフォルトの名無しさん
2010/10/21(木) 02:12:21何か足らないものがあるのでしょうか?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.
0982デフォルトの名無しさん
2010/10/21(木) 02:21:560983Perl忍者 ◆M5ZWRnXOj6
2010/10/21(木) 17:03:16そうかい!いないかい!
0984デフォルトの名無しさん
2010/10/21(木) 17:18:37secure flagつける方法はないでしょうか?
0985デフォルトの名無しさん
2010/10/21(木) 17:55:08残念だけど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に好きなパラメタ追加すればいい。
0986Perl忍者 ◆M5ZWRnXOj6
2010/10/21(木) 18:00:48wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0988Perl忍者 ◆M5ZWRnXOj6
2010/10/21(木) 19:14:02wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0989デフォルトの名無しさん
2010/10/22(金) 09:07:230990デフォルトの名無しさん
2010/10/22(金) 09:32:470991デフォルトの名無しさん
2010/10/22(金) 09:50:56use LWP::UserAgent;
print LWP::UserAgent->new->get('http://localhost/')->as_string;
0992デフォルトの名無しさん
2010/10/22(金) 10:05:41�d
できました
0993デフォルトの名無しさん
2010/10/22(金) 11:55:381日1回クリックをするとURL先に飛んでなおかつカウントを取るような感じで・・・
0994デフォルトの名無しさん
2010/10/22(金) 11:58:000995デフォルトの名無しさん
2010/10/22(金) 12:02:025万でひきうけてやんよ。それ以下なら受けない。
0996デフォルトの名無しさん
2010/10/22(金) 12:27:46ありがとうございました
0997デフォルトの名無しさん
2010/10/22(金) 12:48:24Werlがもう浸透したのか。
http://www.youtube.com/watch?v=BFzMlHMbl80
0998Perl忍者 ◆M5ZWRnXOj6
2010/10/22(金) 16:46:000999Perl忍者 ◆M5ZWRnXOj6
2010/10/22(金) 16:48:401000Perl忍者 ◆M5ZWRnXOj6
2010/10/22(金) 16:49:2410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。