Perlについての質問箱 46箱目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/02/14(月) 18:58:52CGI と 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
● 2011/02/14 現在の最新版: 5.12.3
▼ 前スレ
Perlについての質問箱 45箱目
http://hibari.2ch.net/test/read.cgi/tech/1287755129/
リンク集は >>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは >>5-7 あたり
0002デフォルトの名無しさん
2011/02/14(月) 19:00:12Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/
[本]
リャマ: ttp://www.oreilly.co.jp/books/9784873114279/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://ascii.asciimw.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/
perldoc.jp: ttp://www.perldoc.jp/
perldoc.perl.org: ttp://perldoc.perl.org/
0003デフォルトの名無しさん
2011/02/14(月) 19:00:53CPAN.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デフォルトの名無しさん
2011/02/14(月) 19:02:14# このレスは、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デフォルトの名無しさん
2011/02/14(月) 19:02:591 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デフォルトの名無しさん
2011/02/14(月) 19:54:1621 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デフォルトの名無しさん
2011/02/14(月) 19:56:0141 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/
44 http://hibari.2ch.net/test/read.cgi/tech/1280541200/
45 http://hibari.2ch.net/test/read.cgi/tech/1287755129/
0008デフォルトの名無しさん
2011/02/14(月) 20:08:380009Perl忍者 ◆M5ZWRnXOj6
2011/02/14(月) 23:59:17俺TUEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!!!!!!
言語になっているPerlはすばらしい
わかるかきみたち?
俺にはわかる
0010デフォルトの名無しさん
2011/02/15(火) 00:09:41emacsでやろうとしたら、全然だめだった
0011Perl忍者 ◆M5ZWRnXOj6
2011/02/15(火) 00:13:410012デフォルトの名無しさん
2011/02/15(火) 03:07:38Perl書くのにどんなエディタ使ってる?
http://hibari.2ch.net/test/read.cgi/php/1014357485/
perlとかで便利なツール
http://hibari.2ch.net/test/read.cgi/tech/1185008629/
0013デフォルトの名無しさん
2011/02/15(火) 10:11:30についてなんですが、
>use open IO => ":encoding(cp932)";
があるので、
>open my $fh, '<', encode("cp932", $file) or die $! ; # ※2
の行の「encode()」は無くてもいいんですよね?
それとも無いとダメなんですか?
0014デフォルトの名無しさん
2011/02/15(火) 10:34:33前者は読み書きするファイルの中身の文字コードについての記述で
後者はファイル名の文字コードについての記述だからそれぞれ必要。
0015デフォルトの名無しさん
2011/02/15(火) 10:34:33前者は読み書きするファイルの中身の文字コードについての記述で
後者はファイル名の文字コードについての記述だからそれぞれ必要。
0017デフォルトの名無しさん
2011/02/15(火) 10:49:42強調したい気持ちもわかります。
0018デフォルトの名無しさん
2011/02/15(火) 11:07:21困っているわけではなく、純粋に違いを知りたいだけです。
$fh = STDOUT; # (1)
$fh = *STDOUT; # (2)
$fh = \*STDOUT; # (3)
print {$fh} "foo";
0019Perl忍者 ◆M5ZWRnXOj6
2011/02/15(火) 11:10:12これ宣言すれば
わざわざencode()使わなくても変換してくれるから STDOUTだから
だから無くてもいい
ここよめカス
http://perldoc.jp/docs/modules/encoding-2.6/encoding.pod#ABSTRACT
#encodingはSTDIN と STDOUT の PerlIO 層を指定されたエンコーディングに変更します。
#内部的に指定された エンコーディングから utf8 に変換します
utf8にしてから希望の文字コード
euc-jpのテキストの場合
use open IN=>":encoding(euc-jp)"; ー> utf8 −> binmode STDOUT=>"encoding(cp932)";
0020デフォルトの名無しさん
2011/02/15(火) 11:39:09}
これを「ほげ1」「ほげ2」「ほげ3」の3つを
AND、ORで書く方法ってありますかね
0021デフォルトの名無しさん
2011/02/15(火) 11:39:39誰にレスしてるの?
独り言?
0022デフォルトの名無しさん
2011/02/15(火) 11:50:10if($1 > 2) {}
とか、2より大きい場合とか数値として演算しても問題ないのでしょうか?
もし問題があるならどうやるのがいいのでしょうか?
0023Perl忍者 ◆M5ZWRnXOj6
2011/02/15(火) 11:56:34やってみればいいじゃん
0024Perl忍者 ◆M5ZWRnXOj6
2011/02/15(火) 12:00:11もうお前死ねよ
0025デフォルトの名無しさん
2011/02/15(火) 12:05:47頭に0ついていても問題なし?
ありがとう
>>24
そうなんだ
ありがとう
0026デフォルトの名無しさん
2011/02/15(火) 13:22:45マッチするようにしたいです。
例えば正規表現で表現すると
"あさ/"と入力されたら/[あアアぁァァ][さササ][//]/でマッチを取るように。
#そのまま書くと下記のようなイメージ
use utf8;
use open IO => ":encoding(sjis)";
$input= shift; #入力は"あさ/","アサ/","アサ/","ァサ/"などの場合、出力は全て同じ結果になるように
#【A】単純に置換
$input =~ /[あアアぁァァ]/\[あアアぁァァ\]/g; #iオプションをつければ小文字はいらなくなる??
$input =~ /[AAaa]/\[AAaa\]/g;
$input =~ /[/\/]/\[/\/\]/g;
$input =~ /[.\./]/\[.\.\]/g;
〜
〜
open(IN,"a.txt");
while(<IN>){
print "$_" if(/$input/);
}
close(IN);
さすがにこれは置換の行が増えすぎてナンセンスだと思うので、
何かスマートな方法もしくはモジュールなどありますでしょうか?
0027デフォルトの名無しさん
2011/02/15(火) 13:25:46002826
2011/02/15(火) 13:31:31※>>26で、半角のカナが全角になっている箇所がありました。
#a.txt(文字コードsjis)
あさ/あさ
ぁさ/ぁさ
ァサ/ァサ
アサ/アサ
A.B
A.B
a.b
#---------------
上記のようなファイルがあった場合、
"あさ/"が入力されれば
#---------------
あさ/あさ
ぁさ/ぁさ
ァサ/ァサ
アサ/アサ
#---------------
"a.b"が入力されれば
#---------------
A.B
A.B
a.b
#---------------
を出力させたい。
0029デフォルトの名無しさん
2011/02/15(火) 16:54:12いいサイトとかあったら教えて欲しいです
0030デフォルトの名無しさん
2011/02/15(火) 17:02:52根性じゃ難しいんじゃないかなぁ。あとCで書かれたモジュールとか
そのままじゃ使えなくなっちゃう(多分)ので微妙かも。挑戦するのは
面白いと思うよ。
0031デフォルトの名無しさん
2011/02/15(火) 17:02:52根性じゃ難しいんじゃないかなぁ。あとCで書かれたモジュールとか
そのままじゃ使えなくなっちゃう(多分)ので微妙かも。挑戦するのは
面白いと思うよ。
0032デフォルトの名無しさん
2011/02/15(火) 17:03:360033Perl忍者 ◆M5ZWRnXOj6
2011/02/15(火) 17:04:190034デフォルトの名無しさん
2011/02/15(火) 21:04:20ここで質問回答すれば Perlの理解力アップするしいいねここ
もっと質問しろカスども
0035デフォルトの名無しさん
2011/02/16(水) 06:05:410036Perl忍者 ◆M5ZWRnXOj6
2011/02/16(水) 12:12:060037デフォルトの名無しさん
2011/02/16(水) 14:15:44sqliteでも排他制御できると一番うれしいのだけど
0038デフォルトの名無しさん
2011/02/16(水) 15:30:51perlをエディタでやりたい。miなど。
どうやって設定する?
os mac osx
0039Perl忍者 ◆M5ZWRnXOj6
2011/02/16(水) 15:37:200040デフォルトの名無しさん
2011/02/16(水) 17:09:060041デフォルトの名無しさん
2011/02/16(水) 18:13:44/( ゚ )( ゚ )ヽ /( ゚ )( ゚ )ヽ
/::::⌒`´⌒::::\ /::::⌒`´⌒::::\
| ,-)___(-、| | ,-)___(-、| でででででってででてってていうwwwwwww
| l |-┬-| l | | l |-┬-| l |
/ `ー'´ 、` ̄ ̄ヽ / 、 `ー'´ |
/ __ Y ̄) | ( (/ ヽノ_ | ででってででてでっていうwwwwwwww
(___) Y_ノ ヽ/ (___ノ
\ | | /
| /\ \ / /\ |
| / ) ) ( ( ヽ |
∪ ( \ / ) ∪
\_) (_/
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
WWWWWWWWWWWWWWwwwwwwwwwwwwwWWWWWWWWWWWWWww
wwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
でっていうwwwwwwwwwwwwwwwwwwwwwwwwwwwwででででっていうwwwwwwwwwwwww
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
0042Perl評論家
2011/02/16(水) 19:35:20あれだよな ブログやホムペ所持率たかいよな
絵とか載せたり、アニメキャラの画像つかってさああ
miとかわめいてんだろ?なあ?
クソマカ 君はマカーなんだけどさあ?
数年まえの俺もマカーだったんだよ?
だけど俺のほうがすごかったんだよマカーとして
お前はmiとかいうまえにタイムスリップして俺と勝負してみ?
負けるから へなちょこはターミナルで『エイッ!」っていってれば
0043Perl評論家
2011/02/16(水) 19:37:260044デフォルトの名無しさん
2011/02/16(水) 20:09:280045デフォルトの名無しさん
2011/02/16(水) 20:10:04サッカーの試合結果の記録されたデータファイルを読み取り、
優勝したチーム名を出力するプログラムを作成せよ。
データファイルには、先頭の行にチーム数が出力されており、
2行目からチーム名(チーム数分)、
それ以降の行に試合結果が出力されている。
試合結果の行は以下のフォーマットとなっている。
<ホーム側のチーム名> <ホーム側チームの得点>
<アウェイ側チームの得点> <アウェイ側チーム名>
チーム名は30文字以内とする。
試合に勝ったチームには勝ち点3が与えられ、引き分けたチームには
勝ち点1が与えられる。勝ち点の合計が最も多いチームが優勝となるが、
勝ち点の合計が同じチームが複数ある場合には、それらのうち、
得失点差(得点と失点の差)の合計が大きいチームが優勝となる。
得失点差の合計が同じ場合にはどちらを優勝としてもよい。
-----------データファイルの例-------
4
MANCHESTER_UNITED
ARSENAL
CHELSEA
LIVERPOOL
MANCHESTER_UNITED 3 1 ARSENAL
CHELSEA 3 0 LIVERPOOL
ARSENAL 2 2 CHELSEA
LIVERPOOL 3 0 MANCHESTER_UNITED
------------------------------------
これってPerlでできますか?
0046デフォルトの名無しさん
2011/02/16(水) 20:13:070047デフォルトの名無しさん
2011/02/16(水) 20:14:590048デフォルトの名無しさん
2011/02/16(水) 20:21:560049デフォルトの名無しさん
2011/02/16(水) 20:23:310050デフォルトの名無しさん
2011/02/16(水) 20:29:490051デフォルトの名無しさん
2011/02/16(水) 21:45:460052デフォルトの名無しさん
2011/02/16(水) 21:55:090053Perl忍者 ◆M5ZWRnXOj6
2011/02/16(水) 22:03:11みんな喧嘩はよくないよ
0054デフォルトの名無しさん
2011/02/17(木) 01:00:38タワケな根性だとこの先一生後悔するぞ。
脳みそなんてのは使ってなんぼ、体を動かすのとまったく同じこと。
0055デフォルトの名無しさん
2011/02/17(木) 08:16:37もっち小さいときにきちんと教育しないと。
大人になってからだと、自衛隊とかそういうところで根性を叩きなおさないと無理。
0056デフォルトの名無しさん
2011/02/17(木) 17:35:57sqliteやmysqlの排他制御できないの?
誰か教えてよ
0057デフォルトの名無しさん
2011/02/17(木) 17:43:49sqliteは使ったことないから知らん。
0058デフォルトの名無しさん
2011/02/17(木) 20:12:060059デフォルトの名無しさん
2011/02/17(木) 21:29:39MySQL(InnoDB)は、操作するときに行ロックがかかる。
SQLiteはトランザクション宣言すると、データベース丸ごとロックがかかる。
データベース板へどうぞ。
http://hibari.2ch.net/db/
0060デフォルトの名無しさん
2011/02/17(木) 21:35:59PLplotを使おうと思ったのですがマニュアルが分かりにくくて困っています。
0061Perl忍者 ◆M5ZWRnXOj6
2011/02/17(木) 22:56:52かわりに実行してくれるサーバとかないんですか?
vpsつかうしかないんですか?おしえてください
0062Perl忍者 ◆M5ZWRnXOj6
2011/02/17(木) 22:58:50そしてインターネットでくらしたいです
0063Perl忍者 ◆M5ZWRnXOj6
2011/02/17(木) 23:00:250064デフォルトの名無しさん
2011/02/17(木) 23:06:380065Perl忍者 ◆M5ZWRnXOj6
2011/02/17(木) 23:17:59っていうのやめろ おこるからな
0066Perl忍者 ◆M5ZWRnXOj6
2011/02/17(木) 23:22:020067デフォルトの名無しさん
2011/02/17(木) 23:53:22政府は消費税を上げる前に、電波オークション制度を導入し、税金としてテレビ局にきちんと払わせるべき。
フジテレビ テレビ朝日 日本テレビ TBS
平均年間給与 1534万円 1,213万円 1,263万円 1358万円
従業員数 1431人 1,153人 1,159人
※全テレビ局が支払う電波利用料はたったの7億円
■電波オークションとは
電波帯域の利用免許を各テレビ局や通信事業者に付与する際、一番高い買い取り額を提示した会社に割り振る方式
先進国の約2/3が導入し、問題なく運用されており、大きな税収となっている。
■反対している者たち
・各テレビ局(国民の公共の財産である電波を格安で利用し、従業員の給料等にあてているため)
・総務省(現状、電波利用料は総務省の管轄であり利権となっている。財務省の管轄として税金化してほしくないため)
0068デフォルトの名無しさん
2011/02/18(金) 16:31:390069デフォルトの名無しさん
2011/02/18(金) 16:41:000070デフォルトの名無しさん
2011/02/18(金) 19:42:39とやると、BEGINが含まれる行からENDが含まれる行がprintされるけど、
BEGINとENDが含まれる行はprintしないようにするエレガントな方法ってある?
何も考えずに書くと、
while (<>) {
if (/BEGIN/../END/) {
next if /BEGIN/;
next if /END/;
print;
}
}
という、だっさいコードになるんだけど。
0071デフォルトの名無しさん
2011/02/18(金) 19:44:56コードがダサいんじゃない、
おまえがダサいんだ
0072Perl忍者 ◆M5ZWRnXOj6
2011/02/18(金) 19:53:18Rubyでもやってろよかす
0073デフォルトの名無しさん
2011/02/18(金) 20:06:28print if ((/BEGIN/ .. /END/) and not (/BEGIN/ or /END/));
0074デフォルトの名無しさん
2011/02/19(土) 02:58:55お奨めの入門書や手元に置いておくべき本とかありますか?
0075デフォルトの名無しさん
2011/02/19(土) 03:26:270076デフォルトの名無しさん
2011/02/19(土) 08:15:52自分はPerlクックブックだけでかなり上達した。
各章の冒頭に概要が書いてあり、そこを読むだけでもPerlのエッセンスがかなり分かると思う。
入門書は、>>75さん指摘のオライリー本を立ち読みなりして、今の自分にあったものを購入すればいいと思う。
あと、perldoc.jpで各種チュートリアルを読むのもいいかも。
0077デフォルトの名無しさん
2011/02/19(土) 08:34:570078みなみな ◆MINA.uoEHM
2011/02/19(土) 10:06:22アルパか本あるよ しおれてるよ
0079デフォルトの名無しさん
2011/02/19(土) 11:12:08ニートで暇だから作ってみた。
use List::Util qw(maxstr);
my $file = "soccer_result.txt";
my $fh;
open $fh, $file or fileno($fh = \*DATA) or die $!;
my %result = map { chomp(my $team = <$fh>); $team => {} } 1..<$fh>;
while ( <$fh> ) {
my ($home_team, $home_goals, $away_goals, $away_team) = split;
my $points = ([0, 3], [1, 1], [3, 0])[ ($home_goals <=> $away_goals) + 1 ];
$result{$home_team}{point} += $points->[0];
$result{$away_team}{point} += $points->[1];
$result{$home_team}{goal_diff} += $home_goals - $away_goals;
$result{$away_team}{goal_diff} += $away_goals - $home_goals;
}
sub which_is_winner {
my ($a, $b) = @_;
$result{$b}{point} <=> $result{$a}{point}
or $result{$b}{goal_diff} <=> $result{$a}{goal_diff}
}
0080デフォルトの名無しさん
2011/02/19(土) 11:14:22$result{$ranked_teams[0]}{rank} = my $rank = 1;
for my $i ( 1 .. $#ranked_teams ) {
$rank = $i + 1 if which_is_winner($ranked_teams[$i], $ranked_teams[$i-1]);
$result{$ranked_teams[$i]}{rank} = $rank;
}
my $max_len = length maxstr(keys %result);
print "順位 チーム名", q{ } x ($max_len - 8), "勝点 得失点差\n";
for my $team (@ranked_teams) {
printf "%2d位 %-${max_len}s %3d %4d\n",
$result{$team}{rank}, $team, $result{$team}{point}, $result{$team}{goal_diff};
}
__DATA__
4
MANCHESTER_UNITED
ARSENAL
CHELSEA
LIVERPOOL
MANCHESTER_UNITED 3 1 ARSENAL
CHELSEA 3 0 LIVERPOOL
ARSENAL 2 2 CHELSEA
LIVERPOOL 3 0 MANCHESTER_UNITED
0081Perl忍者 ◆M5ZWRnXOj6
2011/02/19(土) 14:30:39my $points = ([0, 3], [1, 1], [3, 0])[ ($home_goals <=> $away_goals) + 1 ];
0点
0082Perl忍者 ◆M5ZWRnXOj6
2011/02/19(土) 17:00:11my $p=([1,2],[3,4],[5,6]);
この場合右のリストはスカラーコンテキストで評価されて
$p=[1,2];
$p=[3,4];
$p=[5,6];ってなって最終的に最後の[5,6]になるんだぜ
しらなかった?
0083デフォルトの名無しさん
2011/02/19(土) 17:29:35スカラーコンテキストだったら要素数じゃないの?
0084デフォルトの名無しさん
2011/02/19(土) 17:38:43別物なんだよね。
0085Perl忍者 ◆M5ZWRnXOj6
2011/02/19(土) 17:43:480086Perl忍者 ◆M5ZWRnXOj6
2011/02/19(土) 17:48:46my $b=@a;
print $b;
@aが配列 (1,2,3,4,9)がリストだろw
0087Perl忍者 ◆M5ZWRnXOj6
2011/02/19(土) 17:50:05wwwwwwWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWwwwwwwwwwwwwwwwwww
0088デフォルトの名無しさん
2011/02/19(土) 17:50:49$p = 0;
$p += (1, 2, 3);
print $p; # 3
0089デフォルトの名無しさん
2011/02/19(土) 18:00:07式なんだよな。で、コンマ演算子はコンテキストによって働きが違う。
ttp://perldoc.jp/docs/perl/5.6.1/perlop.pod#Comma32Operator
コンマ演算子⚓
二項演算子の "," はコンマ演算子です。 スカラコンテキストではその左引数を評価し、その値を捨てて、 それから右引数を評価し、その値を返します。 これはちょうど、C のコンマ演算子と同じです。
リストコンテキストでは、これは単にリスト引数の区切り文字で、 双方の引数をそのリストに挿入する働きがあります。
009088
2011/02/19(土) 18:08:46ありがとう。評価はして左に渡されるのは最後の結果ということか。
普段やらないことは予想も付かないところがPerlらしい...?
0091Perl忍者 ◆M5ZWRnXOj6
2011/02/19(土) 18:10:280092デフォルトの名無しさん
2011/02/19(土) 20:35:56.560093Perl忍者 ◆M5ZWRnXOj6
2011/02/19(土) 21:25:25.920094Perl忍者lvl1 ◆M5ZWRnXOj6
2011/02/19(土) 23:57:48.07名前かっこいいねw
0095デフォルトの名無しさん
2011/02/20(日) 08:22:43.98リストなんてlispそのまんまじゃん
普段やらないんじゃなくてお前の知識が無いだけだ
lispのリストすら知らないんだったらプログラマやるのは厳しい
デスマの元だ
0096デフォルトの名無しさん
2011/02/20(日) 10:27:13.06難しく書いてるけど、cの変数宣言
int a, b;
もコンマ演算子な。
0097デフォルトの名無しさん
2011/02/20(日) 11:26:03.76行数が/^$/までってどういういみ
行頭と行末?なにがしたいのこれ
教えてください
0098デフォルトの名無しさん
2011/02/20(日) 11:36:02.58$.==1 .. /^$/
0099デフォルトの名無しさん
2011/02/20(日) 14:45:15.68/^$/は空行までってことだろう。
>>70
実は..演算子の値はただの真偽値じゃなくて
偽としては空文字列が返され、 真としては (1 から始まる) 順に並んだ数値が返されます。 この通し番号は、新たに範囲が始まるごとにリセットされます。 範囲の最後の数字には、文字列 "E0" が末尾につけられます。
ってことなので、
while (<>) {
if ($r = (/BEGIN/..($g=/END/))) {
print if $r > 1 && $r !~ /E0$/;
}
}
てな書き方もできる。
0100デフォルトの名無しさん
2011/02/20(日) 14:46:30.14while (<>) {
if ($r = (/BEGIN/../END/)) {
print if $r > 1 && $r !~ /E0$/;
}
}
010197
2011/02/20(日) 15:03:14.17/^$/は$_とマッチさせているということでよろしいでしょうか?
$_=~/^$/ マッチするまで続けるのでしょうか?
010297
2011/02/20(日) 17:01:36.72@a=(1..100);
だと1,2,3,4,5,6,7,8,9,10 から98,99,100までですよね
if (1 .. /^$/); この場合はどういう意味でしょうか
$.==1 .. $_=~/^$/って言う意味ですか?
ファイルが5行だとしたら
1..5みたいなかんじで 最後の/^$/は空白行があったら1をかえすんですか?
ってことは
1,2,3,4,5,1になるんですか?
0103デフォルトの名無しさん
2011/02/20(日) 17:05:39.62コンテキストによって動作が違うんだよ。説明長いのでマニュアル嫁。
ttp://perldoc.jp/docs/perl/5.12.1/perlop.pod#Range32Operators
010497
2011/02/20(日) 17:39:16.00左側の値が右側の値より大きい場合は、空リストを返します。
foreachで例えると
foreach(1..5) = @a=(1,2,3,4,5) foreach(@a)
左の値が右の値より大きくなると空だから終了されるのはわかんだけどさ
マニュアルのどこに書いてあんの
ねえ?こたえてよほら?ねえ?w
010597
2011/02/20(日) 17:42:38.79これが知りたいですww教えてくださいw
マニュアルなんて読みましたw
1から/^$/って意味がわかりませんw
空白行を見つけるまでっていう意味ならなんとなくわかりますw
0106Perl忍者lvl1 ◆M5ZWRnXOj6
2011/02/20(日) 17:45:18.68かわいそう・・・
0107Perl忍者lvl1 ◆M5ZWRnXOj6
2011/02/20(日) 17:46:08.36ゲロクズゴミ○ゆ君
0108Perl忍者lvl1 ◆M5ZWRnXOj6
2011/02/20(日) 17:59:04.86open my $fh,"<","file";
my @a;
while(<$fh>){
if(1../^$/)
{
print "$. $_\n";
}
}
close $fh;
######## File ########
aho
tako
hage
kasu
hage
#########
これでわからなかったらカスすぎるよ君は
0109デフォルトの名無しさん
2011/02/20(日) 18:14:58.52下のサイトが分かりやすい。
ttp://d.hatena.ne.jp/hyuki/20061222#flip
にしてもここのスレはとっても優しい人がとってもたくさんいてとっても嬉しいよ
0110デフォルトの名無しさん
2011/02/20(日) 19:22:46.710111デフォルトの名無しさん
2011/02/20(日) 19:33:10.770112デフォルトの名無しさん
2011/02/20(日) 19:46:21.42とかだろ
0113デフォルトの名無しさん
2011/02/20(日) 19:55:51.12範囲演算子の場合は違うんだなこれが。
スカラの ".." の被演算子が定数表現であるときは、その被演算子は暗黙に、 現在の入力行番号(変数 $.) と等しい(==) 場合に真となります。
0114デフォルトの名無しさん
2011/02/20(日) 20:35:12.43おいしくないからさ^^;
クソみたいな質問答えてる113はご満悦だろうね^^;
クソがいないと俺TUEEEEEEEできないからね^^;
0115デフォルトの名無しさん
2011/02/20(日) 20:35:52.830116デフォルトの名無しさん
2011/02/20(日) 20:38:27.360117デフォルトの名無しさん
2011/02/20(日) 20:38:32.73ってことは、関数を使って表現すると
while((!eof(FH) && (length($line) > 0)){ 〜 }
ってこと?
0118デフォルトの名無しさん
2011/02/20(日) 20:41:59.50do while使えばラクじゃん
0119デフォルトの名無しさん
2011/02/20(日) 21:55:55.560120デフォルトの名無しさん
2011/02/20(日) 22:13:23.720122デフォルトの名無しさん
2011/02/20(日) 22:33:37.430123デフォルトの名無しさん
2011/02/20(日) 23:01:59.92while(<>){
last if /^$/;
print;
}
でいいんじゃないかってことじゃないか?
0124デフォルトの名無しさん
2011/02/20(日) 23:09:01.02四時間かけてそのことを理解したのかよ
0125デフォルトの名無しさん
2011/02/20(日) 23:58:44.33ありがとうございます。
0126Perl忍者lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 01:04:45.07...は被左演算子が真だったら被右演算子をテストしないって書いてあるね^^;
1行ずつ行を読み込んでるけど次のも読み込んでるのかな
if(/<pre>/.../<\/pre>/)
<pre>
aaaa
eeee
</pre>
<pre>にマッチしたら真になり ...は、被右演算子が再度でるまで評価しないってあるからさ
aaaa
eeee
</pre>この3行読み込んでるですよ^^;
みなさんわかりますか? 脳みそ足りてないからわからなさそうだけど
0127Perl忍者lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 01:06:31.40if(/<pre>/../<\/pre>/)
<pre>
aaaa
eeee
</pre>
まず<pre>で最初にマッチして 次読み込んだときに被右演算子が真の間ってあるので
aaaaとマッチせず終了です^^;
意味わかりましたか?かすども..と...の違いが
0128Perl忍者lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 01:08:12.76.. は 欲張りじゃない
... は 欲張り
って覚えてください^^;
0129デフォルトの名無しさん
2011/02/21(月) 09:23:42.130130Perl忍者lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 09:49:22.350131デフォルトの名無しさん
2011/02/21(月) 13:55:26.63print if /START/ .. /END/; # => START 1 2 END
print if /START/ ..^ /END/; # => START 1 2
print if /START/ ^..^ /END/; # => 1 2
START
1
2
END
0132デフォルトの名無しさん
2011/02/21(月) 14:06:31.33ある区切りの間だけ欲しくて区切りそのものはいらないって
よくあるからな。いつから入るんだっけ?
0133佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 15:47:06.340134デフォルトの名無しさん
2011/02/21(月) 16:35:22.03Perl 5.13.x(0〜10)のPerl deltaを見たけど、なかった。
だから今年の4月リリース予定のPerl 5.14には多分、入らないと思う。
というか、perl 5にneko operator入るのかな?
0135デフォルトの名無しさん
2011/02/21(月) 17:50:07.080136佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 18:03:41.09これってさあ
>>範囲演算子は、いったん左被演算子が真になると、右被演算子が真である間、 真を返すようになります。
右被演算子が偽になると、演算子も偽を返すようになります。
ってあるよね?
START
123
45
ffaa
ffem
END
ってあったらさあ 最初STARTが左被演算子とマッチして真になるよね?
>>いったん左被演算子が真になると、右被演算子が真である間、 真を返すようになります
ってあるけど 右被演算子は/END/で真になってないよね?wwww
STARTの場所読み込んでるわけだしwww もし次読み込んでも
123の行だし どういうことかな???
挙動教えてくれない? どう評価されているか教えてくださいwww
0137佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 18:05:57.73/START/../END/は ENDまでの行を出力するって それくらいわかるんだけどさ^^;
挙動教えてください^^;
0138デフォルトの名無しさん
2011/02/21(月) 18:10:56.58> Once the left operand is true, the range operator stays true until the right operand is true,
> AFTER which the range operator becomes false again.
0139佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 18:22:05.78もっと簡単に説明してくださいよ
ね?^ー^;
0140デフォルトの名無しさん
2011/02/21(月) 18:34:09.30取りあえず、今日始めてperl6をななめ読みした俺が答えてやるよ
1../^$/
は、取りあえず1(true)から始めて、/^$/が真になるまで続けるってことだ
OK?
0141佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 18:40:36.471000スレ目指すためにやってんだからさwwwww
0142佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 18:42:17.970143デフォルトの名無しさん
2011/02/21(月) 18:51:31.670144デフォルトの名無しさん
2011/02/21(月) 19:04:04.74おかしいところをわからない
#!/usr/bin/perl
print "Which directory? (Default is your home directory) ";
chomp (my $dir = );
if ($dir =~ /^\s*$/) {
chdir or die "Can't chdir to your home directory: $!";
}else {
chdir $dir or die "Can't chdir chdir to '$dir': $!";
}
my @files = <*>;
foreach (@files) {
print "$_\n";
}
誰かなおして
直してくれた人のことを、感謝する
0145デフォルトの名無しさん
2011/02/21(月) 19:08:28.00$dirの中身はどこから沸いて出てくるの?
0146デフォルトの名無しさん
2011/02/21(月) 19:11:41.89<*>は何が入るつもり?
0147デフォルトの名無しさん
2011/02/21(月) 19:23:28.24#!/usr/bin/perl
print "Which directory? (Default is your home directory) ";
chomp (my $dir = <STDIN>);
if ($dir =~ /^\s*$/) {
chdir or die "Can't chdir to your home directory: $!";
}else {
chdir $dir or die "Can't chdir to '$dir': $!";
}
my @files = <*>;
foreach (@files) {
print "$_\n";
}
0148デフォルトの名無しさん
2011/02/21(月) 19:24:46.30*は グロブする とかいてある
0149佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 19:38:52.07だから原文だしたのね^^;
○ ↓
範囲演算子は、いったん左被演算子が真になると、右被演算子が真になるまで、真を返すようになります。
右被演算子が偽になると、演算子も偽を返すようになります。
0150佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 19:40:21.35○ ↓
範囲演算子は、いったん左被演算子が真になると、右被演算子が真になるまで、真を返します
右被演算子が偽になると、演算子は偽を返します
ほうほうがわかりやすいね
0151佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 20:32:59.15右がマッチしてないのに、なんで /xxx/の後の行が出力されてるって思ったら
真を返してたんだね^^;
0152デフォルトの名無しさん
2011/02/21(月) 20:58:46.49こんなのもわからないの?
かわいそう・・・
0153佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 23:00:25.480154デフォルトの名無しさん
2011/02/21(月) 23:08:21.52> Once the left operand is true, the range operator stays true until the right operand is true,
左側のオペランドがtrueなら、右側のオペランドがtrueになるまで、オペランドはtrueを保持する。
> AFTER which the range operator becomes false again.
その後、オペランドは再びfalseに戻る
…ちゃんと正しく分かりやすく書いてあるじゃん?
まぁ、英語読めないバカが悪いってことで
0155佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/21(月) 23:57:18.86英語のレスみてなかったから
0156佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/22(火) 00:07:23.77すでに日本語のURL出してるのにバカじゃねえの?しか思ってなかったからさ
原文だすとき、日本語のやつは間違えてるから
原文読めっていえばよんでたけどね
0157佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/22(火) 00:14:00.340158佐々木優子lvl2(悪) ◆M5ZWRnXOj6
2011/02/22(火) 00:15:34.510159デフォルトの名無しさん
2011/02/22(火) 00:16:10.290160デフォルトの名無しさん
2011/02/22(火) 00:26:34.86英語読めないバカが悪いって書いてるだろ?
自己申告で読めるって言ってるなら同意しとけば良いじゃん。
0161デフォルトの名無しさん
2011/02/22(火) 00:51:14.79>>自己申告で読めるって言ってるなら同意しとけば良いじゃん。
日本語不自由なんですね、わかります。
あとsageてね白雉
0162デフォルトの名無しさん
2011/02/22(火) 01:48:51.12わかります。
0163デフォルトの名無しさん
2011/02/22(火) 08:51:38.600164デフォルトの名無しさん
2011/02/22(火) 08:58:47.920165sage
2011/02/23(水) 18:50:51.26比較する為の画像xxxx.bmpがあって
1)capture.exeでディスプレイの画面をキャプチャーしてtmp.bmpに保存
2)imagemagickでtmp.bmp読み込んで切り抜き保存
3)cmpbmp.exeで切り抜いた場所(tmp.bmp)と画像(xxx.bmp)が同じかどうかを比較しています
1),2)でHDDに保存するという事をしていますのでHDDが常にガリガリいってしまっている状態になってしまっております
これをすべてPerlのモジュールでする事は可能でしょうか?
なるべくHDDから読み込みだけをしたいと思っています
1)xxxx.bmpを読み込んで$Abmp
2)ディスプレイの画面をキャプチャーして切り抜き $Bbmp
3)$Abmpと$Bbmpを比較して近ければ特定の返り値をかえす
という感じに出来たら良いなと思っております
0166デフォルトの名無しさん
2011/02/23(水) 19:00:42.670167デフォルトの名無しさん
2011/02/23(水) 19:45:59.490168デフォルトの名無しさん
2011/02/23(水) 20:48:18.50CPAN で検索しないのは宗教的理由とかですかそうですか。
Win32::Screenshot とか使えそうなんじゃない?
ちょうど Image::Magic 使ってるみたいだし。
0169デフォルトの名無しさん
2011/02/25(金) 18:57:01.44コメントだけとか空行だけ消すといっただけでもいいんですが、自分でやるとヒアドキュメントや
正規表現の途中だったり文字列途中だったり等々、ちゃんとしようとするとかなり難しくて・・・。
0170デフォルトの名無しさん
2011/02/25(金) 19:04:47.380171デフォルトの名無しさん
2011/02/25(金) 19:30:21.21自力で再発明することを勧める
そうすればperlerとしての次のステップが開けるはず
それかCPANで探す 探さないのは宗教的理由とかですか?
0172nobodyさん
2011/02/25(金) 19:53:09.35私は、HTML::TagParserだよ
HTML::Parserむずかしそうだったから使ってないよ
HTML::ParserのほかにTreeBuilderとかあるけど
みんな何使ってるの?教えて
0173デフォルトの名無しさん
2011/02/25(金) 21:09:10.830174nobodyさん
2011/02/25(金) 21:15:24.31正規表現でやるのめんどくさいとおもったの
0175デフォルトの名無しさん
2011/02/25(金) 21:29:07.430176デフォルトの名無しさん
2011/02/25(金) 21:51:17.88<tr>(<td>(.*?)</td>)+</tr>
でしょ?
とくにめんどくさいってほどでも。。。
0177nobodyさん
2011/02/25(金) 21:58:36.180178デフォルトの名無しさん
2011/02/26(土) 06:15:00.62現在WebにあるHTMLってかなりの割合でその手の壊れた代物が残っている感触なんだけど
0179デフォルトの名無しさん
2011/02/26(土) 09:22:38.99XML::LibXMLで、recoverオプション付けるとか。
0180デフォルトの名無しさん
2011/02/26(土) 11:04:56.46得るにはどうしたらいいですか?
0181デフォルトの名無しさん
2011/02/26(土) 13:18:30.720182デフォルトの名無しさん
2011/02/27(日) 22:51:24.41perlソースを短縮化するツールとかってないでしょうか?
0183デフォルトの名無しさん
2011/02/27(日) 22:53:37.190184デフォルトの名無しさん
2011/02/28(月) 10:46:54.25すぐ人の真似する、なんか誰かが短縮してたりjavascript短縮してたりしてたからさ
真似して、僕もしたいみたいなやつなんだよ
だからこういうやつすぐ人の真似してEmacsつかうやつだよ かわいそう
0185デフォルトの名無しさん
2011/02/28(月) 11:17:28.33perl -MO=Deparse,-si0 hoge.pl
0186デフォルトの名無しさん
2011/02/28(月) 15:02:37.37ありがとうございます。出来ました!
日本語が文字コードになって出てきますが、自分であとは調べてみます。
0187デフォルトの名無しさん
2011/02/28(月) 23:56:18.730188デフォルトの名無しさん
2011/03/01(火) 00:12:39.02データ構造の表現にすぎないJSONをどういうHTMLに変換したいというのか
0189デフォルトの名無しさん
2011/03/01(火) 09:13:57.18xmlとエスパーしてみたがどうだろうか?
0190デフォルトの名無しさん
2011/03/01(火) 10:30:09.19<img src="http://yahoo.co.jp" alt="ばか講座" />
</span>
っていうのがあってHTML::TagParserで取得したいのですが
#!/usr/bin/perl
use strict;
use HTML::TagParser;
my $html=HTML::TagParser->new("http://www.ustream.tv/user/garden5/videos");
my @list=$html->getElementsByClassName("img");
print $list[0]->innerText;
srcのURLの値が取得できません
innerTextだとタグは無視されるのわかってます
どうやればいいんですか?教えてください
print $list[0]->getElementsByTagName("img");
ってやってもimgタグ取得できません教えてください
0191デフォルトの名無しさん
2011/03/01(火) 10:33:03.81正規表現でやりますね
0192デフォルトの名無しさん
2011/03/01(火) 10:44:24.010193デフォルトの名無しさん
2011/03/01(火) 11:15:36.120194デフォルトの名無しさん
2011/03/01(火) 11:18:11.710195デフォルトの名無しさん
2011/03/01(火) 11:42:31.730196デフォルトの名無しさん
2011/03/01(火) 11:44:41.680197デフォルトの名無しさん
2011/03/01(火) 12:39:53.900198デフォルトの名無しさん
2011/03/02(水) 08:03:39.29「優れたPerlプログラマを見分ける27の質問」の日本語訳
http://d.hatena.ne.jp/gfx/20110301/1298944990
「優れたPerlプログラマを見分ける27の質問」回答例
http://blog.livedoor.jp/dankogai/archives/51645218.html
0199デフォルトの名無しさん
2011/03/02(水) 09:07:58.87最近Perlはじめたんですけど
26個できました
ちょっと苦戦しました
0200デフォルトの名無しさん
2011/03/02(水) 09:22:01.768. デフォルトでレキシカルってわからん。回答にはmyって書いてあるけど、明示したらデフォルトちゃうやろ?
20. 例外なんてないだろw
22. たぶんfor(<FH>)とwhile(<FH>)の違いを言ってるんだろうけどfor(;$_=<FH>;)ならいっしょだよな
0201デフォルトの名無しさん
2011/03/02(水) 10:49:07.078.の「default」は、既定値にする、そのように初期設定する、的な意味合いだろうからmyでいいんじゃね?
俺はmyの使用を強制するuse strict(またはuse strict "vars")が答かなと思たんだが。
「How do you ensure that the default scope of a variable is lexical?」だし。
0202デフォルトの名無しさん
2011/03/02(水) 11:07:11.74ラクダしかない時代から使ってるんで「初めてのPerl」は読んだことないやw
デフォルトでレキシカルっていうとなんかuse lexicalみたいなプラグマで
宣言するとあとはいきなり出てきた変数が全部レキシカルになるようなもの
をイメージしちゃったよ。原文読むとそうかなと思わなくもないけど
だったらいちいちデフォルトとか書かんといて欲しいわ。紛らわしい。
0203デフォルトの名無しさん
2011/03/02(水) 11:48:40.18これ↑を、この↓質問にしたら、ちょっと難しい?
ハッシュをスカラーコンテキストで評価すると得られるものは何か
0204デフォルトの名無しさん
2011/03/02(水) 14:36:03.45mala:むかし酒の席で酔ったnipotanが「えー別にもう本名で活動しちゃえばいいじゃん」と俺の本名を発言したところ、
その場で例の契約が発動、nipotanをミンチにしてしまい、慌てて黒魔術で復活させた、という経緯があって呪力を抑えるために髪を伸ばしてる。
約2時間前 TweetIrcGatewayから
うそついてんじゃねえぞnipotan
0205デフォルトの名無しさん
2011/03/02(水) 14:37:52.530206デフォルトの名無しさん
2011/03/02(水) 14:39:16.19うそつきは どろぼうの はじまり。
意味
うそを、平気でつくようになると、やがて、盗みも、平気でやってしまう、ということ。
解説
うそをつくことに、恥ずかしさや、悪いことをしているという意識がなくなり、平気で、うそをつくようになると、悪いことへの恥ずかしさや、罪悪感が、なくなり、
やがて、盗みも、平気でしてしまう、ということです。うそをつくことを、習慣にしては、いけないという、いましめのようです。うそをつくということは、
他人をだますことで、それは、人と人とのコミュニケーションを、妨(さまた)げる原因であり、基本的に、
うそをつくことは、いけないこと、であると知るべきと思います。
重要語の意味
嘘=「うそ」と読み、人をだましたり、ごまかす為に使う、本当でないことや、まちがったこと。
つく=うそや、悪口などを言う。
泥棒=「どろぼう」と読み、他人の物を許可なく、又は、だまして、盗み取る人。
罪悪感=「ざいあくかん」と読み、罪の意識を持ち、
悪いことをしているという気持ち。
罪=「つみ」と読み、�@社会の決まりや、法律などをやぶること。 �A宗教や、道徳などの決まりに、反する行為。
0207デフォルトの名無しさん
2011/03/03(木) 11:45:50.44名称なんて考えずに組んでるからなぁw
0208デフォルトの名無しさん
2011/03/03(木) 23:18:30.03イメージとしては以下のような。伝わるかな・・。
#!/usr/bin/perl -w
use strict;
sub nihon{ print "日本¥n"; }
sub japan = nihon; # これ!!!
&nihon(); # "日本"
&japan(); # "日本"
0209デフォルトの名無しさん
2011/03/03(木) 23:35:15.79#!/usr/bin/perl -w
use strict;
sub nihon{ print "日本\n"; }
my $japan = \&nihon;
&nihon(); # "日本"
$japan->(); # or &{$japan}() # "日本"
0210デフォルトの名無しさん
2011/03/03(木) 23:38:44.67*japan = \&nihon;
あるいは
sub japan { goto &nihon; }
など。
両者の違いは自分で考えてくれ。
0211デフォルトの名無しさん
2011/03/04(金) 01:16:46.45自分はやり方分からないけど、パッケージの勉強をしようとググってたとき、
質問者がやりたい事ができそうなサンプルが確かあった
たしか、animal っていうのがあって、そこから cat だの dog だのが派生して。みたいなだったような気がする。
詳細は perl パッケージ とか、perl オブジェクト指向 とか、perl パッケージ 継承 とかでググってみて。
0212デフォルトの名無しさん
2011/03/04(金) 05:41:40.26継承は継承もとのメソッドを使えるようになるだけ
同名のメソッドを定義し直すことはできるけど、
同機能のメソッドを定義することは別の話
つーかそんなことする必要性を感じないんだが
0213デフォルトの名無しさん
2011/03/04(金) 05:47:53.41それいったら内容が同じで名前だけ違う関数を作ることだって
そんなことする必要性を感じないんだが
0214デフォルトの名無しさん
2011/03/04(金) 09:23:37.82ありがとうございます。
参考にします。
0215デフォルトの名無しさん
2011/03/04(金) 11:20:10.870216デフォルトの名無しさん
2011/03/04(金) 12:35:01.520217デフォルトの名無しさん
2011/03/04(金) 15:45:58.08元ネタは忘れたけど、例えば「use open IO」で検索すると、
詳しく解説しているページが見つかる。
0218伝説のPerl忍者lvl2 ◆M5ZWRnXOj6
2011/03/04(金) 20:19:53.01本当にこまってます
0219伝説のPerl忍者lvl2 ◆M5ZWRnXOj6
2011/03/04(金) 20:54:53.38チャットのログをDBに保存したいのですが
aaa:あいうえお
baka:しね
afe:ああえ
kiero:かす
ってあったとします スクリプトを起動してる間
ずっとログを取得して保存したいです
ですが、なにも発言されずにそのままだったらデータを保存しないようにしたいです
ログが変わってたら保存とかやりたいのですが
どうやって比較すればいいんでしょう?
1回データ取得してループさせて、DBからデータ取り出して比較するしかないんでしょうか?おしえてください
0220伝説のPerl忍者lvl2 ◆M5ZWRnXOj6
2011/03/04(金) 22:12:41.39aaa:あいうえお
baka:しね
afe:ああえ
kiero:かす
ってあったとします スクリプトを起動してる間
ずっとログを取得して保存したいです
ですが、なにも発言されずにそのままだったらデータを保存しないようにしたいです
ログが変わってたら保存とかやりたいのですが
どうやって比較すればいいんでしょう?
1回データ取得してループさせて、DBからデータ取り出して比較するしかないんでしょうか?おしえてください
0221伝説のPerl忍者lvl2 ◆M5ZWRnXOj6
2011/03/04(金) 22:50:06.640222デフォルトの名無しさん
2011/03/04(金) 23:08:44.55というわけでコテ外せばいい
0223デフォルトの名無しさん
2011/03/04(金) 23:15:49.190224デフォルトの名無しさん
2011/03/04(金) 23:18:31.460225デフォルトの名無しさん
2011/03/04(金) 23:23:49.29逆に教えてもらえなさそうだけど?
0226デフォルトの名無しさん
2011/03/05(土) 00:02:17.29でも肝心の質問部分が自動あぼーんされてて読めんw
0227デフォルトの名無しさん
2011/03/05(土) 01:13:44.350228デフォルトの名無しさん
2011/03/05(土) 01:27:31.860229デフォルトの名無しさん
2011/03/05(土) 01:34:34.580230デフォルトの名無しさん
2011/03/06(日) 00:41:59.73伝説のPerl忍者ともあろう者が質問するレベルの難問とはとても思えない
釣りにしても稚拙すぎる
さてはとうとう鳥割れで偽物が出たのか
0231デフォルトの名無しさん
2011/03/06(日) 10:22:35.91$hello = rand;
$hello < 1 and $line = $_ while <FILE>;
$hello < 1 and $lines = $_ while <FILEs>;
乱数を初期化しているつもりなのですが
何回やっても
同じものしか表示されないのですが
なぜでしょうか
0232デフォルトの名無しさん
2011/03/06(日) 10:27:13.660233デフォルトの名無しさん
2011/03/06(日) 10:39:37.86{
open(FILE,"<English.txt") or die print "File Error\nNot Fine English.txt";
open(FILEs,"<Japanese.txt") or die print "File Error\nNot Fine Japanese.txt";
srand;
$hello = rand;
$hello < 1 and $line = $_ while <FILE>;
$hello < 1 and $lines = $_ while <FILEs>;
close(FILE);
close(FILEs);
chomp ($line);
chomp ($lines);
print "$line > ";
chomp($input = <STDIN>);
if($lines eq $input)
{
print "正解\n";
} else {
print "不正解\n";
}
}
もとはこんな感じでテキストの中身を一行読み取って出力させるやつなのですが
一番最後の行しか読み込まないのです。。。
0234デフォルトの名無しさん
2011/03/06(日) 10:50:08.86これを走らせて rand の返す値の範囲を見てみるんだ。
0235デフォルトの名無しさん
2011/03/06(日) 10:53:14.71アナグラムか何かかに見えるくらい不可解なことになっている。
0236デフォルトの名無しさん
2011/03/06(日) 11:27:35.89何をしたいのかよく考えた方がいい。
0237デフォルトの名無しさん
2011/03/06(日) 11:58:12.78種は自動で初期化されるからな。
もし使うなら1スクリプトにつき1回だけが推奨。while(1)ループ中で毎回使うのは愚。
open my $fh, '<', 'English.txt' or die $!;
my @english = <$fh>;
close $fh;
chomp @english;
open $fh, '<', 'Japanese.txt' or die $!;
my @japanese = <$fh>;
close $fh;
chomp @japanese;
while (1) {
my $line = int(rand() * @english);
print "$english[$line] > ";
chomp(my $input = <>);
print $japanese[$line] eq $input ? "正解\n" : "不正解\n";
}
0238デフォルトの名無しさん
2011/03/06(日) 12:15:02.49ありがとうございます
無事に動きました
Perlではsrandでわざわざ初期化する必要なかったんですか
勉強になりました
0239デフォルトの名無しさん
2011/03/06(日) 12:22:13.52まったくの徒労だったな。
> Perlではsrandでわざわざ初期化する必要なかったんですか
> 勉強になりました
0240デフォルトの名無しさん
2011/03/06(日) 12:25:30.42自分の書いたコードとどこが違うのかよく比べて
勉強してくれればそれに越したことはないけどね
0241デフォルトの名無しさん
2011/03/06(日) 16:18:41.99> 勉強になりました
こちらも勉強になりますた!
プログラマの中にはこういう理解を行っている人もいるんですね!
今後それらの人たちを見極めるために上のrand例題を使いたいと思います!
非常にスバラしい知見をどうもありがとうございました!!
感謝します!!!
0242デフォルトの名無しさん
2011/03/06(日) 21:20:00.90・乱数の使い方がまずい
・ループを回るごとにファイルのopen readをやるのは無駄
くらいは把握してくれてればいいんだけど。
乱数については >>233 のやりたかったのはたとえば、
> $hello = rand;
> $hello < 0.5 and $line = $_ while <FILE>;
みたいなことだったのかもしれない。アイデアとしてはちょっと面白いかもと思った。
しかし、これだとループ一発目で $hello < 0.5 が真になる確率が 1/2 なので、
ループを何度回しても2回に1回はEnglish.txtの1行目が表示されてしまうモンテカルロ。
$hello < n の n の値を何に指定しても、結局ばらつきを均等にはできないモンテカルロ。
まあでもホビープログラマなら >>233 みたいなコーディングも
有りじゃないかなと個人的には思ったりして。ちゃんと動かないと意味ないんだけどさ。
あと int(rand() * @english); は int(rand(@english)); でよかったんだな。余談。
0243デフォルトの名無しさん
2011/03/06(日) 21:42:08.85が正しい、どっかのせっかちが写し間違えたんだろ
0244デフォルトの名無しさん
2011/03/06(日) 22:24:38.920245デフォルトの名無しさん
2011/03/07(月) 01:07:23.88my $var={
y=>$y,
name=>'作者',
img=>'./img/wing.png',
color=>'red',
};
print "Content-Type:text/html;charset=UTF8\n\n";
$tt->process("up.tt",$var);
print << "HTML";
aiueo
HTML
$tt->process("down.tt",$var);
up.ttで
<link href="./css/style.css" rel="stylesheet" type="text/css">
ここののstyle.cssで読み込んだ
#aaa{
background-color:[% color %];
}
の色をかえたいんですが
どうやったら引き継がせることができますか?
[% color %]を使えるようにしたいんですが教えてください
0246デフォルトの名無しさん
2011/03/07(月) 01:33:04.49ブラウザで表示される段階で初めて読み込まれる訳だから
サーバ側でテンプレート適用するのはムリだろ
どうしてもやりたきゃ
<link href="./css/style.css" rel="stylesheet" type="text/css">
のすぐ下に
<style type="text/css">
#aaa{
background-color:[% color %];
}
</style>
って入れとけば?
0247デフォルトの名無しさん
2011/03/07(月) 07:54:27.07外部CSSファイル用に別のテンプレートを用意して
別途そっちから出力してやればいいのではなかろうかと
0248デフォルトの名無しさん
2011/03/07(月) 11:02:05.48246みたいなやりかたするよ
>>247
うん
0249デフォルトの名無しさん
2011/03/07(月) 12:58:33.520250デフォルトの名無しさん
2011/03/07(月) 17:01:10.08かな?
0251デフォルトの名無しさん
2011/03/07(月) 17:16:05.89やっぱり中規模あたりなアプリケーションはフレームワーク使わないと組めないでしょうか?
あとURLとかmojoやCatalystみたいに 日付でアクセスさせて認識させたいんですが
どうすればいいでしょう?
http://example.com/2011-3-7
みたいに
0252デフォルトの名無しさん
2011/03/07(月) 17:39:16.38ある程度慣れるのに時間はかかるのでその間は大変だけど。
なんで嫌なのかわからない。
0253デフォルトの名無しさん
2011/03/07(月) 17:41:14.67まあしょうがないけど
なれてナインだろうけど
0254デフォルトの名無しさん
2011/03/07(月) 20:22:28.82勉強兼ねてるんなら自前で良いと思うけど。
0255デフォルトの名無しさん
2011/03/07(月) 20:47:19.37$tt->process('tmp/up.tt',$var);
$tt->process('tmp/index.tt') if $n==1 or !$n;
$tt->process('tmp/down.tt',$var);
ってprocessでやってるけどWRAPPERっていうやつ使うとどうなるの?
いまいちわかりずらいラッパー教えて
0256デフォルトの名無しさん
2011/03/08(火) 16:09:16.270257デフォルトの名無しさん
2011/03/08(火) 17:19:08.57自前のライブラリは一番最後に書く
普通はこうだと思うから、先頭に追加された方がオーバーヘッド少ないのでは?
0258デフォルトの名無しさん
2011/03/08(火) 18:17:00.250259デフォルトの名無しさん
2011/03/08(火) 19:01:34.46ありがとうございます。それで大丈夫でした。
サーチパスの後ろに追加したい理由は、Aというモジュールがそのサーバ上に無い
場合に、自分がアップしたファイル群の __modules とかなんとかのフォルダに置
いた所からロードしてもらおうかと思って。
サーバにあればそれを使って、無ければ __modules から使う・・、みたいな。
0260デフォルトの名無しさん
2011/03/08(火) 19:34:57.940261デフォルトの名無しさん
2011/03/09(水) 12:23:00.700262デフォルトの名無しさん
2011/03/09(水) 12:30:17.250263デフォルトの名無しさん
2011/03/09(水) 12:36:18.470264デフォルトの名無しさん
2011/03/09(水) 12:43:01.300265デフォルトの名無しさん
2011/03/09(水) 14:57:56.85って use strict; 同様必ず全てに付けてますか?
それとも、必要な箇所のみブロックで?
0266デフォルトの名無しさん
2011/03/09(水) 15:06:41.770267デフォルトの名無しさん
2011/03/09(水) 17:49:56.870268デフォルトの名無しさん
2011/03/09(水) 17:57:01.93マルチになってますが、よりふさわしそうなこちらで質問させてください。
http://upload.restspace.jp/src/upload1724.zip.html
にファイルをまとめてあります。
サンプルとなるようなプログラムを改良してみたtest.plですが、期待通りに動きません。
どこが悪いのか、ご指摘いただければありがたいです。
やりたいこと
deseq_result.txtのtagというカラム
annotated_all_tags.txtのtagというカラム
を比較します。
deseq_result.txtのtagの要素がannotated_all_tags.txtのtagと一致すれば
deseq_result.txtのカラムの最後にannotated_all_tags.txtのtag以外の要素を加えます。
カラム名でいえば、
tag baseMean baseMeanA baseMeanB foldChange log2FoldChange
pval padj resVarA resVarB origin description variant
と並べてresult.txtに出力したいのです。
既にこの時点でつまずいていますが、
もし、deseq_result.txtのtagの要素がannotated_all_tags.txtのtagと一致しない場合は
そのままdeseq_result.txtのすべての要素をresult.txtに出力したいです。
どうぞよろしくお願いします。
0269デフォルトの名無しさん
2011/03/09(水) 18:22:02.900270デフォルトの名無しさん
2011/03/09(水) 18:46:20.430271デフォルトの名無しさん
2011/03/09(水) 19:56:45.250272デフォルトの名無しさん
2011/03/09(水) 20:11:23.71ttp://codepad.org/qh8dA7Qh
どこの学部かは全然分からなかったけれども研究頑張ってくだしあ。
あとdataとdatumで恥ずかしいからdatasはペケだった
0273デフォルトの名無しさん
2011/03/09(水) 20:20:31.71ttp://cell-innovation.nig.ac.jp/wiki/tiki-index.php?page=DEGseq%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB
0274デフォルトの名無しさん
2011/03/10(木) 00:48:41.43TTにおくって
process('test.tt',$var);みたいに使いたいんだけど
いちいち
$res->all;取得したのを
ハッシュに代入して
$varみたいにやるの大変だから、もっと簡単にTTにおくるほうほうないの?
おしえて
0275デフォルトの名無しさん
2011/03/10(木) 00:52:42.27for($res->all)
{
push @{$a->{id}},$_->id;
push @{$a->{title}},$_->title;
push @{$a->{body}},$_->body;
}
以外にやりかたない?・・・おしえて〜〜〜
0276デフォルトの名無しさん
2011/03/10(木) 01:11:58.390277デフォルトの名無しさん
2011/03/10(木) 11:36:23.93test.ttでDBIxで取得したデータをつかいたいんですが
やっぱりdb.cgiみたいに やって出力するしかいないんでしょうか?
#body
print "Content-Type:text/html;charset=UTF8\n\n";
$tt->process('tmp/up.tt',$var);
$tt->process('tmp/index.tt') if $n==1 or !$n;
$tt->process('tmp/chat.tt') if $n==2;
$tt->process('tmp/tool.tt') if $n==3;
$tt->process('tmp/koza.tt') if $n==4;
$tt->process('tmp/profile.tt') if $n==5;
$tt->process('tmp/down.tt',$var);
tool.ttで使いたいんです教えてください
やっぱり別にtoo.cgiみたいに別ページ作ってそっから表示したほうがいいんでしょうか?
ttに取り込む方法おしえてください
0278デフォルトの名無しさん
2011/03/10(木) 11:44:41.60一週間くらい我慢して待っていたら
誰か教えてくれる人が出てくるかもしれないが
保証はできないな
0279デフォルトの名無しさん
2011/03/10(木) 11:45:30.38やっぱりPerlのやつは忙しいっていうか自分オタクですね
自分オタク
全然教えてくれない自分オタクばっかりだな
0280デフォルトの名無しさん
2011/03/10(木) 11:46:15.40わかります
0281デフォルトの名無しさん
2011/03/10(木) 11:50:51.340282デフォルトの名無しさん
2011/03/10(木) 11:52:41.010283デフォルトの名無しさん
2011/03/10(木) 11:53:06.160284デフォルトの名無しさん
2011/03/10(木) 11:53:47.69仕事とられたりする確立が上昇していくからいやなんですね^^;
0285デフォルトの名無しさん
2011/03/10(木) 12:02:39.72my $res=$schema->resultset('bbs');
print Dumper $res->all;
ダンプしたらハッシュだったけど
$VAR3 = bless( {
'_result_source' => $VAR1->{'_result_source'},
'_in_storage' => 1,
'_column_data' => {
'body' => 'あほ',
'num' => '4',
'name' => 'aa'
みたいになってるから
だから$resおくってもできない_result_sourctとかでリファレンスしないと
教えてください
取得したデータをtoo.ttで
process(tool.$var);見たいに使いたいです
$varは検索結果とか入ってる奴です
0286デフォルトの名無しさん
2011/03/10(木) 12:04:20.00そのまま使えませんでした
0287デフォルトの名無しさん
2011/03/10(木) 13:01:33.54宮沢賢治の「ツェねずみ」を思い出した
0288デフォルトの名無しさん
2011/03/10(木) 13:17:37.22速いでしょうか?
とりあえず以下を考えましたが他に速い方法ないですか?
index関数を使用する方法もやってみましたが遅くて。
-----------------
my $text = 'あるないないあるあるある';
my $count = 0;
while($text =~ /ある/g){
$count++;
}
print $count;
0289268
2011/03/10(木) 13:23:54.69>>272
ありがとうございます。ありがとうございます。
でも、空のデータが出力されます。
コンソールにも何も出ません。
何をチェックすればよいでしょうか
それに、一晩たって読み返してみると、
そもそも、元々のコードで
やりたいことが伝わらなかったように思います。
ttp://codepad.org/qh8dA7Qh
にそって、やりたいことを次のレスに書きます。
0290268
2011/03/10(木) 13:24:34.861)annotated_all_tags.txtからデータをを一行ずつ読みこむ
2)データをタブで区切り、@t 取り込む my @t = split /\t/;
3)$geneとは、@t の第一要素である。my $gene = shift @t;
4)$geneをキーにして@tをハッシュに取り込む
$annotate_data{$gene} = join ( "\t", @t );
5) deseq_result.txtからデータを一行ずつ読むこむ。
6)データをタブで区切り、@t 取り込む my @t = split /\t/;
7)$geneとは、@t の第一要素である。my $gene = shift @t;
8)@tをタブ区切りでOUTに書き込む。
9)もし、ハッシュに存在すれば、コンソールに出力print "match gene, $gene.\n";
10)そして、ハッシュデータを追記。print OUT $annotate_data{$gene};
11)ハッシュが存在しなければ、print "DON'T match gene, $gene.\n";
12)OUTに改行を追記。print OUT "\n";
0291268
2011/03/10(木) 13:25:16.953)と7)ですが、@t の第一要素なので、my $gene = @t[0] ?
4) と10)ですが、10)で追記したいのは、%annotate_dataのうち、$geneを除いた要素なので、
ハッシュとしては、@tのなかで、geneとそれ以外の要素、という形でわけて取り込めばよいですか?
$annotate_data{$gene} = join ( "\t", shift @t ); ?
データはこちらです。
http://upload.restspace.jp/src/upload1724.zip.html
どうぞよろしくお願いします。
0292デフォルトの名無しさん
2011/03/10(木) 13:34:31.87my $a={};
for($res->all)
{
push @{$a->{id}},$_->id;
push @{$a->{title}},$_->title;
push @{$a->{body}},$_->body;
}
0293デフォルトの名無しさん
2011/03/10(木) 14:04:45.950294268
2011/03/10(木) 14:05:35.05my %annotate_data = ()
を%annotate_data = ()
にして、あとは出力を手直ししたら行けました。
お騒がせしました。
0295デフォルトの名無しさん
2011/03/10(木) 14:07:27.20謝謝!!!みたいに居たすぎる
0296デフォルトの名無しさん
2011/03/10(木) 15:22:29.74居たすぎる、とかまともに漢字変換もできない奴は東アジア漢字文化圏からまとめて出ていけや
なんてね
0297デフォルトの名無しさん
2011/03/10(木) 15:26:57.270298デフォルトの名無しさん
2011/03/10(木) 16:27:20.39my $count = @{[ $text =~ /ある/g ]};
0299デフォルトの名無しさん
2011/03/10(木) 16:38:38.15use Benchmark qw(timethese);
timethese(
undef,
{
re => sub {
my $text = 'あるないないあるあるある';
my $count = 0;
while ($text =~ m{ある}g) { $count++; }
},
re_list => sub {
my $text = 'あるないないあるあるある';
my $count = @{[$text =~ m{ある}g]};
},
index => sub {
my $text = 'あるないないあるあるある';
my $count = 0;
my $pos = 0;
while (($found = index($text, 'ある', $pos)) >= 0) { $count++; $pos = $found + 2; }
},
s => sub {
my $text = 'あるないないあるあるある';
my $count = ($text =~ s{ある}{}g);
},
split => sub {
my $text = 'あるないないあるあるある';
my $count = split(/ある/, $text, -1) - 1;
},
}
);
0300デフォルトの名無しさん
2011/03/10(木) 16:39:30.91速いみたいだよ。
Benchmark: running index, re, re_list, s, split for at least 3 CPU seconds...
index: 4 wallclock secs ( 3.08 usr + 0.00 sys = 3.08 CPU) @ 206181.82/s (n=635040)
re: 4 wallclock secs ( 3.24 usr + 0.00 sys = 3.24 CPU) @ 368939.81/s (n=1195365)
re_list: 2 wallclock secs ( 3.14 usr + 0.00 sys = 3.14 CPU) @ 215722.29/s (n=677368)
s: 2 wallclock secs ( 3.13 usr + 0.00 sys = 3.13 CPU) @ 257762.30/s (n=806796)
split: 4 wallclock secs ( 3.15 usr + 0.00 sys = 3.15 CPU) @ 317109.52/s (n=998895)
0301デフォルトの名無しさん
2011/03/10(木) 16:41:44.06前にベンチマークとったけど、圧倒的に関数の方が速かった。
0302デフォルトの名無しさん
2011/03/10(木) 18:01:07.47use WWW::Mechanize;
use strict;
my $mech = new WWW::Mechanize(autocheck => 1);
$mech -> get('http://yuzuru.2ch.net/test/read.cgi/gamef/1297000987/');
$mech->submit_form(
fields => {
FROM => '名無し',
mail => 'sage',
MESSAGE => 'ここにメッセージ',
},
button => 'submit'
);
print $mech->content;
2ちゃんのスレに書き込むプログラム書いているのですが
文字が書き込まれないのですがどうすればいいでしょうか
0303デフォルトの名無しさん
2011/03/10(木) 18:17:38.800304デフォルトの名無しさん
2011/03/10(木) 18:23:28.95ありがとうございます。
//g で普通にやったほうが速いみたいですね。indexとか使うとこの用途の場合は遅い・・。
0305>>302
2011/03/10(木) 18:25:43.68その辺のことはまったくわかりません・・・
0306デフォルトの名無しさん
2011/03/10(木) 18:35:23.50}) if $n==3;
しょうがないからこうやったよ。
0307デフォルトの名無しさん
2011/03/10(木) 18:40:56.12かわいそう
DBIxからTTにおくってるよ あほはリファレンスわからないからわからないだろうけど
0308デフォルトの名無しさん
2011/03/10(木) 18:43:43.940309デフォルトの名無しさん
2011/03/10(木) 18:52:33.650310デフォルトの名無しさん
2011/03/10(木) 19:31:01.28use utf8;
use Benchmark qw(:all);
my $text = 'あるないないあるあるある';
cmpthese ( timethese( undef, {
substr => sub {
my $count;
my $word_len = length 'ある';
for my $i ( 0 .. length($text) - $word_len ) {
$count++ if substr($text, $i, $word_len) eq 'ある';
}},
bytes => sub {
use bytes;
my $count;
my $word_len = length 'ある';
for my $i ( 0 .. length($text) - $word_len ) {
$count++ if substr($text, $i, $word_len) eq 'ある';
}},
re_list => sub {
my $count = @{[$text =~ m{ある}g]};
},}));
Benchmark: running bytes, re_list, substr for at least 3 CPU seconds...
bytes: 2 wallclock secs ( 3.13 usr + 0.01 sys = 3.13 CPU) @ 21894.42/s (n=68639)
re_list: 4 wallclock secs ( 3.10 usr + 0.02 sys = 3.12 CPU) @ 58206.79/s (n=181838)
substr: 4 wallclock secs ( 3.03 usr + 0.00 sys = 3.03 CPU) @ 38457.81/s (n=116681)
Rate bytes substr re_list
bytes 21894/s -- -43% -62%
substr 38458/s 76% -- -34%
re_list 58207/s ..166% 51% --
0311デフォルトの名無しさん
2011/03/10(木) 20:08:36.01[% FOREACH i=[0..2] %]
[% name.${i} %]
[% num.${i} %]
[% END %]
${i}みたいにやるとちゃんと配列取得できます
name.iじゃなくて ${i}だったようです
これで悩み画消えました
0312デフォルトの名無しさん
2011/03/10(木) 22:11:04.66hashrefinflator使えば?
TTは勝手にメソッドかハッシュか判別して辿ってくれるから
ハッシュにしなくても大丈夫なはずなんだけど。
FW使ってもう一段上でblessされてたりすると判別失敗することはある。
0313デフォルトの名無しさん
2011/03/10(木) 22:48:56.780314デフォルトの名無しさん
2011/03/10(木) 23:00:06.26--------
Possible attempt to separate words with commas
--------
セパレータとしてではなくホントに , を "," として配列に含めたい場合 qw の外で書かないといけないんでしょうか?
0315デフォルトの名無しさん
2011/03/10(木) 23:42:18.54{
no warnings qw/ qw /;
my @l = qw/ a , b c /;
}
0316デフォルトの名無しさん
2011/03/10(木) 23:57:08.670317デフォルトの名無しさん
2011/03/11(金) 02:33:37.27「怒られた」んじゃなくて「警告が出た」だけだから、気にしなくてもいい。
やりたいことがちゃんと分かって書いてて意図どおりに動いているので。
でもPerlは「ひょっとすると書き間違いかもよ?」と警告を出してくれる。
「大丈夫、それはちゃんと分かって書いてるし意図どおりに動いているから」
ということをPerlに伝えるために、該当部分だけ警告が出ないようにしておく、
ということだろうな。qw/qw/で一瞬、ん? 何それ? となるかもしれないけど。ていうか俺はなったけど。
0318デフォルトの名無しさん
2011/03/11(金) 10:38:55.73ありがとうございます。
no warnings でないとこの警告は止まらないんですね・・。
0319デフォルトの名無しさん
2011/03/12(土) 10:48:05.13何故速くなるかは、PerlのCソースを見ないとわからないのかな?
indexより正規表現のほうが速いのは正規表現エンジンがかなり最適化されてるからなのか?
ただ、bytes::indexとすると正規表現より速くなった。
0320デフォルトの名無しさん
2011/03/12(土) 16:56:21.02#!/usr/bin/perl
#!/usr/local/bin/perl
0321デフォルトの名無しさん
2011/03/12(土) 16:58:36.780322デフォルトの名無しさん
2011/03/15(火) 09:19:43.11どんなモジュールがありますか?
openID意外でなんか教えてください
データベースを使う奴がいいです、なにがあるでしょうか?
認証サイトをつくるときに使うアクセス制御のモジュール
教えてください
0323デフォルトの名無しさん
2011/03/15(火) 09:21:51.540324デフォルトの名無しさん
2011/03/15(火) 09:29:26.64それでフォームから送られたアカウント情報とDBの比較してログインさせたらどうするの?
ユーザー名とかグループによって見えるページかえたいんだけど
322の場合はどんなやりかたでやってる?
0325デフォルトの名無しさん
2011/03/15(火) 10:25:09.22作者: 徳丸浩、出版社/メーカー: ソフトバンククリエイティブ
これを読む。PHPベースだけど役に立つかも。
ちなみに俺は未見。
0326Perl忍者lvl2(悪) ◆M5ZWRnXOj6
2011/03/15(火) 10:30:03.06わざわざ書籍買う必要ない
0327デフォルトの名無しさん
2011/03/15(火) 10:33:59.58サーバー側セッションに保存する。
ブラウザにはセッションIDだけをCookieで渡す。
その後はセッションIDで場合分けする。
以上
0328デフォルトの名無しさん
2011/03/15(火) 13:09:03.50どのようにすればいいのか教えてください
source:
use Tk;
use encoding qw(shift-jis);
MainWindow->new()->Label(-textvariable=>\ "てすと1")->pack;
MainLoop;
error:
encoding: Unknown encoding 'shift-jis' at C:\ディレクトリ\ファイル名.exe lin
e 2
BEGIN failed--compilation aborted at C:\ディレクトリ\ファイル名.exe line 2.
.plの状態ではしっかり動作します!
0329ななしさん
2011/03/15(火) 13:51:28.28bbsテーブルのばあいBb.pmになってたんだけど何でですか?教えてください
なんでBbs.pmじゃないんでしょうか
0330デフォルトの名無しさん
2011/03/16(水) 13:32:28.54そのエラーメッセージを読んで、どうすればいいか解らないわけ?
まあ、忠実に>>4に従えば、動くようになるかもしれないな。
0331デフォルトの名無しさん
2011/03/17(木) 10:37:21.145000エラーでるんです
index.cgiに use App::Schema;ってかくとエラー
なぜ?
mod_perl使ってからエラーがではじめました
mod_perl使わないとエラーがでません
ほかのCGIはエラーがでません
use App::Schema;っ手各とエラーがでます
App::Schemaは同じフォルダにあります
教えてください
0332デフォルトの名無しさん
2011/03/17(木) 11:42:21.200333デフォルトの名無しさん
2011/03/17(木) 16:09:50.120334デフォルトの名無しさん
2011/03/17(木) 21:15:14.87パスが通ってないんじゃないかな。
use lib 'index.cgiまでの絶対パス';
と書いて問題の切り分けをしてみれば?
0335デフォルトの名無しさん
2011/03/18(金) 03:47:44.920336デフォルトの名無しさん
2011/03/18(金) 09:03:05.26libとcwdつかってなおせました
ありがとうございました
0337デフォルトの名無しさん
2011/03/22(火) 16:42:49.63これと同じことをCatalyst使ってもっと綺麗で短くできないものか
datファイルもDBも使わないhtmlだけの掲示板が欲しい
0338デフォルトの名無しさん
2011/03/23(水) 12:43:29.58下の方が壊れててみれない
誰か直さないとまずくないか?
Why don't my <<HERE documents work?¶
(なぜ私の <<HERE ドキュメントがうまく動かないのでしょう?)
以下の三つの点を確認してください。
POD ERRORS¶
Hey! The above document had some coding errors, which are explained below:
Around line 2583:
=end original without matching =begin. (Stack: =begin original; =over)
Around line 2699:
You forgot a '=back' before '=head1'
0339Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/23(水) 21:26:14.030340Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/23(水) 21:27:15.02がなんとかするからほっとけよ
0341Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/23(水) 21:28:21.72別に、見て見ぬふりしてないしな
別に俺はそれを直すことがないから
指示待ちでもないしな
0342デフォルトの名無しさん
2011/03/23(水) 23:15:37.150343デフォルトの名無しさん
2011/03/23(水) 23:23:03.94従っても出来ませんが……
0344デフォルトの名無しさん
2011/03/23(水) 23:32:56.650345Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 00:10:06.66my $rs=$schema->resultset("Book")->search({},{order_by=>{-desc=>['me.isbn']},prefetch=>['book_review']});
while(my $p=$rs->next)
{
print $p->isbn,"\n";
print $p->book_review,"\n";
}
ってやると
978-4-89100-626-6
978-4-89100-625-9
978-4-8443-2699-1
MyApp::Schema::Result::Review=HASH(0x9d4e618)MyApp::Schema::Result::Review=HASH(0x9d523c8)
978-4-8443-2061-6
MyApp::Schema::Result::Review=HASH(0x9d528c8)MyApp::Schema::Result::Review=HASH(0x9c2cb30)MyApp::Schema::Result::Review=HASH(0x9d4e758)
978-4-8443-2005-0
MyApp::Schema::Result::Review=HASH(0x9d521e8)MyApp::Schema::Result::Review=HASH(0x9c2cb30)
978-4-7981-1992-2
MyApp::Schema::Result::Review=HASH(0x9d525e8)MyApp::Schema::Result::Review=HASH(0x9c2cb30)
978-4-7981-1876-5
978-4-7741-4076-6
MyApp::Scheってでます
0346Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 00:16:52.36print $p->book_review->nextかfirst変えると
MyApp::Schema::Result::Review=HASH(0x9d4e618)MyApp::Schema::Result::Review=HASH(0x9d523c8)
978-4-8443-2061-6
の一番最初のMyApp::Schema::Result::Review=HASH(0x9d4e618)が得られるんですが
print $p->book_review->next->bodyとやっても表示されません
print $p->book_review->next->[0]->bodyでもできませんし
やっぱりここはmy @a=$p->book_review->allで配列に全部取得してから表示しないとだめなんでしょうか?
allは配列を返すってなってるので
書籍にはTemplate toolkit向けにつくられており
[% item.book_review.0.body %]で本文表示してるんです
これをTTつかわないでやってみたんですが・・・配列使えませんでした
$p->book_review->[0]ってやっても
Not an ARRAY reference at k.pl line 12.ってでたんですが
foreachとかで回すと全部表示することになってしまうんです
好きな場所の番号えらんで表示したいんですが$p->book_review->[1]->bodyみたいに
でもできません 教えてください 助けてください
困ってます
0347Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 00:21:01.99978-4-8443-2061-6 には3コメント
978-4-89100-626-6 は0件ってかんじです
0348Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 00:27:43.00if($a>0)
{
print $p->book_review->next->body,"\n";
}
これでできました
最初のnextがからだから
Can't call method "body" on an undefined value at k.pl line 12.
ってでてました
ですが、いちいち$aにいれてスカラーコンテキストで配列数得るの大変です
if($a>scalar($p->book_review->all))
じゃできませんでした教えてください
どうやってスカラーコンテキストで評価して配列すうえられますか?$#みたいなのどうやってつかうんですか子の場合
0349Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 00:32:03.81すっとぼけてました
すみませんでした
もうできました
ありがとうございました
0350Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 00:40:09.92print $a[2]->body,"\n";
こうしないと取得できないのですが
print $p->book_review->all->[0]->body
これじゃなんで取得できないんでしょうか?教えてください
allが返すのは、配列なのですが
$p->book_reviw->allだと
MyApp::Schema::Result::Review=HASH(0x9589700)
MyApp::Schema::Result::Review=HASH(0x9467b90)
って表示されるので
2番目のやつを表示したいので
$p->book_review->all->[1]->bodyでいけるとおもったんですができません
教えてください 配列にいれないとできないみたいです どうすればいいんでしょう教えてください
0351Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 00:49:55.74教えてください
0352Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 01:02:47.60MyApp::Schema::Result::Review=HASH(0x8e85870)
978-4-8443-2061-6
MyApp::Schema::Result::Review=HASH(0x8e85bb0)
978-4-8443-2005-0
MyApp::Schema::Result::Review=HASH(0x8e85690)
978-4-7981-1992-2
MyApp::Schema::Result::Review=HASH(0x8e85450)
978-4-7981-1876-5
978-4-7741-4076-6
MyApp::Schema::Result::Review=HASH(0x8e85cb0)
:
$p->book_review->slice(2)
978-4-89100-626-6
978-4-89100-625-9
978-4-8443-2699-1
978-4-8443-2061-6
MyApp::Schema::Result::Review=HASH(0x9875ac0)
978-4-8443-2005-0
978-4-7981-1992-2
978-4-7981-1876-5
978-4-7741-4076-6
0353Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 01:05:51.920354デフォルトの名無しさん
2011/03/24(木) 01:35:02.56all[n]で取得できても次回の取得前にresetが必要だから意味がない
素直に「my @a=$p->book_review->all;」で取得するべき
逆に、一回しか使わないのであれば、SQLで絞り込むべき
0355デフォルトの名無しさん
2011/03/24(木) 02:33:18.21>print $p->book_review->all->[0]->body
はallが配列リファレンスを返すことを期待しているが、
my @a=$p->book_review->all;
がちゃんと動くんならallが返すのはリファレンスじゃなくてリストなんだろう。
てことで無理に書くとこうかな?
print (($p->book_review->all)[0]->body);
print [$p->book_review->all]->[0]->body;
0356デフォルトの名無しさん
2011/03/24(木) 08:51:55.93昨日これやりました
print [$p->book_review->all]->[0]->body;
これやったのにできなかったのは
#if(scalar $p->book_review->all >0)がなかったから
Can't call method "body" on an undefined valueってでてたからでした
空のリストで値表示しようとさせたからです
Can't call method "body" on an undefined valueで調べてみようと思います
回答ありがとうございました
0357デフォルトの名無しさん
2011/03/24(木) 12:09:55.09$click_url = $result->{ClickUrl};
print "$click_url\n";
}
とやると@{$yahoo_xml->{Result}}分の回数実行されて数個URLが出てくるのですが
これをforeachを使わずに一つだけ出すことってできますか?
0358デフォルトの名無しさん
2011/03/24(木) 12:18:43.04ってことをきいているんだろうか
0359デフォルトの名無しさん
2011/03/24(木) 12:46:04.39とか?
0360デフォルトの名無しさん
2011/03/24(木) 12:50:09.28ありがとうございます。
目的の結果がでました
0361Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 12:57:42.76my $rs=$schema->resultset("Book")->search({},{prefetch=>['book_review'=>'usr']});
prefetchで2個結合させると
DBIx::Class::ResultSet::count(): No such relationship usr on Book at k.pl line 8
ってでます
ちゃんとスキーマクラスにはhas_manyとかやってます
書籍の内容ではTemplate Toolkitでは
[% FOREACH book=list %]
[% FOREACH item=book.book_review %]
ってやってるんですが
$rs->nextとか$rsとかやっても
DBIx::Class::ResultSet::all(): No such relationship usr on Book at k.pl line 8
ってでます
どうすればいいでしょうか?
そもそも、DBICはTT用とかにむいてるんでしょうか?
TT使わないなら、DBIとかつかえってことですか?
教えてください
0362Perl忍者lvl2 ◆M5ZWRnXOj6
2011/03/24(木) 13:07:02.90prefetch=>{'book_review'=>'usr'}
でしたすみませんでした解決しました
0363デフォルトの名無しさん
2011/03/24(木) 16:08:04.730364デフォルトの名無しさん
2011/03/24(木) 16:39:28.24カス忍者うざいよ
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwww
0365デフォルトの名無しさん
2011/03/29(火) 13:25:53.28Java の父 James Gosling、Google へ
http://slashdot.jp/it/article.pl?sid=11/03/28/239202
>次は Perl の母あたりが Google に行くに違いない。
0366デフォルトの名無しさん
2011/03/29(火) 14:00:04.22各言語の凄いやつらが
エンペラーっていう団体立ち上げてそこにはいって
Google潰してくれない?
0367デフォルトの名無しさん
2011/03/29(火) 15:59:23.62コマンドラインの言葉のリンク。
http://akiba.geocities.jp/tr4583384/Pluggernotinstall.txt
どうしたら、できるようになりますか?
0368デフォルトの名無しさん
2011/03/30(水) 00:43:17.53my $pkg = $test->new;
$pkg->test();
こんなこと出来るのね。
気持ち悪いけど、このお陰で自分のやりたいことが出来るようになった。
0369デフォルトの名無しさん
2011/03/30(水) 10:54:47.76そんなのもわからないんですか?
死ね ラジオボタンとかでつかえるだろ
0370デフォルトの名無しさん
2011/03/30(水) 11:01:00.25$box{$radio}="xxxx";
0371デフォルトの名無しさん
2011/03/30(水) 11:16:18.72local宣言ですが、undefで初期化されると記憶していたので上のコードは、
------------
local %h;
$h{a} = 'A';
------------
と同義なのかと勘違いしてしまっていたのですが、このような記述は
local $h{a} = 'A';
どういう意味になるのでしょうか?
『 $h{a} 』だけが初期化される???
0372デフォルトの名無しさん
2011/03/30(水) 11:23:15.85WebはPHP王に乗っ取られ
システム系はPython先生に乗っ取られ
日本はRuby戦士の縄張りになってしまって
哀れなPerlerですね
0373デフォルトの名無しさん
2011/03/30(水) 11:57:31.68localは変数の値をどこかにこっそり保存してブロックの最後で
元に戻すだけ、と理解するといいと思う。
0374Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 13:08:34.33戦士だから、術や魔法使えないしな
かわいそう
幅広く立ち回れないかわいそうなRuby
おまけにユーザーも頭悪いし 言ってることが馬鹿げてるよ
発言が、ぐぐればでること直接いってるだけの低能ばっかりだな
忍者たちを舐めないほうがいいよ
戦士とかださいしかっこ悪いしさ気持ち悪いんだけど お前の発言取り消したほうがいいよ
恥ずかしい発言だね君は>>372
そもそも、Perlの真似してでてきたRubyがいきなり調子こきはじめて気持ち悪いよ
気持ち悪いもなにもOOに美徳感じてるハゲしかいねえ死ね
ごみみたいなアプリ作りやがって死んじまえ
0375Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 13:10:29.89頭の悪い発言してたしったか君か
0376Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 13:11:53.32お前煽りかた下手だよ
気持ち悪いしね
糞みたいなRuby使って車輪の再発明してる雑魚なんですもんねあなたは
Railsつかってゴミアプリでも生産してろよ鼻くそ
てめえの作ったアプリなんて、身内しかつかわねえだろハゲ死ね雑魚
今すぐ消えろゴミクズ虫
0377Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 13:20:45.600378デフォルトの名無しさん
2011/03/30(水) 13:59:17.50分りました。あと、以下みたいに my で作った奴にも local がちゃんと?動作するみたいなんですが、
localってグローバル変数だけじゃなく、レキシカルなものにも動作するもんなんですか?
use strict;
use warnings;
my %h = (a=>'A', b=>'B');
{
local $h{a} = '_a_';
print $h{a},"\n";
}
print $h{a}, "\n";
0379デフォルトの名無しさん
2011/03/30(水) 14:38:32.19パッケージすら最近勉強し始めたばかりだからさ
ラジオボタンに使えるってのがイマイチ意味が分からない
0380デフォルトの名無しさん
2011/03/30(水) 14:44:09.31レキシカル変数そのものはだめだけどハッシュの1要素だけとかなら
大丈夫みたいだね。俺も知らんかった。
my %hの下で、local %hはエラーになるけどlocal $h{a}はokらしい。
0381Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 17:01:18.22my %h;
ってやって
local %h;ってできるわけねえだろあほ
localはブロックない有効できるからな
my %h;
$h{a}=10;
{ local $h{a}=30; }
外のが10 変更されない 10のままlocal ローカル
おまえばかだなあ ほんと俺でもわかるのに
0382Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 17:07:34.470383デフォルトの名無しさん
2011/03/30(水) 18:11:59.15local ってグローバル変数に作用するんですよね・・?
0384Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 19:51:59.260385Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 20:05:59.450386Perl忍者 ◆M5ZWRnXOj6
2011/03/30(水) 20:13:08.090387デフォルトの名無しさん
2011/03/30(水) 21:34:47.27分りました。そうなんですね。
ありがとうございます!
0388Perl忍者lvl4 ◆M5ZWRnXOj6
2011/03/30(水) 22:00:49.92〜|/゚U゚|
──╂∩0二)
/ ⌒i
(_ノ^U レベルアップ
0389デフォルトの名無しさん
2011/03/30(水) 23:27:18.86レキシカル変数に対して、
local $h{a}=30;
local %h;
上が ok で下がなぜ NG なのか。
そういう風に仕様が 『 決まってんだよ 』 って言われればそれまでですけど。
0390Perl忍者lvl4 ◆M5ZWRnXOj6
2011/03/30(水) 23:40:19.96スクラッチパッドという伝説の世界が開かれたから
0391Perl忍者lvl4 ◆M5ZWRnXOj6
2011/03/30(水) 23:45:12.69$a[0]=20;
{local $a[0]=50;}
print $a[0];
どうやら配列でやっても同じなようだな
0392Perl忍者lvl4 ◆M5ZWRnXOj6
2011/03/30(水) 23:46:30.75(F) You used local on a variable name that was previously declared as a lexical variable using "my". This is not allowed. If you want to localize a package variable of the same name, qualify it with the package name.
(F) 以前に "my" を使ってレキシカル変数として宣言された変数名に対して local を使いました。 これは認められていません。 同じ名前のパッケージ変数をローカル化したい場合は、 パッケージ名で修飾してください。
0393デフォルトの名無しさん
2011/03/30(水) 23:46:34.32sub{
local $i = 10;
...
}
↓
sub {
my $tmp_i = $i;
$i = 10;
....
$i = $tmp_i; # デストラクタ
}
0394Perl忍者lvl4 ◆M5ZWRnXOj6
2011/03/30(水) 23:54:00.84$h=100;
{local $a;}
これがダメなのは前にmyで宣言してるってことが関係あんだろ?
our $h;
$h=20;
{local $h}
localはグローバル変数の値を別の場所にやんだろ
my %h;
my %a;
なんでmyなのに$a[0]と$h{x}でlocalが使えるってことはこの二つがグローバルってこと
俺は知ってるけどおめえなんかに答えおしえねえよかす
0395Perl忍者lvl4 ◆M5ZWRnXOj6
2011/03/30(水) 23:55:46.260396デフォルトの名無しさん
2011/03/31(木) 00:13:12.55単純に、local は自分のスコープ外の変数に関して作用するのかな? と最初思いましたが、
これでは local %h で %h がグローバルなら ok でレキシカルなら NG の理由が説明できない。
0397Perl忍者lvl4 ◆M5ZWRnXOj6
2011/03/31(木) 00:27:23.460398デフォルトの名無しさん
2011/03/31(木) 00:35:20.97忍者でもなければ、おもくそフォアグラウンドでぐぐってる。もう寝るけど。
0399デフォルトの名無しさん
2011/03/31(木) 00:39:32.69じゃあなんですか?
0400デフォルトの名無しさん
2011/03/31(木) 02:38:22.26perl 5以降myが使えるからlocalがグローバル変数のみ対象で誰も何も困らないってことで。
0401デフォルトの名無しさん
2011/03/31(木) 08:50:31.94いくつかの種類の左辺値もローカル化できます : ハッシュと配列の要素とスライス、 条件文(その結果が常にローカル化可能なもの)、シンボリックリファレンス。 単純変数に関しては、これは新しく、動的スコープを持つ値を作ります。
しかし値の待避と復帰と考えるとわざわざレキシカル変数を除外しなくてもよかった
ような気はする。
0402デフォルトの名無しさん
2011/03/31(木) 09:00:20.29WEB+DB PRESS Vol.61 P171 の local の記述で、「グローバル変数」 とあるのに
サンプルのコードがレキシカルだったのがきっかけで質問したのですが、
そういう仕様・・ということですね。>>396で書いたみたいな仕様だと分りやすいのに。
0403デフォルトの名無しさん
2011/03/31(木) 11:58:46.22Default is 1. (true)
デフォルトは、1です。(true)
Tells YAML.pm whether or not to sort hash keys when storing a document.
文書を保存するとき、ハッシュキーを分類するべきかどうか、YAML.pmに話します。
YAML::Node objects can have their own sort order, which is usually what you want. To override the YAML::Node order and sort the keys anyway, set SortKeys to 2.
YAML::Node オブジェクトは彼ら自身のソート順を持つことができます。そして、それは通常、あなたが望むものです。YAML::Node命令を無効にして、いずれにしろキーを分類するために、SortKeysを2にセットしてください。
0404デフォルトの名無しさん
2011/03/31(木) 12:00:43.82use YAML::Node;
use Data::Dumper;
my $y=new YAML;
$YAML::UseHeader=0;
$YAML::SortKeys=2;
my $y={
data=>[
{rule=>10,
name=>20,
},
],
};
YAML::DumpFile("k.yml",$y);
ってやったんですが
data:
- name: 20
rule: 10
って表示されます
- ruleを先に持ってきたいんですが アルファベット純になってしまいます
どうすればいいんでしょうか? ハッシュ宣言の順番のまま使いタイんですが
たすけてください
0405デフォルトの名無しさん
2011/03/31(木) 13:22:52.110406デフォルトの名無しさん
2011/03/31(木) 14:04:32.84こういう誤変換が平気な人は普段からコーディングミスも多そうな気がするが偏見かね
0407デフォルトの名無しさん
2011/03/31(木) 14:24:07.360408デフォルトの名無しさん
2011/03/31(木) 14:50:17.24のscalarって何のためにあるんでしょうか
0409デフォルトの名無しさん
2011/03/31(木) 15:39:48.60文字列しか返さないから何の意味もないと思うぞ。
0410デフォルトの名無しさん
2011/03/31(木) 16:35:37.83use YAML;
use YAML::Node;
my $hash_node = sub {
my $node = YAML::Node->new({});
%{$node} = @_;
return $node;
};
my $y = YAML->new;
my $y = {
data => [
$hash_node->(
rule => 10,
name => 20,
),
],
};
YAML::DumpFile("k.yml", $y);
Perlのハッシュは順序がないから、それをどうするか。
0411デフォルトの名無しさん
2011/03/31(木) 17:32:31.74cgi だったり、貧弱なサーバもまだまだ多いのでパフォーマンスが気になるんですが経験済みの方いませんか?
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
binmode STDOUT => ':utf8';
use open IO => ':utf8';
0412デフォルトの名無しさん
2011/03/31(木) 19:00:59.74ありがとうございます
0413デフォルトの名無しさん
2011/03/31(木) 19:33:56.99なに?ウインドウズでやってるの?
0414デフォルトの名無しさん
2011/03/31(木) 19:40:01.050415デフォルトの名無しさん
2011/03/31(木) 19:40:28.15どんだけド素人やねんおまえはw
0416411
2011/03/31(木) 19:58:54.12俺はまだ必要な場合と箇所にだけ使用してるんだけど・・。
0417デフォルトの名無しさん
2011/03/31(木) 20:34:37.340418デフォルトの名無しさん
2011/03/31(木) 21:30:20.22utf8が主流だからwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwww
use utf8;つけないとダメだろwwwwwwwwwwwwww
あとuse strict; use warnings;
0419デフォルトの名無しさん
2011/03/31(木) 21:36:57.91Linuxつかえ
文字コードめんどくさいから 色々めんどくさいウインドウズ 手間がかかる
0420デフォルトの名無しさん
2011/03/31(木) 21:43:29.09ウィンドウズ
ウインドウズ
0421デフォルトの名無しさん
2011/03/31(木) 21:55:03.63おまえは use w; も付けなきゃダメだろ
0422デフォルトの名無しさん
2011/03/31(木) 21:56:41.06ネタなのか本当なのかわからないな
0423デフォルトの名無しさん
2011/03/31(木) 21:57:17.29あったし・・・
0424デフォルトの名無しさん
2011/03/31(木) 22:34:58.060425デフォルトの名無しさん
2011/04/01(金) 09:57:56.740426デフォルトの名無しさん
2011/04/01(金) 11:05:59.78レベル45Perler ステ振りは、モダン特化です
0427デフォルトの名無しさん
2011/04/01(金) 11:29:35.590428デフォルトの名無しさん
2011/04/01(金) 11:33:08.05wwwwwwwww
wwwwwwwwwwwwwwwwwwwwww
wwwwwwww
つりかwwwwwww
わろすwwwwwww
0429デフォルトの名無しさん
2011/04/01(金) 11:46:43.81別クラスにしてくれって思うことがある。
バイナリで扱うのが楽といえば楽だ。
0430デフォルトの名無しさん
2011/04/01(金) 12:09:27.46なんかさ
ばかじゃねえの?ドキュメントだけ(笑)
視覚的なものが無いよね
SYNOPSだけ
リンク先とかはって 見本とかみせろよ
こう表示されるとかスクリーンショットとかわかりずれえんだよ
そんな説明文だけのやつ使うきにならん
0431デフォルトの名無しさん
2011/04/01(金) 12:09:57.89my %h = map { "pre_" . $_ => 1 } qw(a b);
こう↓するとエラーになるのは何故でしょうか?
my %h = map { "pre_$_" => 1 } qw(a b);
0432デフォルトの名無しさん
2011/04/01(金) 12:54:05.59http://perldoc.jp/docs/perl/5.10.1/perlfunc.pod
> { はハッシュリファレンスとブロックの両方の開始文字なので、
> map { ... は map BLOCK LIST の場合と map EXPR, LIST の場合があります。
> perl は終了文字の } を先読みしないので、{ の直後の文字を見て
> どちらとして扱うかを推測します。 通常この推測は正しいですが、もし間違った場合は、
> } まで読み込んで カンマが足りない(または多い)ことがわかるまで、
> 何かがおかしいことに 気付きません。 } の近くで文法エラーが出ますが、
> perl を助けるために単項の + を 使うというように、{ の近くの何かを変更する必要があります。
> %hash = map { "\L$_", 1 } @array # perl guesses EXPR. wrong
> %hash = map { +"\L$_", 1 } @array # perl guesses BLOCK. right
0433デフォルトの名無しさん
2011/04/01(金) 15:00:30.11勉強になった。map EXPR, LIST って書き方を知らないけど。
0434デフォルトの名無しさん
2011/04/01(金) 15:35:42.16質問者です。
�d
0435デフォルトの名無しさん
2011/04/01(金) 16:20:08.70それが残念変わるんだなぁ
0436デフォルトの名無しさん
2011/04/01(金) 17:44:56.10直後の文字が何の時にどっちで解釈されるのかいまいちよくわかんないのだが。
例で
EXPR: "
BLOCK: + ( lc
というのはわかったけど、書いてみてエラーになったら直すしかないんかね?
0437デフォルトの名無しさん
2011/04/01(金) 17:54:13.40http://localhost/appと
http://localhost/app/
でアクセスあせると
2番目の奴はちゃんとテンプレートとcssとかjs表示されんだけど
1番目だとjsとcssと画像が表示されねえwwテンプレートは表示される
/root/hello/ ↓
index.tt
img/->画像
css->css
js->js
0438デフォルトの名無しさん
2011/04/01(金) 18:18:40.46ブロックの中身が単純すぎるせいで { がハッシュリファレンスの開始と捉えられている。
%hash = map { key => 'value' } @array のような変換は
%hash = map +(key => 'value'), @array でいいし、map BLOCK より map EXPR の方が速い。
0439デフォルトの名無しさん
2011/04/01(金) 23:18:55.080440デフォルトの名無しさん
2011/04/02(土) 09:29:22.95プロトタイプのみ宣言しておいて、後で中身を定義するのって、等価だよね?
0441デフォルトの名無しさん
2011/04/03(日) 19:03:37.12$! の文字列には付かないのでしょうか?
手動で decode する以外に自動で付ける方法はないでしょうか?
以下のような感じの場合です。(※ LANG=ja_JP.UTF-8 で)
#!/usr/bin/perl -w
use strict;
use utf8;
binmode STDOUT => ':utf8';
binmode STDERR => ':utf8';
open(my $fh, '/dev/null');
print "★エラー = $!";
0442デフォルトの名無しさん
2011/04/03(日) 19:28:09.04use utf8;
use Encode;
…
open my $fh, '/dev/null' or die encode('utf8', "エラー "), $!;
とか? (うちの環境で$!は日本語を吐かないので$!部分は未検証)
0443デフォルトの名無しさん
2011/04/03(日) 19:31:48.180444デフォルトの名無しさん
2011/04/03(日) 19:31:55.890445デフォルトの名無しさん
2011/04/03(日) 20:35:27.24ありがとうございます。参考にします。
>>443
そうですね・・。これリテラルじゃないや。
0446デフォルトの名無しさん
2011/04/03(日) 20:59:27.43ファイル名とかコマンドライン引数とかはいちいち
encode書くのがだるい。なんかいい方法ないのかな。
0447Perl忍者lvl2 ◆M5ZWRnXOj6
2011/04/03(日) 22:52:59.37それじゃたいへんですよ
あきらめてください
0448Perl忍者lvl2 ◆M5ZWRnXOj6
2011/04/03(日) 22:54:11.290449Perl忍者lvl2 ◆M5ZWRnXOj6
2011/04/03(日) 23:01:06.57CPANモジュールガイド
ただいま予約受付中です。
だからかわない
じゃあね 買えるURL教えろ
0450デフォルトの名無しさん
2011/04/04(月) 11:12:20.340451デフォルトの名無しさん
2011/04/04(月) 14:25:52.56root権限でインストールされてるPerlでも、
ユーザ権限で自分の環境にCPANモジュールをインストールできるところ。
0452デフォルトの名無しさん
2011/04/05(火) 13:37:51.38mobilecatが動かない
portsで何か余計なもの入るから?
全部perlのcpanツールで入れれば大丈夫なの?
0453デフォルトの名無しさん
2011/04/06(水) 01:46:02.25あそこまで性格が悪くなってしまったという説を唱えるRubyエンジニアがいるのですが、
彼の言っていることは正しいのでしょうか
質の低い文法が一人の男の人生を狂わせ、
周囲の人間にまで多大な迷惑をかけてしまっているのだとしたら、
そんな悲劇を僕は直視することができません
otsuneがもしPerlよりも先にRubyに出会っていたとしたら、
彼の人生はもっと豊かになっていたのではないでしょうか
周囲の人間も迷惑を被る事は無かったのではないでしょうか
はてな村はもっと晴れやかで爽やかで前向きなコミュニティになっていたのではないでしょうか
そう考えると僕は胸が苦しくなる
夜眠れなくなる
0454デフォルトの名無しさん
2011/04/06(水) 09:23:54.88該当する物を出力するものを作っているのですが
出力するときはhtmlなのですが、その際の拡張子は「.cgi?name=いろは」みたいになっています。
ところがサイトメニュー等も一緒に出力したいので、SSIも同時に使いたいのですが
拡張子がshtmlで無いとダメなサーバー仕様なので、検索結果出力の際の拡張子をshtmlにするには
どうしたら良いでしょうか?
0455デフォルトの名無しさん
2011/04/06(水) 09:24:49.930456デフォルトの名無しさん
2011/04/06(水) 18:23:58.58use strict;
use warnings;
use Parse::AccessLogEntry;
my $p=new Parse::AccessLogEntry;
open my $line,"/var/log/apache2/access.log";
my $hash;
$hash=$p->parse($line);
close $line;
ってやると
Use of uninitialized value in split at /usr/local/share/perl/5.10.1/Parse/AccessLogEntry.pm line 28.
ってでるんですけど
どうすればいいですか?おしえてください
0457デフォルトの名無しさん
2011/04/06(水) 19:01:16.57決め打ちだからそれに合わせた LogFormat じゃないので
時間が入ってるはずの部分を split できずにエラー吐いてるのかな。
Parse::AccessLogEntry は50行程度なので自分が使ってる
LogFormat に合わせて修正して使えばいいのではなかろうか。
ちなみに自分でやるときは split か Text::CSV_XS でパースしてる。
0458otsune
2011/04/06(水) 20:30:07.96何か、2chに変なのが沸いてると聞いてきたんだが、オマエは何なんだ?
オレに言いたい事があるなら、ネットでの活動ネームなど添えるなりして書き込んでくれ
言っとくが性格が悪くなったことなんて一度もない勝手な風評を流すと罪に当たると言うのは知っているよな?
発言の語句からすると、akiyan臭いが用があるならchat.freenodenet #perl-casualまでどうぞ
0459デフォルトの名無しさん
2011/04/06(水) 20:34:13.800460otsune
2011/04/06(水) 20:35:39.79ん
も
の
だ
け
ど
な
に
か
!
?
!
!
!!!!!!!!!!!!!!!!!!!!!
0461デフォルトの名無しさん
2011/04/06(水) 20:38:21.440462デフォルトの名無しさん
2011/04/06(水) 21:00:29.08元からだもんな
0463デフォルトの名無しさん
2011/04/06(水) 21:43:20.13内部の事情をしってるやつ
0464デフォルトの名無しさん
2011/04/06(水) 21:47:21.880465デフォルトの名無しさん
2011/04/06(水) 21:51:55.55誰が書き込んでんだよ!!!!!!!!!!!!
0466デフォルトの名無しさん
2011/04/06(水) 22:01:47.55Rubyエンジニアってだれだよ
0467デフォルトの名無しさん
2011/04/06(水) 22:05:22.25おもしろくて毎日みるよ
0468デフォルトの名無しさん
2011/04/07(木) 00:16:23.020469デフォルトの名無しさん
2011/04/07(木) 07:26:01.360470デフォルトの名無しさん
2011/04/07(木) 17:40:59.13カゴに入れた商品を削除するにはどうしたらいい?
・・・ってこんな質問の仕方じゃアレかもしれんけどw
なにか思いついたレスお願いします。
0471デフォルトの名無しさん
2011/04/07(木) 18:17:00.430472デフォルトの名無しさん
2011/04/07(木) 18:39:14.60それは違うんじゃない?
注文内容をひとつひとつデータベースには登録しないかと。
0473デフォルトの名無しさん
2011/04/07(木) 18:49:32.560474デフォルトの名無しさん
2011/04/07(木) 18:56:25.25サーバーサイドで保存ということは、カートに入れた情報を一時的にサーバーのファイルに保存するということ?
それだと、利用者の数だけファイルを作ることにはなりませんか?
今はフォームのhiddenで先のプログラムへ渡す手法を考えているのですが、一度カートに入れた商品を削除する機能で悩んでいまして、、、
0475デフォルトの名無しさん
2011/04/07(木) 18:57:14.630476デフォルトの名無しさん
2011/04/07(木) 19:17:51.97使うとしたら商品一覧等のデータ格納くらいじゃないの?私はCSVファイルでやっているけど。
クッキーかhiddenで受け渡すか、サーバーで一時記録にファイルを使うのは上手くないかと。
0477Perl忍者 ◆M5ZWRnXOj6
2011/04/07(木) 19:29:33.22ファイルっていっても少しだろ?バカかハゲ
期限きれたら削除させればいいだろはげ
どうせお前みたいな2chに書き込んでるハゲが1ヶ月数万PVもとれねえだろ
なめてんのか?雑魚
0478デフォルトの名無しさん
2011/04/07(木) 19:30:13.580479デフォルトの名無しさん
2011/04/07(木) 19:31:02.590480デフォルトの名無しさん
2011/04/07(木) 19:31:04.780481デフォルトの名無しさん
2011/04/07(木) 19:37:49.72セッションって?
カート使用でサーバーサイドでファイル作るの?
ちょっと重いと思うんだけど本気?確かにさしたる時間はかからないけど。
月だと3万PVくらいかな。
それでも売り上げは出てるよ。まだまだ少ないけど。
0482デフォルトの名無しさん
2011/04/07(木) 19:39:58.59売り上げの記録は当然記録してるでしょう。私もそうしている。
今言ってるのは、一度カートに入れた商品を取り消す作業をプログラムでどうやるか、だよ。
カートに入れられた複数の商品から指定商品だけを除外するにはどうしたらいいか。
0483デフォルトの名無しさん
2011/04/07(木) 20:04:49.21hiddenなんかにしまったりした日にゃブラウザの履歴いったりきたりで矛盾が生じて
ロクなことにならんぞよ
CSVファイルだのに保存していちいち読み書きしてたらオーバーヘッドで鬱陶しいから
DB使うんじゃないの?
まあオレはDBなんて使ったことないけどさ〜使う機会いままでなかったんで
0484デフォルトの名無しさん
2011/04/07(木) 20:10:16.80お前にDBは無理
0485デフォルトの名無しさん
2011/04/07(木) 20:25:56.46「ブラウザの「戻る」ボタンは使わないでください」って全ページ冒頭に注意書きを表示してな。
当時はDBもバカ高い商用DBしか選択肢がなくて、データの保存は都度ローカルファイルへ書き出し。
お客さんが滅多に来なかったからそれでもなんとかなってたっけ。
>>482は十数年くらい前の時代からタイムスリップしてきた俺かもしれない。
0486デフォルトの名無しさん
2011/04/07(木) 20:37:53.52今それを真剣にやってるところなんだよw
今の最先端のやり方はどういうやり方なの?
0487デフォルトの名無しさん
2011/04/07(木) 20:54:31.50ちょとまて?おかしくないか?
今、書店で売ってるPerlCGIの書籍でも紹介されてるくらいだと思うけどなあ。
それに、ECサイトのカートでPerl使ってるとこは多いだろうし、
だとすると作り方にそう多くの手法選択肢もないわけで、
hiddenが10年前の手法とかっていうのも違和感あるなあ。
今の最先端カートはどういう手法を使ってるの?
0488デフォルトの名無しさん
2011/04/07(木) 20:56:17.13セッションIDはユーザや買い物に関する情報は入れずに
ただセッションを区別するためだけのものとする
容易に類推されたりしないよう作成すること
このセッションIDとユーザ固有IDなどはサーバ側で必要に応じて(セッションの都度)紐付けする
買い物情報やユーザ情報は変更・遷移も全てサーバ側のDBに格納する
て感じ?
識者の補足訂正を乞う
0489デフォルトの名無しさん
2011/04/07(木) 20:59:44.98中身が文字列の zipファイル を展開して
展開された文字列をファイルを作らないで
そのままスカラー変数に放り込みたいのですけども
どうしたらいいのでしょうか?
0490デフォルトの名無しさん
2011/04/07(木) 21:17:06.310491489
2011/04/07(木) 21:34:58.35言葉が足りず申し訳ありません
ひとつのテキストファイルを zip に圧縮したものを
展開してそのままスカラー変数へ放り込みたいのです
0492デフォルトの名無しさん
2011/04/07(木) 21:36:19.830493デフォルトの名無しさん
2011/04/07(木) 22:05:00.09サブタイトルとかで列挙されてる分には分からんが。
0494デフォルトの名無しさん
2011/04/07(木) 22:23:52.620495デフォルトの名無しさん
2011/04/07(木) 22:51:15.15どうやら、一度カートに入れた商品の指定商品だけを削除することができた。。。
hidden使用です。クッキー使用可にしていないブラウザ使ってる人ってどれくらいいるんだろう?
考えなくてもいいくらいに微々たるものだったらあれだけど、
とにかく、クッキー使えないブラウザでも利用できるカートにしたかったのね。
とりあえずできた。まあ、ちょっと心配あるけど。
これからは必要事項記入して全てのデータをメールで顧客と店舗に送る機能の作成に入ります。
0496デフォルトの名無しさん
2011/04/07(木) 22:58:10.30SSLって使わないとどういうことが起きるのでしょう?
盗聴されるっていうけど、そんなことがどうしてできるん?
0497デフォルトの名無しさん
2011/04/07(木) 23:07:34.30> 盗聴されるっていうけど、そんなことがどうしてできるん?
うわ〜
そんな程度の知識レベルでカートの仕掛けなんか作ってんのか〜
コワイわ〜
ていうか完全にスレチだな
0498デフォルトの名無しさん
2011/04/07(木) 23:30:25.48教えてもらえませんか?
0499デフォルトの名無しさん
2011/04/07(木) 23:50:47.00一時ファイルを使えない理由でもあんの?File::Tempとかもあるだろうに。
use Archive::Zip qw(:ERROR_CODES);
my $zip = Archive::Zip->new();
($zip->read('foo.zip') == AZ_OK) or die 'read error';
my $contents = (
$zip->numberOfMembers > 0 ?
$zip->contents(($zip->members)[0]) :
''
);
print $contents;
適当にでっちあげてみた。
0501489
2011/04/08(金) 01:06:48.66ありがとうございます。無事に出来ました。
contents で members の中身のどれかを伸長したデータにアクセス出来たんですね。
Archive::Zip を改めて perldoc してみるとちゃんと書いてありますね…orz
0502デフォルトの名無しさん
2011/04/08(金) 01:35:48.47「SSL」で グ グ れ 。
0503デフォルトの名無しさん
2011/04/08(金) 08:10:35.85今北産業で
0504デフォルトの名無しさん
2011/04/08(金) 08:25:56.250505デフォルトの名無しさん
2011/04/08(金) 13:21:15.25これをTemplate Toolkitで使いたいのですがよくわかりません
データを読み込んでいます
[% FOREACH item=yml.values.nsort%]
でもできないし助けてください
[xx,xxx,xx]3
[xx,xx]2
[xx,xx,xx,xx,xx]5
[xx]1
これを5,3,2,1とやりたいんです リストをスカラコンテキストで評価してソートさせたいんですが
Template Toolkitの場合はどうやればいいんでしょう?nsortだとできませんでした
0506デフォルトの名無しさん
2011/04/08(金) 13:28:22.97[% PERL %]つかってごりごりやるかじゃないかなぁ。
0507デフォルトの名無しさん
2011/04/08(金) 13:34:51.890508デフォルトの名無しさん
2011/04/08(金) 14:02:21.96my $host=$stash->{yml};
print "$_: ",scalar @{$host->{$_}},"<br>" foreach(sort {@{$host->{$b}}<=>@{$host->{$a}}} keys %$host);
[% END %]
できました ありがとうございました
0509デフォルトの名無しさん
2011/04/08(金) 16:04:40.18HTTPはハガキ。配達段階で内容は丸見え。
HTTPS(SSL)は封書。配達段階で内容を盗み見るのはかなり困難。
なおSSLの証明書の種類によってはこれに加えて発信者の身元証明も兼ねる。
0510デフォルトの名無しさん
2011/04/08(金) 16:53:39.75素晴らしい!^^
でも、はがきや手紙の場合はわかるけど、
ネットの場合は盗聴するなんて想像もつかない。
どういう方法で盗みみるの?
0511509
2011/04/08(金) 17:01:16.33自分で調べろ。ググれ。もしくは自分で該当スレでも探せ。もしくは痛い目にあってからでないとわからないんならとっとと痛い目にあえ。
スレチなのでこの話はここまで。
0512デフォルトの名無しさん
2011/04/08(金) 18:33:04.09やっぱりおかしいよ、>>485は。
十数年前のやり方だからどうだと?古いといいたいんだろうけど、今も多くのカートCGIで現役では?
0513Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/08(金) 19:40:21.99意味分からない
教えてください
0514Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/08(金) 19:42:50.00高レベルなことやりすぎてるので
0515デフォルトの名無しさん
2011/04/08(金) 20:11:40.090516デフォルトの名無しさん
2011/04/08(金) 20:43:05.49そこにセッションIDではなく状態遷移情報そのものを埋め込むのが手法としてダメだつってるの。
0517デフォルトの名無しさん
2011/04/08(金) 21:39:57.41zipファイルに圧縮されているファイルが一つだけだと事前に分かっているなら
use IO::Uncompress::Unzip qw/$UnzipError/;
my $z = IO::Uncompress::Unzip->new('foo.zip') or die "unzip failed: $UnzipError\n";
$z->read(my $buffer);
print $buffer;
でも良いかもね
0518デフォルトの名無しさん
2011/04/08(金) 23:07:55.64$cell = $sheet->{Cells}[0][1];
$color = $cell->{'Format'}->{'Fill'}[1]
で得られましたが、もうちょっと見た目きれいに取得する方法はありますか?
0519デフォルトの名無しさん
2011/04/08(金) 23:37:14.09等幅の綺麗なフォントで
$cell = $sheet -> { 'Cells' } -> [ 00 ] -> [ 1 ];
$color = $cell -> { 'Format' } -> { 'Fill' } -> [ 1 ];
0520デフォルトの名無しさん
2011/04/08(金) 23:40:44.520521デフォルトの名無しさん
2011/04/09(土) 00:29:58.410522デフォルトの名無しさん
2011/04/09(土) 12:25:57.17やっぱり、一行なら一行足してみて動作確認て感じでちょっとずつちょっとずつやってますか?
0523Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/09(土) 12:42:55.51どばってやりたくないからなエラーのショックとかがでかいから
0524デフォルトの名無しさん
2011/04/09(土) 13:46:15.49忍者殿も一行ずつテストしながら進めてるんだね?
けど、そのやり方だとあまり大きなプログラムは作れないのでは?
0525Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/09(土) 15:06:22.79小回りの効く暗殺タイプだからおれは
0526デフォルトの名無しさん
2011/04/09(土) 16:23:40.90これは意外。
ってことは、今のところさほど大きなプログラムは作ったことないの?
0527デフォルトの名無しさん
2011/04/09(土) 16:28:18.47俺はやったことないけどな
0528Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/09(土) 16:37:44.19比較対象する言語を一つくらい持ってないとPerlと他の言語のよさが見えてきませんからね
0529デフォルトの名無しさん
2011/04/09(土) 17:10:39.110530デフォルトの名無しさん
2011/04/10(日) 01:34:36.82パスを拡張子だけ抜いて指定場所に書き込みたいのですが、
\の処理がうまくいきません どう記述するのが正しいのでしょうか?
perl -Mencoding=cp932 -pe s/"Filedpn"/"%~d1\%~p1\%~n1"/ template.avs > "%~n1.avs"
0531デフォルトの名無しさん
2011/04/10(日) 02:48:39.65【.cmd】 バッチファイルスクリプト %7 【.bat】
http://hibari.2ch.net/test/read.cgi/tech/1298873550/
0532489
2011/04/10(日) 09:06:15.84教えていただいてありがとうございます。
お蔭様でこんな風に書けました。
ぽちたて 0.1.4
http://pochi.usamimi.info/perl/pochitate01.html
0533デフォルトの名無しさん
2011/04/10(日) 10:58:02.45ありがとうございます
そちらで聞いてみます
0534はげくん
2011/04/10(日) 13:46:33.18>2011/01/28
http://hibari.2ch.net/test/read.cgi/prog/1291518728/
>1 :amachang撲滅振興協議会:2010/12/05(日) 12:12:08
> amachangが憎い・・・・amachangが許せない・・・・
> ククク・・・・クククククク・・・・・
> クックックックックックックッ・・・・・
> クー、クー、クー、クー、クー、クー・・・・・
>
> もう許せない。
> もはや沸き上がる滅意を抑えることが出来ない!!!
0535デフォルトの名無しさん
2011/04/13(水) 03:50:17.02おまい…
基礎からやりなおせよw
>>515
ケータイとかでは必須だよな。
サーバーサイドに一時的に記録して
万が一戻って実行してもエラーが出ないように対策するのが面倒だよな。
>>522
過去に自作したプログラムをサブル−チン化させているので
組み合わせながら自作してるよ。
>>523
それなりに痛い目にあってるんですな〜w
0536デフォルトの名無しさん
2011/04/13(水) 09:12:26.45セッションIDってパラメータのことね?
?の後に○=○&○=○&○=○って続ける値のことね?
サブルーチン化、なるほどね。
ひょっとして別ファイルにして読み込んで使うこともしてる?
あれって最後の . を忘れただけで動かないんだよなw
0537Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/13(水) 09:32:49.64hiddenのどこが基礎なの?
おい言ってみろよ
バカにしてんのか?
hiddenなんて低レベルなことやったことねえんだが?
だいたい説明してみろよ
hiddenっていうやつをよ セッションで管理とDBで管理してるからな俺は
セッションIDってパラメーター(笑)
お前釣りなの?
クッキーとして保存されてんだろバカかアホ
?○=○&○=○&○=○がパラメータだろ
セションIDはほぼハッシュ化されてんだが?わかる?低能
0538デフォルトの名無しさん
2011/04/13(水) 09:42:44.66作っちゃいけないレベルの知識の人が
作ってちゃってるのはオソロシイね
そもそもこのスレでは
ウェブアプリケーションプログラミング関係は
スレ違いでないの?
0539デフォルトの名無しさん
2011/04/13(水) 10:05:46.83hiddenはperlどころか、htmlであり、
htmlはperlより先に勉強するでしょやっぱり。
「基礎」という考え方もわからなくはないよ。
>やったことない
それもまた・・・
それと、なにをそんなにムキになってんだ?
午前中から。
よほど追い込まれてるかな。
0540Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/13(水) 12:13:04.00ここではかごに入れる部分だけの処理を載せています。かごに入れるという仕組みは、hiddenパラメータを使います。hiddenはもう何回か出てきましたね、CGIではクリックするたびに、それまでのデータは消えてしまいますから、
hiddenを使ってリレーのようにデータを渡して行きます。
お前も低レベルなことやってんだな・・・
こんなゴミみたいなことやってないが
お前も低レベルな初心者なんだろうな
ただパラメータを引き継がせてるだけだろハゲ
0541Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/13(水) 12:14:06.08スレ違いだから死ねよ
0542デフォルトの名無しさん
2011/04/13(水) 12:58:30.41運悪くセッションIDが衝突したら
他の人が買った商品を自分が買ったことにされるんですね、わかります
0543デフォルトの名無しさん
2011/04/13(水) 13:41:46.010544Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/13(水) 13:42:34.730545デフォルトの名無しさん
2011/04/13(水) 13:48:22.30最新のカートではどうやってるんだい?
perlでやってるならスレ違いではない。
0546デフォルトの名無しさん
2011/04/13(水) 13:57:42.35>>1
>CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
頼むからテンプレぐらい読んでくれよ
0547デフォルトの名無しさん
2011/04/13(水) 15:32:44.15http://hibari.2ch.net/test/read.cgi/php/1295170172/
0548デフォルトの名無しさん
2011/04/13(水) 16:16:20.38鳥居のロゴの意味がわからん。
0549デフォルトの名無しさん
2011/04/13(水) 16:17:02.20また分かりにくいんだろうなあ
0550デフォルトの名無しさん
2011/04/13(水) 16:29:07.420551デフォルトの名無しさん
2011/04/13(水) 17:05:56.300552デフォルトの名無しさん
2011/04/13(水) 21:09:39.86影響受けるのが怖くてあずまんが大王が読めない、とかわざわざあとがきでアピールするのは確かに
ちょっとヤラシイかな、とは思う。
0553デフォルトの名無しさん
2011/04/13(水) 22:10:25.330554デフォルトの名無しさん
2011/04/14(木) 00:02:29.170555デフォルトの名無しさん
2011/04/14(木) 00:20:21.93最近遅ればせながらRuby試し出したけど、結構いいねこれ。特にブロック。
学習曲線としてはPerl知っているならすぐ覚えられるので楽だからみんなも使ってみればいいのに。
楽道とかわけわかんない方向にまで付き合ってもきっと後がないよ。
0556デフォルトの名無しさん
2011/04/14(木) 02:19:26.34以上!
0557デフォルトの名無しさん
2011/04/14(木) 02:29:21.20それはよつばとだ;
0558デフォルトの名無しさん
2011/04/14(木) 03:33:05.75俺はセミを捕らせたらプロ級だぜ:
略してセミプロだ:
0559デフォルトの名無しさん
2011/04/14(木) 03:37:34.920560デフォルトの名無しさん
2011/04/14(木) 03:41:19.850561デフォルトの名無しさん
2011/04/14(木) 04:02:46.010562デフォルトの名無しさん
2011/04/14(木) 05:17:52.030563デフォルトの名無しさん
2011/04/14(木) 22:55:08.35ピコワロス(´,_ゝ`)
0564デフォルトの名無しさん
2011/04/15(金) 06:02:36.800565デフォルトの名無しさん
2011/04/15(金) 13:24:30.59・$str =~ s/AB//; →CABCABC
・$str =~ s/AB//g; →CCC
はいいけど'ABCABCC'にしたいときはどうすると簡単?
オプションにもなさそうだし・・・
文字列の後方から一致文字列を一つ置換したい。
0566デフォルトの名無しさん
2011/04/15(金) 13:41:27.83$str =~ s/(.*)AB/$1/;
print $str; #ABCABCC
0567デフォルトの名無しさん
2011/04/15(金) 13:42:42.910568デフォルトの名無しさん
2011/04/15(金) 13:52:14.70無理だ・・・
実際には複雑で下みたいな感じなんだよね。
$siftstr =~ s/(<th.*?)tb_day(.*?)$print(.*?th>?)/$1tb_day_ex$2$print$3/;
↓変えてみた
$siftstr =~ s/(.*)(<th.*?)tb_day(.*?)$print(.*?th>?)/$2tb_day_ex$3$print$4/;
なんかもうよけいに変になった・・・
0569デフォルトの名無しさん
2011/04/15(金) 18:54:32.13$siftstr =~ s/(.*<th.*?)tb_day(.*?)$print(.*?th>?)/$1tb_day_ex$2$print$3/;
未検証。
ていうか「(.*?th>?)」は「(.*?th>)」じゃないの? まあどっちでもマッチするっちゃするだろうけど。
0570デフォルトの名無しさん
2011/04/16(土) 07:43:57.28それとも.pmだけコピーすれば動くのか、どこ見ればわかりますか?
0571デフォルトの名無しさん
2011/04/16(土) 07:48:09.90そのモジュールのソース
モジュール名の最後が PP (Pure Perl) ならコピーだけで動く可能性が高い
0572デフォルトの名無しさん
2011/04/17(日) 00:34:11.05Perl忍者モジュールでおk
0573デフォルトの名無しさん
2011/04/17(日) 00:47:22.48ttp://www.youtube.com/watch?v=Pdk3k02Fbjo
0574デフォルトの名無しさん
2011/04/17(日) 14:03:07.30>>572 ちょっとよくわかりません…
0575デフォルトの名無しさん
2011/04/18(月) 15:45:20.30逆行列とか固有値分解とかしてくれるモジュールないですか
0576デフォルトの名無しさん
2011/04/18(月) 15:50:36.14データベースとか使いたくないんです
0577デフォルトの名無しさん
2011/04/18(月) 17:28:47.51いつからセキュオタになったの?きもいなあ
0578デフォルトの名無しさん
2011/04/18(月) 17:36:20.650579デフォルトの名無しさん
2011/04/18(月) 17:41:14.68おとなしくPerlでもやっとけよもじゃもじゃ
0580デフォルトの名無しさん
2011/04/18(月) 17:52:28.87髪の毛がチン○ 髪の毛から足がチン○
そういうことか だからもじゃもじゃ髪の毛のばしてるのね
0581デフォルトの名無しさん
2011/04/18(月) 17:56:18.59髪の毛から上がチン○ 髪の毛がチン○
PDLとか言うのがあるらしい。
http://pdl.perl.org/
>>576
何が面倒か分からん。
0583デフォルトの名無しさん
2011/04/18(月) 18:15:57.960584デフォルトの名無しさん
2011/04/18(月) 19:45:13.140585Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/18(月) 20:23:40.520586デフォルトの名無しさん
2011/04/18(月) 23:41:05.96makeで読んでいるコマンドが子供を探せてないぽいです。
現象:親モジュールのmake test時に子モジュールが見つからずFatal Error終了。
詳細:
・solaris 9
・CPANではなく、PREFIXでローカルにインストール
・子モジュールはインストール済み(use XXX::YYY でエラーなし)
・PERL5LIBは設定済み
0587デフォルトの名無しさん
2011/04/19(火) 02:11:23.13/path/to/libodbc.a をロードできないといわれて動きません。
Rootユーザがどこからlibodbc.aをロードしてるのかどうやれば分かりますか?
0588デフォルトの名無しさん
2011/04/19(火) 03:26:39.15一般ユーザは変なところから(自分のローカルディレクトリから)ロードしてて、なにか失敗してるし。。。
。。。。。。。。
0589デフォルトの名無しさん
2011/04/19(火) 03:40:31.41@array{"test"} = "test";
print @array{"test"};
0590デフォルトの名無しさん
2011/04/19(火) 04:00:39.79それは配列に代入してるんじゃなくてハッシュのスライス。
何か考える前にstrictとwarnings有効にしとけ。
use strict; use warnings; use Data::Dumper;
my %hash;
@hash{"test1", "test2"} = ("A", "B"); # ok
my @keys = ("test3");
@hash{@keys} = ("C"); # ok
@hash{"test4"} = ("D"); # 警告
print Dumper \%hash;
# ↓結果
Scalar value @hash{"test4"} better written as $hash{"test4"} at - line 6.
$VAR1 = {
'test1' => 'A',
'test4' => 'D',
'test3' => 'C',
'test2' => 'B'
};
0591デフォルトの名無しさん
2011/04/20(水) 12:38:35.56が素敵すぎる
Catalystなんて奴、使う奴の気がしれない
0592デフォルトの名無しさん
2011/04/20(水) 13:50:37.880593デフォルトの名無しさん
2011/04/20(水) 14:36:16.97エンコーディングをcp932でセットさせるより
use Win32::Unicode '-native'; # or Win32::Unicode::Native
を使わせたほうが初心者にはシンプルでとっつきやすいんじゃね?
いちいちopenするときにcp932でencodeしなきゃいけないのはバッドノウハウだし
そもそも、エンコーディングをcp932決め打ちだと
cp932以外の言語圏へのポータビリティーがなくて美しくない
0594デフォルトの名無しさん
2011/04/20(水) 16:01:59.380595デフォルトの名無しさん
2011/04/20(水) 18:03:26.56@hoge = split(/-/$hoge);
$hoge[0] =~ s/TEMP/A-/;
というようなことをしたいのですが、TEMPのところはどうするのが最適なんでしょうか?
$hogeの中には適当な文字列が入ってます。
0596デフォルトの名無しさん
2011/04/20(水) 18:28:25.96普通は実態参照とか使って文字列に入る可能性のある
文字はスプリットに使わないけどな。
ってか、gオプションが付いて無いところをみると
なんでもどうとでもいける気がするけど・・・
1、$hogeに入りえない文字。
2、パスワードみたいな適当な文字列。
3、正規表現を使って"A-"は置換しない。
0597デフォルトの名無しさん
2011/04/20(水) 18:36:06.63ありがとうございます。
2の方法で他の方がどんな文字を使ってるか、
もしくは一時的に置いとくための特殊な文字があるのか知りたかったのです。
0599デフォルトの名無しさん
2011/04/20(水) 19:35:17.50>一時的に置いとくための特殊な文字
特殊変数はあってもそんな文字は無い。
適当に英数字10文字選んでも天文学的な数でまず被らない。
ってか使いたい置換後の文字列を事前に検索チェックして
もし被っていたらハッシュでもかけて動的に変えればいいじゃないか。
ありえないけどまさかの無限ループにならないように一応回数の
上限決めてエラーの道も作っておけばよい。
0600デフォルトの名無しさん
2011/04/20(水) 19:54:29.71ありがとうございます。
とりあえず正規表現で行くことにします。
検索するという発想はありませんでした。
0601デフォルトの名無しさん
2011/04/20(水) 21:03:37.16> 一時的に置いとくための特殊な文字があるのか知りたかったのです。
読み方も解らない、意味も解らない、出典も解らない漢字がJISコードにある
(従って、Unicodeにも含まれる)から、それを使えばいい。
「幽霊文字」でググってごらんよ。
0602デフォルトの名無しさん
2011/04/20(水) 23:06:39.35想像してたのと少し違いましたが、やっぱりあったんですね
勉強になりました
0603デフォルトの名無しさん
2011/04/20(水) 23:38:19.45たとえば$hogeがユーザーが任意に入力できる文字列だとしたら、事前に払っておかない限り普通に入り得る。
「TEMP」とか使うのと変わらん。
0604デフォルトの名無しさん
2011/04/20(水) 23:50:56.26文字コードはUnicodeにしたいですが、Ansi以外で保存してブラウザで実行するとInternal Server Errorと出てしまいます。
PerlはUnicodeでプログラムできないのでしょうか。
0605デフォルトの名無しさん
2011/04/20(水) 23:53:58.82「パソコン」とフォームに記入し、別のCGIにフォームの内容を送信します。
受け取ったCGIで受け取った内容を見ると、「パソコン」ではなく%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3になってしまいます。
これを「パソコン」に戻す方法はありますでしょうか。なお、このCGIもUnicodeで書きたいです。
0606デフォルトの名無しさん
2011/04/21(木) 00:12:19.13なお、CGIの話はWEB プログラミング板でどうぞ。
0607デフォルトの名無しさん
2011/04/21(木) 01:07:13.985.14だすよーって言ってたはずだけど何時出るんだろ?
詳細なリリーススケジュールを誰か教えて!!
0608デフォルトの名無しさん
2011/04/21(木) 01:11:27.710609デフォルトの名無しさん
2011/04/21(木) 01:22:29.56うおぉぉおぉー、サンキュー!!!
http://www.perlmonks.org/?node_id=900342
さっそくtarボール拾ってmakeしてくる!!
0610デフォルトの名無しさん
2011/04/21(木) 13:33:45.03なら、ここで「未使用」とされているコードを使えばいい。
http://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E8%A6%A7_0000-0FFF
0611デフォルトの名無しさん
2011/04/21(木) 13:46:43.89未使用仕様関係なくコード入力されたらダメじゃん。
0612デフォルトの名無しさん
2011/04/21(木) 15:00:44.46でそのまま配列に変換できるけど、
これは両方とも中に入ってるのがリストだから、受け渡し可能なんでしょうか?
0613デフォルトの名無しさん
2011/04/21(木) 15:19:17.22そんなものは、事前にチェックして、
「不正な文字コードが含まれています」とエラーメッセージを出して終わればいい。
0614デフォルトの名無しさん
2011/04/21(木) 15:51:41.82ちょっと前のレスから読み返せよ。
恥ずかしい。
0615デフォルトの名無しさん
2011/04/21(木) 16:03:28.83ハッシュはキーと中身が隣同士に並んだ配列だからね。
0616デフォルトの名無しさん
2011/04/21(木) 18:48:06.930617デフォルトの名無しさん
2011/04/21(木) 19:40:43.94バージョン5.<偶数>.<整数> の範囲で一番新しいのを入れれば普通問題ない
0618デフォルトの名無しさん
2011/04/21(木) 22:22:40.230619デフォルトの名無しさん
2011/04/21(木) 22:27:31.60本体は最新の安定版をを入れといた方がモジュールの依存解決が楽。
スクリプトは 5.8.1 で動くよう書いた方が無難。
0620デフォルトの名無しさん
2011/04/21(木) 23:37:30.415.12 にしたいなぁ。。。
0621デフォルトの名無しさん
2011/04/22(金) 00:48:26.83システム使う Perl とは別に
/usr/local/bin 以下に入れればいいんでない?
0622デフォルトの名無しさん
2011/04/22(金) 01:40:32.29でもなんかさ、1行目に 「local」 って入るのがなんか好きじゃないwww
0623デフォルトの名無しさん
2011/04/22(金) 07:20:03.08perlbrew
0624623
2011/04/22(金) 07:21:56.67perlbrewで好きなバージョン入れて
シェバングは
#!/usr/bin/env perl
これでいいんじゃね?
0625デフォルトの名無しさん
2011/04/22(金) 15:20:13.16ありがとうございます
0626デフォルトの名無しさん
2011/04/22(金) 22:38:31.14プログラムの中ではメモリを使わないようにしているのですが、OSのページキャッシュ
がどんどん増えていってしまいます。
( free の cached で確認 )
プログラム(perl)のプロセスは ps や top で確認してもメモリはほとんど使ってないです。
このOS側でのページキャッシュをされないような perl の書き方はないでしょうか?
--------------
#!/usr/bin/perl -w
use strict;
use utf8;
binmode STDOUT => ':utf8';
use open IO => ':utf8';
open(my $fh, '<', 'big.txt');
while(<$fh>){
;
}
close($fh);
0627デフォルトの名無しさん
2011/04/23(土) 01:01:33.070628デフォルトの名無しさん
2011/04/23(土) 04:27:30.21一念発起して、リャマ本を勉強中です。
3の倍数を使う練習問題やってる中で、%の存在を忘れていて、
サブルーチンでひたすら引き算してゼロになったら...って
思っていたんですけど、うまくいきませんでした。
なにがいけなかったんでしょうか。
chomp(my $input = <STDIN>) ;
given( $input ) {
when ( ! /^¥d*$/ ) { say "数じゃない" }
when ( 0 == &amari3($_) ) { say "3の倍数" ; continue }
}
sub amari3 {
while( $_[0] > 0 ) {
$_[0] -= 3 ;
}
}
0629デフォルトの名無しさん
2011/04/23(土) 08:32:04.60関数amari3の返り値でなく、$_と比較しないといけないので、
when ( &amari3($_), 0 ) { say "3の倍数" ; continue }
0630デフォルトの名無しさん
2011/04/23(土) 09:30:42.770631デフォルトの名無しさん
2011/04/23(土) 09:34:05.92whileに脳内変換されてた。
使ったこと無いや・・・
0632Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/23(土) 09:35:13.870633デフォルトの名無しさん
2011/04/23(土) 09:44:44.63理解できないのかな?
0634630,631
2011/04/23(土) 09:52:31.88when ( ! /^¥d*$/ ) { say "数じゃない" }
when ( 0 == &amari3($_) ) { say "3の倍数" ; continue }
この二行だけ見て早とちりしたよ。
0635Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/23(土) 09:54:07.87sysopen()でO_DIRECTを使うことができれば、できるかも。
メモリをcacheに取られたくないなら、OSの設定で制限しておく方が簡単だと思う。
>>628
ついでに
when( ! /^\d+$/ ) { say "数じゃない" }
0637628
2011/04/23(土) 20:32:00.89お返事ありがとうございます。あの本独特のアメリカンジョークに耐えながら孤独に勉強しているので、お返事うれしいです。
自分的にはifとかの方がわかりやすいんですけど、問題がgiven-whenを使えって指示だったので・・・すみません。
>>636さん
ありがとうございます!!本しっかり読み直して確認しました!!
1個以上ってことですもんね。
0638628
2011/04/23(土) 20:41:57.39ありがとうございます!!馬鹿なのでまだ理解できていませんが
考えるヒントを頂いたと思って、本と一緒になんども読み返します!
0639デフォルトの名無しさん
2011/04/23(土) 20:51:05.87given-whenなんて構文今初めて見た
なんでこんなヤヴァいこと誰も教えてくれないんだ
どこのperlサイトにも載ってなけりゃ
rubyにすらないだろこんな構文
一体誰が得するんだ
ラクダ本読んだ人間を見分けるための秘密のおまじないかよクソッ
なんて世界だ 歪んでいやがる
俺はperlにはなれない
0640デフォルトの名無しさん
2011/04/23(土) 21:27:42.01switch-case は break だけど、
given-when は continue で再評価できるのか。
0641デフォルトの名無しさん
2011/04/23(土) 21:27:44.69http://perldoc.jp/docs/perl/5.12.1/perl5100delta.pod#switch32
0642Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/23(土) 21:28:58.480643Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/23(土) 21:47:44.890644デフォルトの名無しさん
2011/04/23(土) 22:04:37.11javascriptでも他ブラウザ対応で面倒くさいのに perl でも似た問題が発生するのは避けたい・・。
0645デフォルトの名無しさん
2011/04/23(土) 22:57:20.310646デフォルトの名無しさん
2011/04/23(土) 23:42:25.440647デフォルトの名無しさん
2011/04/24(日) 02:28:42.62「俺は別のやり方でやるから(キリッ」
0648デフォルトの名無しさん
2011/04/24(日) 03:31:04.95別に質問した人にgiven-whenを使うなとは誰もいってないだろ
given-whenを今まで知らなかった人が今後使うべきか使わざるべきかいろいろ考えてるだけだ
なに余計なものまで見えちゃってるんだ君は
0649デフォルトの名無しさん
2011/04/24(日) 08:50:15.03コンマ(,カンマ)で羅列すると、(スカラーコンテキストでは)左から順に評価していき、
最後(一番右)の(評価した)値を返します。
その例でいうと、左のamari3関数を評価(実行しその返り値をもらう)し、最後の(右の)0
という値を返します。
そして、その返された0と$_(amari3関数を評価(実行)された時点で$_は変更されている)
が比較(~~スマートマッチ)されます。
perlop - コンマ演算子
http://perldoc.jp/docs/perl/5.12.1/perlop.pod#Comma32Operator
0650628
2011/04/24(日) 20:44:46.70むちゃくちゃよくわかりました!!!
ご親切に本当にありがとうございました。
書き込んでいただいた内容はコピペして、ソースコードに
勉強した内容として貼付けておきます。
コメントくださった他の方も、ありがとうございました。
ようやくなんとか初めてのperlを読み終わりました。
最後辺りはシェルの知識が足らずに???の連続でしたが。
練習問題に、プログラムの動作イメージみたいなのをつけて
くれたら、問題としてどういうものを作らなきゃいけないのかが
わかりやすいのに、と思いました。
ま、僕の理解不足ですね。精進します。
0651デフォルトの名無しさん
2011/04/24(日) 20:49:10.03ファイルタイプを自動判別する Perlモジュールってあるんでしょうか?
0652デフォルトの名無しさん
2011/04/24(日) 22:39:00.82http://search.cpan.org/dist/File-LibMagic/
http://search.cpan.org/dist/File-MMagic/
http://search.cpan.org/dist/File-MMagic-XS/
http://search.cpan.org/dist/File-MimeInfo/
http://search.cpan.org/search?query=File
0653デフォルトの名無しさん
2011/04/25(月) 00:27:38.57>perl -wl -e 'print 10'
と打つと
Can't find string terminator "'" anywhere before EOF at -e line 1.
とエラーが表示されるのですが、Windows版PerlってLinux版みたいに
-eオプションが使えないんでしょうか?
0654デフォルトの名無しさん
2011/04/25(月) 00:31:28.73perl -e 'print 10'
0655デフォルトの名無しさん
2011/04/25(月) 00:52:29.24http://perldoc.jp/docs/perl/5.10.1/perlfaq3.pod#Why32dont32Perl32one-liners32work32on32my32DOS47Mac47VMS32system63
0656デフォルトの名無しさん
2011/04/25(月) 00:58:19.64>>655
サンクス。
うまく行きました。Windowsのコマンドプロンプトの問題ってことなんですかね?
0657デフォルトの名無しさん
2011/04/25(月) 01:44:01.76ありがとうございます。
とりあえず File::MMagic を使ってみる事にします。
0658デフォルトの名無しさん
2011/04/25(月) 17:03:00.44our @ISA=qw/Exporter/;
our @EXPORT_OK = qw(hello bye);
この場合、require Exporter;をつけると書いてあるのですが
require Exporter;を書かなくてもhelloとbyeが使えるのは何故ですか?
SYNOPSISなどにはrequire Exporter;を宣言していますが
教えてください。
0659デフォルトの名無しさん
2011/04/25(月) 17:47:14.05メソッド呼び出しや Exporter の役割を根本的に勘違いしていないか?
#--- Foo.pm ---
package Foo;
use strict;
use base 'Exporter';
# それぞれコメントを付け外しして動作を確認
# our @EXPORT = qw(hello bye);
# our @EXPORT_OK = qw(hello bye);
sub hello { "hello @_\n" }
sub bye { "bye @_\n" }
1;
__END__
#--- test.perl ---
#!/usr/bin/perl -w
use strict;
use Foo; # qw(hello bye);
eval { print hello('John') }; $@ && warn "1: $@";
eval { print Foo->hello('Jane') }; $@ && warn "2: $@";
__END__
http://perldoc.jp/docs/perl/5.10.0/perlmod.pod
http://perldoc.jp/docs/perl/5.10.0/perlboot.pod
0660658
2011/04/25(月) 18:48:11.10package Foo;
use strict;
use base 'LWP::Simple';
# それぞれコメントを付け外しして動作を確認
# our @EXPORT = qw(hello bye);
our @EXPORT_OK = qw(hello bye);
sub hello { "hello @_\n" }
sub bye { "bye @_\n" }
1;
これで動くのは何故ですか?
use base 'LWP::Simple';とまったく関係ないモジュールをbaseにしても動くのですが
@EXPORTERも使えています
バグですか?
0661デフォルトの名無しさん
2011/04/25(月) 19:11:24.41LWP::SimpleがExporterを継承しているから、それをさらに継承したら
いろいろ余計な物もついて来ると思うがExporterも継承したことになる
ってとこじゃないかな。余計な物を触らない範囲ならなんとなく動く。
0662658
2011/04/25(月) 19:34:06.19use base 'Exporter';やっとけばいいですか?
0664デフォルトの名無しさん
2011/04/25(月) 22:06:35.72Class->method();
これなら不要。
Package::function();
普通のサブルーチンコールでも、パッケージ名をつければ不要だけどね。
0666デフォルトの名無しさん
2011/04/26(火) 09:54:10.56Exporterのimport関数がよばれるってことであってますか?
Exporterのimportを継承するってことですか?
Foo.pmでimport関数を書くとオーバライドされてしまうってことであってますか?おしえてください
0667デフォルトの名無しさん
2011/04/26(火) 09:55:34.53ってやったら
BEGIN{
require Foo;
import Foo LIST;
}ってことですよね?
ここのimportはExporterから継承したimprot関数ですよね?
0668デフォルトの名無しさん
2011/04/26(火) 11:47:49.87Foo.pmがExporterは継承していたらそうだね
0669デフォルトの名無しさん
2011/04/26(火) 11:56:03.84分からないことあったらまた聞きます
0670デフォルトの名無しさん
2011/04/26(火) 12:03:20.32悪鬼羅刹が沸いてきたぞ・・・!準備はいいか?!
nechoneko
mopemope
が暗殺リストに加わりました。
最初に書く#!/usr/bin/perlと#!/usr/bin/perl -wの違いは何なのでしょうか?
大学では-wをつけるように言われたのですが、ウェブでみていると何もつけていないことの方が多いように感じます。
よろしければ教えてください。
0672デフォルトの名無しさん
2011/04/26(火) 14:14:14.470673デフォルトの名無しさん
2011/04/26(火) 14:16:52.26モジュールだと#!/usr/bin/perlってかかないから
-wが使えない
だから use warnings;使うんだよたこ
0674デフォルトの名無しさん
2011/04/26(火) 14:19:55.11で、w は細かい警告を出してくれるので、開発時は付けていた方が良い
0675デフォルトの名無しさん
2011/04/26(火) 14:41:02.44$hoge =~ tr/0-9a-zA-Z//c;
で
$hoge -> 'abc123'
にしたいのですが、うまくいきません。trの文法で何か間違えていますでしょうか?
0676デフォルトの名無しさん
2011/04/26(火) 14:44:26.26$hoge =~ tr/0-9a-zA-Z//cd;
0677デフォルトの名無しさん
2011/04/26(火) 14:47:31.73http://perldoc.jp/docs/perl/5.10.0/perlrun.pod
0679デフォルトの名無しさん
2011/04/26(火) 23:52:59.16これExporterとかないんですが大丈夫なんですか?
呼び出したとき使えないと思うんですが
まだ試してませんが
Exporeter書いてないモジュールがあるんですがメソッドとか呼び出し元で使えるのでしょうか?
module-starterとかで作った場合はExporterを書かないようななんか仕組みがあるんですか?
教えてください
0681デフォルトの名無しさん
2011/04/27(水) 09:18:30.71モジュールで使えるメソッドの場合はよかったんでしたね
0682デフォルトの名無しさん
2011/04/27(水) 12:08:07.52http://cpansearch.perl.org/src/YAPPO/Module-Setup-0.09/t/020_run/
こんなにTest書くんですか?
見てるだけで死にそうです
こんなに書くのでしょうか?書かなかったらBANされたりするのでしょうか?
書かないと★印1個とかつけられるのでしょうか?
Testだけでモジュールのコードくらい書いてる気がするんですけど
どうですか教えてください
0683デフォルトの名無しさん
2011/04/27(水) 12:16:55.160684デフォルトの名無しさん
2011/04/27(水) 12:23:10.14この人くらいのテストくらいで十分ですよね?
0685デフォルトの名無しさん
2011/04/27(水) 12:24:49.08マジで。
0686Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/27(水) 12:27:24.600687Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/27(水) 12:29:52.64そこまで重要視されてないよtestは
0688Perl忍者lvl4 ◆M5ZWRnXOj6
2011/04/27(水) 12:33:20.68やってるの日本人くらいだけだから
0689デフォルトの名無しさん
2011/04/27(水) 12:34:22.49はい、ケースバイケースですね
模索してみます
0690デフォルトの名無しさん
2011/04/27(水) 12:46:18.860691デフォルトの名無しさん
2011/04/27(水) 13:21:53.61テストケース追加していくとそのうちびっくりするような量になったり
するな。
0692デフォルトの名無しさん
2011/04/27(水) 18:45:58.840693デフォルトの名無しさん
2011/04/27(水) 19:53:28.670694デフォルトの名無しさん
2011/04/27(水) 20:15:05.030695デフォルトの名無しさん
2011/05/01(日) 23:00:02.10どれ使うのがベターなんだろうか。
なんかどれも帯に短し襷に長しな感じで、
どれがいいのかサッパリ分からん。
ちなみにPythonではFlask使ってる。
0696デフォルトの名無しさん
2011/05/02(月) 14:15:42.95全ての変数に適応するやりかたってありますか?おしえてください
0697デフォルトの名無しさん
2011/05/02(月) 14:19:19.22Rubyの使用をお薦めします
0698デフォルトの名無しさん
2011/05/02(月) 14:35:14.400699デフォルトの名無しさん
2011/05/02(月) 15:47:35.66tie my %hash,'Tie::IxHash';
my $self=shift;
%hash=@_;
#print "$_\n" foreach(keys %hash);
push @{$self->{res}},{%hash};
}
sub new{
my $class=shift;
tie my %hash,'Tie::IxHash';
tie
my $self=bless \%hash,$class;
return $self;
}
print "$_\n" foreach(keys %{$g->{res}->[0]});
で呼び出すと順番ずれてしまいます
たとえば%hash=('res'=>[{a=>10,b=>20,n=>15}]);ってやると
n
a
b
って表示されます
tie my %hash,'Tie::IxHash';これは間違ってるんですが
どうやって設定すればいいでしょうか?
tie my %{$hash{res}->[0]},'Tie::IxHash';とやっても表示されないですし
0700デフォルトの名無しさん
2011/05/02(月) 16:04:59.730701Perl忍者
2011/05/02(月) 16:15:07.68my $self=bless {'cnt'=>0},$class;
sub core{
tie my %hash,'Tie::IxHash';
my $self=shift;
%hash=@_;
my $c=$self->{cnt};
tie %{$self->{res}->[$c]},'Tie::IxHash';
%{$self->{res}->[$c]}=%hash;
$self->{cnt}++;
}
0702デフォルトの名無しさん
2011/05/02(月) 16:19:39.02ありがとうございます
ちゃんと表示されました
0703デフォルトの名無しさん
2011/05/02(月) 16:59:09.340704デフォルトの名無しさん
2011/05/02(月) 17:11:08.520705デフォルトの名無しさん
2011/05/02(月) 17:21:09.610706デフォルトの名無しさん
2011/05/02(月) 17:35:11.63データ構造も理解しオブジェクトを理解しているとは
別人の忍者か?
0708デフォルトの名無しさん
2011/05/02(月) 17:43:30.38凄いなPerl忍者
0709デフォルトの名無しさん
2011/05/02(月) 19:15:16.650710Perl忍者
2011/05/02(月) 19:49:56.810711デフォルトの名無しさん
2011/05/02(月) 20:13:08.650712デフォルトの名無しさん
2011/05/02(月) 20:15:12.85755や705にはできないっすかね〜
0713デフォルトの名無しさん
2011/05/02(月) 20:21:10.050714デフォルトの名無しさん
2011/05/02(月) 21:19:42.560715デフォルトの名無しさん
2011/05/02(月) 22:08:26.69http://perldoc.jp/func/open
> ファイルは 0666 をプロセスの umask 値で修正したパーミッションで 作成されます。
http://perldoc.jp/func/umask
http://perldoc.jp/func/sysopen
http://perldoc.jp/func/chmod
http://perldoc.jp/docs/perl/5.10.1/perlfaq5.pod#How32come32when32I32open32a32file32read-write32it32wipes32it32out63
0716Perl忍者
2011/05/02(月) 22:26:40.27chmodつかえとしか言いようがない
0717デフォルトの名無しさん
2011/05/03(火) 09:39:43.15Flaskがいいなら、Dancerはどう?
0718デフォルトの名無しさん
2011/05/03(火) 12:02:06.99そのモジュールは、複雑なモジュールなのでいっぱいテストが必要なだけで、数の問題ではない。
十分に動作が保証される程度にテストがかかれている必要はある。
テストがあまりにもすくない場合は、英語で長文でDISられるのは覚悟しておいた方がよい。
0720デフォルトの名無しさん
2011/05/04(水) 17:57:22.95http://--.com/index.cgiでABCを取り出す処理ってどうすればいいですか?
0721デフォルトの名無しさん
2011/05/04(水) 18:34:28.800722デフォルトの名無しさん
2011/05/04(水) 21:31:10.73C とか CPP じゃないんだね。
0723デフォルトの名無しさん
2011/05/04(水) 21:57:21.600724デフォルトの名無しさん
2011/05/04(水) 22:10:33.01Cのプリプロセッサかい
0725デフォルトの名無しさん
2011/05/04(水) 22:16:28.63ということが言いたいんだよ、多分。
0726デフォルトの名無しさん
2011/05/04(水) 22:23:58.80これぐらいも分からないのか・・・
0727デフォルトの名無しさん
2011/05/04(水) 22:31:42.52じゃ「C とか C++」って書けばいいじゃん
0728デフォルトの名無しさん
2011/05/04(水) 22:34:34.372ちゃんねる…
0729デフォルトの名無しさん
2011/05/04(水) 22:41:20.52ププ
0730デフォルトの名無しさん
2011/05/04(水) 23:25:19.47あ〜これだから君は・・・
0731デフォルトの名無しさん
2011/05/05(木) 02:36:47.04syntax error
0732デフォルトの名無しさん
2011/05/05(木) 14:55:13.26$hash{"a", "b"}
0733デフォルトの名無しさん
2011/05/05(木) 15:04:47.940734デフォルトの名無しさん
2011/05/05(木) 17:00:07.44ありがとうございます。
それがスライスではなく、$でした。
jcode.plにある記述です。euc2sjisは関数です。
$convf{'euc' , 'sjis'} = *euc2sjis;
0735デフォルトの名無しさん
2011/05/05(木) 17:20:39.87win7の場合、64bit版だとCPANの使用が敷居が高いとかエラーがでるとか聞いてるので32bit版にしようと思うのですが、win7の32bit版で普通にCPAN使えてる方いるでしょうか?
XPのときは下のサイトに盲目的に従ってやってしまったので、CPAN使用の仕組みが詳しく理解できていません
win7でも下のサイトの通りにやって出来そうなら問題ないです
ttp://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A1%E3%83%A2%2F%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB(CPAN)
0736デフォルトの名無しさん
2011/05/05(木) 17:20:48.98それは、多次元ハッシュ。但し、現在は推奨されない。
0737デフォルトの名無しさん
2011/05/05(木) 17:23:45.91ありがとうございます。
そういう名称なんですね。
非推奨ですか、了解しました。
0738デフォルトの名無しさん
2011/05/05(木) 20:11:39.39実装で効果的に使われている例があるな。
0739デフォルトの名無しさん
2011/05/05(木) 20:38:47.24削除予定なんだっけ?
0740デフォルトの名無しさん
2011/05/06(金) 00:42:16.61分かりやすくて便利なのになあ
0741デフォルトの名無しさん
2011/05/06(金) 00:50:11.36知ってると思うけど、$hash{foo}{bar} のようにすれば、
多次元ハッシュ(であるかのように見えること)は実現できるよ。
>>739
どうなんだろうか。Perl5デスクトップリファレンスに
「現在は推奨されない」と書いてあったから、その通り書いただけなんだけど。
0742デフォルトの名無しさん
2011/05/06(金) 02:28:19.95これでは20秒くらいです
Perl - http://codepad.org/s7xNkXUf
Cでは40秒くらいでした。
C - http://codepad.org/oASd0CDe
乗算をmodに変えてみたのがこれです。
すると、28秒程度になりました。
Perl -http://codepad.org/jzgGmtmV
Cでは40秒程度です。
C - http://codepad.org/h4emZp6R
CのコンパイラはVisual Studio 2008 C++です。
PerlよりCの方が速い と、どこかの記事に書いてありました。
が、実際にはこの結果です。
CよりPerlの方が速いのでは?
それか、どのような場合に、Perlでの処理速度が落ちるのでしょうか?
0743デフォルトの名無しさん
2011/05/06(金) 02:45:15.23表示出力をファイルにリダイレクトして実行した場合、双方何秒になりますか?
0744デフォルトの名無しさん
2011/05/06(金) 02:49:13.78今さっきからPerlをやり始めたのでやり方がわかりません・・・。
C++のほうも2時間ぐらいしかやってないのでファイル出力の仕方はわかりません・・・。
0745デフォルトの名無しさん
2011/05/06(金) 02:59:12.500746デフォルトの名無しさん
2011/05/06(金) 03:28:18.410747デフォルトの名無しさん
2011/05/06(金) 03:44:48.87$VAR1 = {
'foo' => 3,
'foo' => 1,
'foo' => 2,
'foo' => 4,
'foo' => 0,
};
何コレおもしろい
0748デフォルトの名無しさん
2011/05/06(金) 03:45:20.20http://perldoc.jp/docs/perl/5.10.0/perldsc.pod
0749デフォルトの名無しさん
2011/05/06(金) 03:50:47.28乗算のPerlは20秒で、
乗算のC++は0.3秒ほどでした。
除算のPerlは28秒で、
除算のC++は0.8秒ほどでした。
Perlは変わってないように思えますが、
C++は劇的に変わっていますね・・・。
なぜこのようなことが起こるのですか?
0750749
2011/05/06(金) 03:56:45.010751デフォルトの名無しさん
2011/05/06(金) 12:37:10.790752デフォルトの名無しさん
2011/05/06(金) 13:00:46.38何言ってんだこいつ
0753デフォルトの名無しさん
2011/05/06(金) 14:47:39.14なぜだろう から全ては始まるんですよ。 この先、開発という作業は、この なぜ の繰り返しになります。
その理由を見つけた人が報酬を得られるわけです。
ちなみに>>749の理由、このスレの人らはみんな分かっている事なのですよ。
0754デフォルトの名無しさん
2011/05/06(金) 14:59:44.58素因数分解するコードを書いてみました。
foreach に使う配列の要素数を Math::BigInt で扱う巨大な整数にしたら
Range iterator outside integer range
と怒られてしまいます。
foreeach じゃ BigIntな要素数の配列は扱えないのでしょうか?
0755754
2011/05/06(金) 15:55:36.49自己解決しました。
use Math::BigInt した上で foreach文 の代わりに C風の for文を使えば行けました。
0756デフォルトの名無しさん
2011/05/07(土) 00:39:59.98foreachってことはループ回数数える必要がないってことだから、whileでもいいのかな
foreach(100000000000..100000000001){
print "number: $_\n";
}
結果
Range iterator outside integer range at ...
他のループ構文で避けるのが吉だけど、
マジカルインクリメントで避ける裏技もある。
0758デフォルトの名無しさん
2011/05/07(土) 01:51:23.710759デフォルトの名無しさん
2011/05/07(土) 03:00:07.54変数で表現できる整数ならば他のループ構文が使えますので、そちらを使いましょう。
例:
for(my $i = 100000000000; $i <= 100000000001; $i++){
print "number: $i\n";
}
0761デフォルトの名無しさん
2011/05/07(土) 06:24:24.90Data::Dumper がヘボくて表示しきれてないだけだな。 Data::Dumpなら正しく扱える。
$ perl -MData::Dump=dump -Mstrict -we 'my %h; $h{"foo", ("")x$_} = $_ for 0..4; print dump \%h'
{
foo => 0,
"foo\34" => 1,
"foo\34\34" => 2,
"foo\34\34\34" => 3,
"foo\34\34\34\34" => 4,
}
\34 は 特殊変数 $; $SUBSEP で定義されてる。
0762デフォルトの名無しさん
2011/05/07(土) 10:53:49.03while( $i <= 100000000001 ) {
print "number: $i\n";
$i++
}
とも書けるけど、
for文と while文ではどっちが良いのかね?
while:回数未定
for:回数指定
条件が数行とかでdo使いたい場合以外は
ほとんどfor使ってるね。
0764デフォルトの名無しさん
2011/05/07(土) 12:07:07.47スクリプト言語の場合、好みの問題でしかない。そのときのフィーリングだ。
別にどっちの方が可読性がよいということもない。
0765デフォルトの名無しさん
2011/05/07(土) 14:27:38.78my $cgi = new CGI;
print $cgi->header(-type=>'application/octed-stream', -attachment=>"$filename");
headerのtypeとかattachmentの前にあるハイフンって文法的にどういう意味があるんですか?
=>はハッシュとかの解説で読んだのでハッシュなのかなと思うんですが、ハイフンが何なのかわかりません。
0766デフォルトの名無しさん
2011/05/07(土) 14:55:28.73http://perldoc.perl.org/CGI.html#CALLING-CGI.PM-ROUTINES
0767デフォルトの名無しさん
2011/05/07(土) 15:13:41.68日本語で頼む。
ってか、CGI.pmに限らないPerl文法的は解説が聞きたいんだけど……
0768デフォルトの名無しさん
2011/05/07(土) 15:33:14.09別に文法的に特殊な意味はない。CGI.pm の場合は
$cgi->header('application/octet-stream');
みたいな渡し方もあるからそれと区別するための目印に - を使ってるってだけ。
0769デフォルトの名無しさん
2011/05/07(土) 16:52:04.66CGI - Common Gateway Interface のリクエストとレスポンスを扱う 【perldoc.jp】
http://perldoc.jp/docs/modules/CGI-3.49/CGI.pod#CALLING32CGI.PM32ROUTINES
0770デフォルトの名無しさん
2011/05/07(土) 17:17:39.06その言い方だと単に可読性のために-付けてるだけで付けなくてもいい、って言ってるように聞こえますが、そういうことですか?
試しに-付けるのと付けないのとどうなるか試してみたんですが、-を付けないとHTMLのソースがおかしくなるみたいでした。
表示は変わらなかったですが。
print $cgi->start_form(-action=>'./delete.cgi', -method=>'post');
<form method="post" action="./delete.cgi" enctype="multipart/form-data">
print $cgi->start_form(action=>'.delete.cgi', method=>'post');
<form method="action" action="./delete.cgi" enctype="multipart/form-data" method post>
0771デフォルトの名無しさん
2011/05/07(土) 17:20:26.16CGI.pm「が」区別するための目印だよ
0772デフォルトの名無しさん
2011/05/07(土) 17:21:29.75すみません、そのレスに気づく前に>>770の書き込みしました。
>実際には、最初の引数だけがダッシュから始まる必要があります。 最初の引数にダッシュがあれば、CGI.pm は後のものにもダッシュが あるものとします。
これPerlの文法という仕様は関係ないんですか……
何がなんだかよくわからない
0773デフォルトの名無しさん
2011/05/07(土) 17:26:53.01ハッシュのキー名にハイフン付けてもいいというわけじゃないですよね?最初の引数だけダッシュがいる、っていう話だから。
やっぱりよくわからんw
なんでそんなことができるんだ
0774デフォルトの名無しさん
2011/05/07(土) 17:29:14.30連投すみません
0775デフォルトの名無しさん
2011/05/07(土) 17:41:06.65それはたとえば、
(-type => '...', -attachment => '...')
じゃなくて
(-type => '...', attachment => '...')
でもいいよって意味。
CGI.pm は第1引数(ハッシュとして見れば最初のキー)の1文字目がダッシュかどうかで引数をどう扱うかを決めるけど、
見た目の統一のために2つ目以降のキーの先頭にダッシュ付けても同じように処理するよということ。
>>773
「ハッシュのキー名にハイフン付けてもいい」んだよ。
(-foo => 'bar') ('-foo' => 'bar') ('-foo', 'bar')
Perlからすればこれらは3つとも同じ意味。その後それをどう処理するかは CGI.pm 側の問題。
0776デフォルトの名無しさん
2011/05/07(土) 18:03:32.84Data::Dumper でもできるお!
$ perl -MData::Dumper -Mstrict -we '$Data::Dumper::Useqq=1;my %h; $h{"foo", ("")x$_} = $_ for 0..4; print Dumper \%h'
$VAR1 = {
"foo\34\34\34" => 3,
"foo\34" => 1,
"foo\34\34" => 2,
"foo\34\34\34\34" => 4,
"foo" => 0
};
0777デフォルトの名無しさん
2011/05/07(土) 18:07:31.77ハイフン付けてもいいんですか。それなら納得です。
でも、スカラ変数名でハイフン使うのには制限あるっぽいのに、ハッシュのキー名では普通に頭にも使えるってなんじゃそりゃ
もう一つ質問いいでしょうか?
print $cgi->a({href=>"hoge.html"}, "hoge");
これ、中かっこはあるとないとで、どういう違いが生まれるんでしょうか?
ハイフンのときとは違って、かっこは後ろの方にもあるわけですし
これはPerl文法的な作用が何かあるんじゃ…と思うのですが。
>>769のページにも説明が書いてありましたが、
>CGI を使い始めたばかりの人の多くが、HTML タグ属性を囲む中かっこを必要とする HTML ショートカットの呼び出し方と、
>中かっこ無しに属性の生成を管理する他の ルーチンの呼び出し方との違いに惑わされます。 混乱しないで下さい。
>便宜上、中かっこは HTML を除くすべてでオプションです。
>もし好むなら、名前付き引数を取るどのようなルーチンでも呼び出すときに 中かっこを使えます。
あんまり説明になってないorz
0778デフォルトの名無しさん
2011/05/07(土) 18:12:04.15考えてみれば、ハッシュなんでどんな文字使おうが自由なのは当たり前ですね。失礼しました。
0779デフォルトの名無しさん
2011/05/07(土) 18:23:08.57http://perldoc.jp/docs/perl/5.10.0/perlreftut.pod
0780デフォルトの名無しさん
2011/05/07(土) 19:22:33.24別に不思議なものに見えなくなると思う。
ちまちま有無をチェックしたり削り落としたりしてるよ。
0781デフォルトの名無しさん
2011/05/07(土) 21:25:06.06ありがとうございました。
0782デフォルトの名無しさん
2011/05/07(土) 23:24:00.150783デフォルトの名無しさん
2011/05/07(土) 23:34:52.44use diagnostics;
elseif
elseif should be elsif at ...
(S syntax) There is no keyword "elseif" in Perl because Larry thinks it's
ugly.
0785デフォルトの名無しさん
2011/05/07(土) 23:49:58.90日本語でおk
http://perldoc.jp/docs/perl/5.6.1/perldiag.pod
> elseif should be elsif
> (S) Larry は "elseif" というのは醜いと考えたので、Perl にはこのキーワードは ありません。
0787デフォルトの名無しさん
2011/05/07(土) 23:58:05.220788デフォルトの名無しさん
2011/05/08(日) 00:00:27.090789デフォルトの名無しさん
2011/05/08(日) 00:01:23.38サエキけんぞうのラジオ聴いてた
0790デフォルトの名無しさん
2011/05/08(日) 10:56:34.43@a = sort @a;
でできるのですが、
スカラコンテキスト内の文字列のソートはどうやれば実現できますでしょうか?
0791デフォルトの名無しさん
2011/05/08(日) 11:23:50.760792デフォルトの名無しさん
2011/05/08(日) 15:13:49.060793デフォルトの名無しさん
2011/05/08(日) 23:14:24.07ありがとうございます。
おかげさまで正規表現でのマッチが簡単に行えました。
splitやjoinを使うのですね。参考になります。
0794デフォルトの名無しさん
2011/05/09(月) 00:08:05.19ループ回数をprintしても、何も表示されずに、プログラムが終了するときに、
一気に表示されるのですが、
これはどういう仕組みでこうなってしまうんでしょうか
0795デフォルトの名無しさん
2011/05/09(月) 00:27:24.29codepad使ってみて
どういう仕組み、と言うか自分で書いたものそのままの仕組みだと思うよ
0796デフォルトの名無しさん
2011/05/09(月) 01:56:26.570797デフォルトの名無しさん
2011/05/09(月) 03:03:07.49print 'a';
print 'b';
ターミナルにabと表示されるのは、速すぎて一瞬で表示されてるわけではなくて、
1回で書いてるんですね。(データサイズが大きいと違うみたいですが)
ソース乗せなくて申し訳ありませんでした。
0798デフォルトの名無しさん
2011/05/09(月) 23:24:53.63それは1回で書いていてなおかつ速すぎて一瞬で表示されているんだと思う。
$|=1;
print "a";
sleep 10;
print "b\n";
で「$|=1;」がある時とない時を比べればわかりやすいかも。
0799デフォルトの名無しさん
2011/05/10(火) 14:06:52.69一時変数を作らないと無理でしょうか?
今はこうしています:
my @tmp = map { ... } @ary;
push @results, \@tmp;
これと同じことを1行で書けるのでしょうか、無理なら諦めます
0800デフォルトの名無しさん
2011/05/10(火) 14:13:08.91ではどうか
0801デフォルトの名無しさん
2011/05/10(火) 14:15:16.09なるほどぉぉぉぉぉ!!!!!目から@が落ちました!
ありがとうございます!
0802デフォルトの名無しさん
2011/05/10(火) 14:16:22.47てきとーに書いたから間違ってると思うけど、map で返すときに [] で括ればいいようなきがすう。
0803デフォルトの名無しさん
2011/05/10(火) 16:12:30.940804デフォルトの名無しさん
2011/05/10(火) 16:15:48.24map剥き出しのそのままじゃダメなの?
0805799,801
2011/05/10(火) 16:27:52.56そこにmapみたいなリストを返す式を書くと結果が [ 〜 ] 内に展開される
…みたいなイメージで合ってますよね、たぶん
0806デフォルトの名無しさん
2011/05/10(火) 16:35:46.75物凄い勘違いしてた
配列や何やらのままだと
[]で囲まないとダメだよな
笑って許してくれ
0807Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 14:05:25.64基礎中のきそなんだけどここはPerlの質問だから帰ってください
0808Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 14:08:39.51push @results, \@tmp;
@tmp=();これやったら
配列もハッシュもそうリファレンスを消したら
@resultに入ってる値は全部きえるけどな
0809Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 14:25:36.13ループさせて\@tmpいれても
@tmpでループごとに初期化されるから\@tmpのリファレンスがループごとに消される
わかりますかね?
0810デフォルトの名無しさん
2011/05/11(水) 14:36:37.67じゃあ[map{....}@ary]は無名配列の無名リファレンスってわけ?
@resultsから[map{....}@ary]をpopするとその@tmp分の配列の領域はどうなっちゃうの?
漏れる一方? それとも@resultsを初期化すれば@tmp分のそれぞれの領域も解放されるの?
されないよね?
0811Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 15:16:06.90push @results,[map{ ... }@ary];
push @results,[(1,2,3,4,5)]
と同じ
@resultsを初期化したら@tmpの領域は開放されない
@resultsに@tmpsのリファレンス入れてるだけだから
0812Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 15:17:38.480813デフォルトの名無しさん
2011/05/11(水) 18:33:55.50@resultsからは常にメモリがダダ漏れでザル、と。
popの度に手綱が行方不明になって、最終的にシステムは落ちる……
0814デフォルトの名無しさん
2011/05/11(水) 19:10:12.86作ってみよう、というプログラムで
my @range = {'00', '33', '66', '99', 'CC', 'FF'};
print '<html>';
print '<h1>Color Chart</h1>';
print '<pre>';
foreach my $rr (@range) {
foreach my $gg (@range) {
foreach my $bb (@range) {
print qq| <font color="#$rr$gg$bb"><tt>#$rr$gg$bb</tt></font>|;
}
print "\n";
}
}
print '</pre>';
print '<html>';
実行すると
<fontcolor="#HASH(0x3e9b94)HASH(0x3e9b94)HASH(0x3e9b94)"><tt>#HASH(0x3e9b94)HASH(0x3e9b94)HASH(0x3e9b94)</tt></f
のように$rrなどが数字にならず、ループもちゃんと回っていないようです。
何が悪いのでしょうか?
0816デフォルトの名無しさん
2011/05/11(水) 19:25:16.97ttp://ms-muddle.img.jugem.jp/20061008_185650.jpg
0817デフォルトの名無しさん
2011/05/11(水) 19:28:31.47ふざけてんのかw と思ったけど、よく見たら解答が見えたわ
もう歳かな
0818デフォルトの名無しさん
2011/05/11(水) 19:37:51.79http://perldoc.jp/docs/perl/5.10.0/perldata.pod#List32value32constructors
http://perldoc.jp/docs/perl/5.10.0/perlsyn.pod#Foreach32Loops
0819デフォルトの名無しさん
2011/05/11(水) 20:12:57.43my @rangeがハッシュリファレンスになってる。
そこの括弧は{}じゃなくて()
0820デフォルトの名無しさん
2011/05/11(水) 21:27:13.08サンクス。
お騒がせしました。
0821デフォルトの名無しさん
2011/05/11(水) 21:42:03.56ttp://blog.plaync.jp/giko/302948.slog
0822デフォルトの名無しさん
2011/05/11(水) 21:44:56.960823デフォルトの名無しさん
2011/05/11(水) 21:46:44.68popして得たリファレンスを特に保持しないと、参照されなくなるのでPerlが自動的に開放してくれませんか?
0824デフォルトの名無しさん
2011/05/11(水) 21:56:44.480825デフォルトの名無しさん
2011/05/11(水) 22:00:37.41その通り
相互参照とか参照のループでも作らない限り
Perlのシステムはそのへんちゃんと面倒みてくれる
忍者の頭では理解できてないようだけど
まあ夢がケントじゃ無理もないかね
0826Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 22:07:33.79君は Perl メモリ管理でぐぐったほうがいいですよ?!
0827デフォルトの名無しさん
2011/05/11(水) 22:09:50.88perlでふつうに書くととんでもなく遅いよ。
0828Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 22:12:34.34理解してないのはおまえだろ自作自演してる脳タリンwww
0829デフォルトの名無しさん
2011/05/11(水) 22:17:09.50わかってないのはあんた。
>809を自分でコードを書いて動かしてみろ。
0830Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 22:18:55.06知ったか乙
0831Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 22:20:57.26対抗できるように、ぐぐって事前に反論の準備ととのえてるんっすよね?シュシュ
どこまで知識があるか探るときに使う手法っすよね シュシュ
0832Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 22:23:30.13my @tmp = map { ... } @ary;
push @results, \@tmp;
}
とかでループさせたら @tmpのリファレンスは上書きされてるってことなんだけど
わかったかね?クソバカ
0833Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/11(水) 22:24:29.96/ ヽ
\ | _,___人_ | /
\ ヽ / |/ /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, | 《・》 《・》 i ,ミヽ / \ バーカ!! /
\ / く(6| ,(、_,)、 |6)ゝ \ / \
/ /⌒ 'ヽ トェェェイ / ' ⌒\ \  ̄|/\/\/\/ ̄
(  ̄ ̄⌒ ヽ ヽニソ/ ⌒ ̄ _)
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
0834デフォルトの名無しさん
2011/05/11(水) 22:32:06.690835デフォルトの名無しさん
2011/05/11(水) 22:35:10.18数行の動くコードも書けんのか。本当にグズだな。
0836デフォルトの名無しさん
2011/05/11(水) 22:39:54.220837Perl忍者
2011/05/11(水) 22:45:20.720838デフォルトの名無しさん
2011/05/11(水) 22:47:44.55自分で数行書いて試せばすぐわかること。
0839デフォルトの名無しさん
2011/05/11(水) 22:55:51.68忍者さんが使用しているPerlが私の使用しているPerlと違うような気がしたから聞いたんだよ。
0840デフォルトの名無しさん
2011/05/12(木) 01:02:01.25さしずめ忍者perlといったところか
0841デフォルトの名無しさん
2011/05/12(木) 02:54:46.12ARRAY(0x1845074)
ARRAY(0x1844e44)
ARRAY(0x1844e54)
ARRAY(0x1844e34)
ARRAY(0x1844e14)
ARRAY(0x1844df4)
ARRAY(0x1844dd4)
ARRAY(0x1844db4)
ARRAY(0x1844d94)
ARRAY(0x1844d74)
ARRAY(0x1844d54)
ARRAY(0x1844d34)
ARRAY(0x1844d14)
ARRAY(0x1844cf4)
ARRAY(0x1844cd4)
ARRAY(0x1844cb4)
ARRAY(0x1844c94)
上書きされないねぇ。
まぁ、ループ毎に新しく作られてるんだから当たり前だよね。
ループの外で宣言した @tmp に対してだったら TreeBoa … Perl忍者 の言ってる事が正しいかもね。
キュフフ
0842デフォルトの名無しさん
2011/05/12(木) 09:52:18.30かわいそう
0843デフォルトの名無しさん
2011/05/12(木) 09:52:52.17発 者 同 . 。_ ____ 争
生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
0844デフォルトの名無しさん
2011/05/12(木) 09:58:42.55@tmpは上書きされると釣っていましたね
undefすれば別なんですが さすがですね忍者さんは
0845デフォルトの名無しさん
2011/05/12(木) 10:02:35.640846デフォルトの名無しさん
2011/05/12(木) 10:52:41.310847デフォルトの名無しさん
2011/05/12(木) 13:13:51.11ということは割れてるトリップを本人も使い続けてるのか
それともトリップ使ってる奴は全員ニセモノなのか
0848デフォルトの名無しさん
2011/05/12(木) 13:43:55.93本人以外の人間が騙ってもその発言で忍者と分かってしまう不思議を忍者は持っている。
正負どちらの方向にせよ。
0849デフォルトの名無しさん
2011/05/12(木) 14:01:54.080850デフォルトの名無しさん
2011/05/12(木) 14:30:58.270851Perl忍者ninjahebi
2011/05/12(木) 14:53:36.92[2011/05/09 19:18:46] Perl忍者: なにやってんだよまじで
[2011/05/09 19:18:48] Perl忍者: トリップ
[2011/05/09 19:19:23] Perl忍者: 死ねよ
[2011/05/09 19:19:32 | 19:25:06を削除しました] Perl忍者: このメッセージは削除されました
[2011/05/09 19:19:35] Perl忍者: 覚悟しろよな
[2011/05/09 19:19:37] くろさわようくん: OK
[2011/05/09 19:19:38] くろさわようくん: まかせる
[2011/05/09 19:19:39] くろさわようくん: うん
[2011/05/09 19:19:46] Perl忍者: 大阪wwwwwwwwwwwwwwwwwwwwwwww
[2011/05/09 19:19:59] Perl忍者: その腐った顔面もさらしてやるから
[2011/05/09 19:20:07] くろさわようくん: うん
[2011/05/09 19:20:10] Perl忍者: うんじゃねえよはげ
[2011/05/09 19:20:11] Perl忍者: おい
[2011/05/09 19:20:14] Perl忍者: なんでさらしてんの?
[2011/05/09 19:20:16] くろさわようくん: 俺イケメンだしいいよ
[2011/05/09 19:20:19] Perl忍者: 死ねよくず
[2011/05/09 19:20:20] Perl忍者: おい
[2011/05/09 19:20:22] Perl忍者: まじでばかだろ?
[2011/05/09 19:20:31] くろさわようくん: うん
[2011/05/09 19:23:50] Perl忍者: しねよ
[2011/05/09 19:23:53] Perl忍者: うんじゃねえよ
[2011/05/09 19:23:58] くろさわようくん: うyん
[2011/05/09 19:24:14] Perl忍者: キモオタみたいなつらしやがって
[2011/05/09 19:24:20] Perl忍者: キノコみたいだな髪型
[2011/05/09 19:24:29] Perl忍者: おかっぱ?
0852デフォルトの名無しさん
2011/05/12(木) 16:03:12.70心配してるのはメモリを確保・解放してるタイミングなので
そこに絞った注意事項でもいいです
つーか、いつ変数が確保されるのかよくわからん
0853デフォルトの名無しさん
2011/05/12(木) 16:25:53.92Perlはメモリについて意識しないでいいようにできている
Perlはメモリについて意識しないでいいようにできている
Perlはメモリについて意識しないでいいようにできている
C齧りさんは帰っていいっすよ
Perl使いはCやアセンブラできて当然なので
いちいちメモリがどうたらとか話しませんよ勘違い君
0854Perl忍者lvl4 ◆M5ZWRnXOj6
2011/05/12(木) 16:33:41.30http://perldoc.jp/docs/perl/5.10.0/perlref.pod
http://perldoc.jp/docs/perl/5.10.0/perlobj.pod#Two-Phased32Garbage32Collection
http://perldoc.jp/docs/modules/Devel-Cycle-1.02/Cycle.pod
0856デフォルトの名無しさん
2011/05/12(木) 17:24:05.43ありがとう
スコープを外れた変数は普通にGCに回収される
って解釈でよいのね
,>>855
真ん中のがたいへん参考になりました
0857デフォルトの名無しさん
2011/05/12(木) 17:26:42.55delete しても開放されなかったような・・・
0858デフォルトの名無しさん
2011/05/12(木) 17:55:51.53再利用はしてくれるけど、OSに返却するかというと
そうでもないみたい??
例えばこんなプログラムを実行してみた。
sub f {
my $x = 'x' x 10000000;
print "f()の中¥n";
system 'ps l -p '.$$;
}
print "最初の状態¥n";
system 'ps l -p '.$$;
f();
print "f()を呼んだ後¥n";
system 'ps l -p '.$$;
f();
print "もう一度f()を呼んだ後¥n";
system 'ps l -p '.$$;
0859デフォルトの名無しさん
2011/05/12(木) 17:56:12.29最初の状態
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 1000 30001 27949 20 0 6748 1472 - S+ pts/0 0:00 perl hoge.pl
f()の中
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 1000 30001 27949 20 0 26284 21024 - S+ pts/0 0:00 perl hoge.pl
f()を呼んだ後
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 1000 30001 27949 20 0 26284 21028 - S+ pts/0 0:00 perl hoge.pl
f()の中
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 1000 30001 27949 20 0 26284 21028 - S+ pts/0 0:00 perl hoge.pl
もう一度f()を呼んだ後
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 1000 30001 27949 20 0 26284 21028 - S+ pts/0 0:00 perl hoge.pl
0860デフォルトの名無しさん
2011/05/12(木) 18:07:47.68ゴミみたいな基礎勉
0861デフォルトの名無しさん
2011/05/12(木) 18:35:19.92OSに返すかはfree(3)の実装依存ではないだろうか。
0862デフォルトの名無しさん
2011/05/12(木) 19:34:35.470863デフォルトの名無しさん
2011/05/12(木) 22:02:55.750864デフォルトの名無しさん
2011/05/12(木) 22:18:53.240865デフォルトの名無しさん
2011/05/12(木) 22:19:44.43Perl忍法
http://e8y.net/mag/
0866デフォルトの名無しさん
2011/05/12(木) 22:55:36.75くだらないことやってる時間があったら本でも読めよ。
いくらググってテメーにとって意味がわからんものはわからんまま終わるんだよ。
0867デフォルトの名無しさん
2011/05/13(金) 08:46:18.870868デフォルトの名無しさん
2011/05/13(金) 09:35:37.94循環参照や参照しっぱなしがない限り、普通はメモリを意識しなくていいよ。
もちろんデータ量がGB単位になってきたら別だけど。
0869デフォルトの名無しさん
2011/05/13(金) 10:47:56.99ど素人丸出し
0870デフォルトの名無しさん
2011/05/13(金) 10:48:34.24口に出して言わないだけだから
0871デフォルトの名無しさん
2011/05/13(金) 11:05:30.880872デフォルトの名無しさん
2011/05/13(金) 12:05:17.210873デフォルトの名無しさん
2011/05/13(金) 15:47:13.990874デフォルトの名無しさん
2011/05/13(金) 15:50:39.540875デフォルトの名無しさん
2011/05/13(金) 15:52:08.530876デフォルトの名無しさん
2011/05/13(金) 16:01:08.080877デフォルトの名無しさん
2011/05/13(金) 16:37:38.74ttp://codepad.org/605WAFb5
0878デフォルトの名無しさん
2011/05/13(金) 17:25:56.450879デフォルトの名無しさん
2011/05/13(金) 17:56:25.240880デフォルトの名無しさん
2011/05/15(日) 12:47:01.250881デフォルトの名無しさん
2011/05/15(日) 12:54:22.470882デフォルトの名無しさん
2011/05/15(日) 12:55:05.20local $SIG{ALRM} = sub { die 'timeout' };
alarm 10;
`sleep 30`; # 時間のかかる処理
alarm 0;
};
alarm 0;
こういうよくあるタイムアウト付き処理をおこなうとき
タイムアウトが起きても「時間のかかる処理」のプロセスが
残ってしまうことがあるんだけど、これをタイムアウト時に
きっちり殺す方法はありますか?
0883デフォルトの名無しさん
2011/05/15(日) 13:07:42.43http://perldoc.jp/docs/perl/5.10.1/perlfaq8.pod
http://perldoc.jp/docs/perl/5.10.0/perlipc.pod
0884デフォルトの名無しさん
2011/05/15(日) 13:10:31.90死ねよ
0885デフォルトの名無しさん
2011/05/15(日) 16:09:09.58http://perldoc.jp/docs/perl/5.14.0/perl5140delta.pod
0886デフォルトの名無しさん
2011/05/15(日) 18:11:11.79my %args = @_ && ref $_[0] eq 'HASH' ? %{ $_[0] } : @_;
な記述があるんだけど、
最初の@_ &&って意味あるのかな
0887デフォルトの名無しさん
2011/05/15(日) 18:43:42.91fork execして、プロセスIDを適切にkill。
>>886
use warnings;していると、引き数が無いときに警告が出る。
0888886
2011/05/15(日) 22:10:25.79use warnings;
test();
test2();
sub test {
my %args = ref $_[0] eq 'HASH' ? %{ $_[0] } : @_;
}
sub test2 {
my $a = shift;
}
0889デフォルトの名無しさん
2011/05/16(月) 07:34:26.09確かに。
0890デフォルトの名無しさん
2011/05/16(月) 21:25:28.020891デフォルトの名無しさん
2011/05/16(月) 21:49:21.940892デフォルトの名無しさん
2011/05/17(火) 00:27:05.760893デフォルトの名無しさん
2011/05/17(火) 05:03:55.93cin >> p >> d1 >> d2;
こう記述した場合、
100 200 300
という入力があれば、
P = 100, d1 = 200, d2 = 300と格納されます。
数字を空白区切りで入力したい場合、
Perlでも同じようなことができますか?
0894デフォルトの名無しさん
2011/05/17(火) 05:25:05.710895デフォルトの名無しさん
2011/05/17(火) 07:04:49.88ありがとうございます!
($p, $d1, $d2) = split / /, <>;
でなくて、
> ($p, $d1, $d2) = split ' ', <>;
というやり方でもいいんですね。
0896デフォルトの名無しさん
2011/05/17(火) 07:19:58.13と
split /\s+/, <>;
と
split ' ', <>;
とで少しずつ処理(結果)が違う。面白いね。
0897デフォルトの名無しさん
2011/05/17(火) 07:25:32.45え、違いますか?
0898デフォルトの名無しさん
2011/05/17(火) 07:31:27.17入力時、行頭や行末にスペースを入れたり、
間のスペースを複数(2こ以上連続)にしてみたりすると
違いが分かる。
0899デフォルトの名無しさん
2011/05/17(火) 07:51:30.54while( cin >> n && n ){
・・・
}
という書き方は、Perlではできませんか?
1行でです。
0900デフォルトの名無しさん
2011/05/17(火) 07:56:53.82本当ですねw
何でこうなるんでしょうかねぇ
0901デフォルトの名無しさん
2011/05/17(火) 08:26:51.89while( my $n = 0+<$fh> ){
}
0902デフォルトの名無しさん
2011/05/17(火) 09:05:59.91ありがとうございます。
どこでそういう知識を得たんですか?
0903デフォルトの名無しさん
2011/05/17(火) 09:26:24.31my $n;
while( $n=<$fh> , (defined($n) ? 0+$n : 0 ) ){ ... }
とか、1行に拘らずに
for(;;){
my $line = <$fh>;
defined($line) or last:
my $n = 0+$line or last;
}
とか書いた方がいいな。
0904デフォルトの名無しさん
2011/05/17(火) 09:32:49.69警告とか気にしないなら901のコードでも動くっちゃ動く。
0905デフォルトの名無しさん
2011/05/17(火) 09:33:16.37…とまあどーでもいいことを延々考え続けた結果だよ。知識とかじゃない。
0906デフォルトの名無しさん
2011/05/17(火) 09:43:41.53・\s は [ \n\r\f\t] と同じ。
・splitで最大要素数(第3パラメータ)を略した場合、後の方の空要素は捨てられる。
・' ' でsplitした時は、/\s+/ と同等の処理に加えて先頭の方の空要素も捨てられる。
というか行頭のスペースは無視して処理される。(そういう仕様)
0907デフォルトの名無しさん
2011/05/17(火) 10:38:01.830908デフォルトの名無しさん
2011/05/17(火) 11:29:41.84(例えば http://search.cpan.org/~gward/Text-BibTeX-0.34/BibTeX.pm )
をカスタマイズするより yacc/lexで自分で書いた方はるかに手間いらずなんですが
perlの使いどころがよくわからないです
一行スクリプト専用?
0909デフォルトの名無しさん
2011/05/17(火) 12:06:42.06適材適所。perlのつかいどころも使ってりゃそのうちわかるよ。使う人の
能力依存という面もあるけどな。
0910デフォルトの名無しさん
2011/05/17(火) 14:14:56.97それ以上はモジュール頼りになりがちだけど
0911デフォルトの名無しさん
2011/05/17(火) 14:55:00.530を足したのは何でですか?
0912デフォルトの名無しさん
2011/05/17(火) 15:12:32.500913デフォルトの名無しさん
2011/05/17(火) 15:22:08.82<>から入力されたのが数字でも、数字と認識しないんですか?
0914デフォルトの名無しさん
2011/05/17(火) 15:45:14.72それより $num+$str は use warnings の numeric が有効になってれば警告出るはずなんだけどな
0915デフォルトの名無しさん
2011/05/17(火) 15:50:01.380916デフォルトの名無しさん
2011/05/17(火) 17:10:55.00FCGI の 0.71 で Makefile が作れずに引っかかってしまった…orz。
0917デフォルトの名無しさん
2011/05/17(火) 17:46:27.78>Yes, it is EUMM issue (6.57_05 installs with perl-5.14.0-RC2).
>Issue has gone after upgrade ExtUtils::MakeMaker to 6.57_10 from cpan
>
>Think it is fixed in 6.57_06 already.
と言うわけで FCGI-0.71 のバグじゃなくてバンドルされた ExtUtils::MakeMaker のバグ
EUMM の開発版の一番新しいのをインストールすれば良いんでないの?
0919デフォルトの名無しさん
2011/05/18(水) 17:52:01.99パイプを使うか、perlipcに載っている安全なパイプオープンのサンプルそのままで取得できる。
シェルを介する方法だと、多分シグナルがブロックされて上手く行かない。
http://perldoc.jp/docs/perl/5.10.0/perlipc.pod#Safe32Pipe32Opens
0920919
2011/05/18(水) 18:05:30.970921デフォルトの名無しさん
2011/05/19(木) 00:49:15.07自動で最寄りのミラーサーバを探させたら、
|>Looking for CPAN mirrors near you (please be patient)
|>............................. done!
|>
|>New urllist
|> http://mirror.yongbok.net/CPAN/ # 北朝鮮
|> http://cpan.cs.pu.edu.tw/ # 台湾
|> http://cpan.mirror.choon.net/ # シンガポール
って、日本国内のミラーサーバが一つも出ないって….
0922デフォルトの名無しさん
2011/05/19(木) 02:10:24.080923デフォルトの名無しさん
2011/05/19(木) 12:25:35.23my @a=('aaaa.001', 'aaaa.002', 'aaaa.003');
my @s = sort { my $tmp2 cmp my $tmp1 } @a; #
print "@s\n";
ってやっても、降順にならないよ ><
0924デフォルトの名無しさん
2011/05/19(木) 12:33:23.17my @s = sort { $b cmp $a } @a; #
print "@s\n";
0925デフォルトの名無しさん
2011/05/19(木) 12:47:15.16sortの時は$aと$bを使うってお母さんに教わらなかったか?
0926デフォルトの名無しさん
2011/05/19(木) 12:50:19.94おかあさんよりむしろコイツに教わるだろう
0927デフォルトの名無しさん
2011/05/19(木) 19:04:12.74$a$bを使ってるのを一度見て変数なら何でもいいって思ったんだろうな
0928デフォルトの名無しさん
2011/05/19(木) 20:11:52.050929デフォルトの名無しさん
2011/05/21(土) 00:50:01.41渡す乱数種を /dev/urandom から持って来るにはどう書いたら良いのでしょうか?
0930デフォルトの名無しさん
2011/05/21(土) 03:19:05.77VIA の PadLock って、perl から使えないのかしら?
0931デフォルトの名無しさん
2011/05/21(土) 13:45:55.54sjisでPOSTしたいんですがUTF8でエンコードされてるみたいで
どうやっていじればいいのか迷ってます
0932デフォルトの名無しさん
2011/05/22(日) 09:00:09.05/dev/urandomって見かけはただのファイルなんだから、
バイナリファイルから4バイト読んで整数としてunpack
みたいな感じでいいんじゃねーの?
0933デフォルトの名無しさん
2011/05/22(日) 14:40:10.46my $mech = WWW::Mechanize->new();
$mech->get( ... );
$mech->current_form->accept_charset('Shift_JIS');
...
0934デフォルトの名無しさん
2011/05/22(日) 15:53:59.96のコメントで、
perl 5.8の「1回目ロード失敗後の2回目ロード」問題
とあるのは、どのような問題なのでしょうか?
0935デフォルトの名無しさん
2011/05/23(月) 00:36:55.62調べてみた。
下のコード(Foo.pmはエラーが起きるようなもの)があったとして、
Perl5.8.xはエラーを出さずに正常終了してしまう問題じゃないかしらん。
-- Foo.pm
package Foo;
Error !!
1;
--test.pl
eval "require Foo; 1";
require Foo;
0936デフォルトの名無しさん
2011/05/23(月) 19:49:10.11$& を使うと効率が悪い、と聞きましたが
なぜ効率が悪いのでしょうか
0937デフォルトの名無しさん
2011/05/23(月) 20:00:58.910938デフォルトの名無しさん
2011/05/23(月) 20:13:21.300939デフォルトの名無しさん
2011/05/23(月) 20:17:58.34in the program, it has to provide them for every pattern match. This
may substantially slow your program. Perl uses the same mechanism to
produce $1, $2, etc, so you also pay a price for each pattern that
contains capturing parentheses. (To avoid this cost while retaining
the grouping behaviour, use the extended regular expression "(?: ... )"
instead.) But if you never use $&, "$`" or "$'", then patterns without
capturing parentheses will not be penalized. So avoid $&, "$'", and
"$`" if you can, but if you can't (and some algorithms really
appreciate them), once you've used them once, use them at will, because
you've already paid the price. As of 5.005, $& is not so costly as the
other two.
0940デフォルトの名無しさん
2011/05/23(月) 20:20:50.430941デフォルトの名無しさん
2011/05/23(月) 22:33:27.76foreach my $hoge ( qw( aa bb cc) ) {
warn ${$hoge};
}
で上手く動きませんでした。教えてください。
レキシカルスコープだから駄目なのかと思い、
${$_}としてみたのですが駄目でした。
0942デフォルトの名無しさん
2011/05/23(月) 22:41:18.26「教えてください。」
って書く奴は要注意だったような記憶がうっすら
0943デフォルトの名無しさん
2011/05/23(月) 22:51:43.180944デフォルトの名無しさん
2011/05/23(月) 23:40:24.65文字列のリストの中身はそれぞれリファレンスだったのか?
謎は尽きない……。
0945デフォルトの名無しさん
2011/05/24(火) 02:25:34.22引越し先とか分かりましたら教えてください。
(942さん申し訳ありません)
0946デフォルトの名無しさん
2011/05/24(火) 03:11:30.75「分かりましたら」等に続く「教えてください。」なら無問題でしょう。
>>941 はちょっとあぶないけど warn eval('$' . $hoge); なら動くんじゃね。
おすすめはしないけど。素直にハッシュ使う方がよかんべ。
0947デフォルトの名無しさん
2011/05/24(火) 09:27:02.61特に問題があるようには見えない
foreach の外で、$aa, $bb, $cc が my で宣言されてるんじゃないの?
0948デフォルトの名無しさん
2011/05/24(火) 09:48:21.10その断片だけなら動くよな。実際動かしてみたら
Warning: something's wrong at hoge.pl line 2.
Warning: something's wrong at hoge.pl line 2.
Warning: something's wrong at hoge.pl line 2.
で、少なくとも書いたとおりの動作ではある。
これが期待した物じゃないというなら説明してもらわんと
わからんね。
0949デフォルトの名無しさん
2011/05/24(火) 10:28:08.47$aa = 'A'; $bb = 'B'; $cc = 'C';
foreach my $hoge ( qw( aa bb cc) ) {
print STDERR ${$hoge};
}
とすれば、期待通りにABCと出てくるのだが、3行目を
warn ${$hoge};
に変更すると、何も出てこない。なんでだろ〜?なんでだろ〜?
0950デフォルトの名無しさん
2011/05/24(火) 11:25:24.75をperlに変換するなら
perl -ne '/HOGE/ && print'
とやるしかないんでしょうか
0951941
2011/05/24(火) 12:44:18.02やりたいことは、まったくその通りで、連想配列つかうべきでした。
ありがとうございました。
0952デフォルトの名無しさん
2011/05/24(火) 14:08:31.91しかないかといわれるとperlなんだからいくらでも書き方は
あるけどな。何を求めてるんだろうか??
0953デフォルトの名無しさん
2011/05/24(火) 15:55:47.80って書くのがださいよね、という話です。
0954デフォルトの名無しさん
2011/05/24(火) 16:22:33.410955デフォルトの名無しさん
2011/05/24(火) 16:50:53.52print if /HOGE/
0956デフォルトの名無しさん
2011/05/24(火) 17:49:04.57http://perldoc.perl.org/psed.html
0957デフォルトの名無しさん
2011/05/24(火) 18:56:36.31ありがとうございます
文字数は変わらないですね
0958デフォルトの名無しさん
2011/05/24(火) 18:58:09.25sedは正規表現が貧弱じゃないですか
何を怒っているんですか?もしかして、ラリーさんですか?
0959デフォルトの名無しさん
2011/05/24(火) 19:22:38.44本来は何を書きたいのかがちょっと気になる
0960デフォルトの名無しさん
2011/05/24(火) 19:31:23.150961デフォルトの名無しさん
2011/05/24(火) 19:47:33.85perl -ne '/<(.*)>/ && print $1'
sed -ne 's/^.*<\(.*\)>.*$/\1/p'
のようなものです。
0962デフォルトの名無しさん
2011/05/24(火) 19:56:10.70ってやればいいんだよ。
0963デフォルトの名無しさん
2011/05/24(火) 20:00:23.900964デフォルトの名無しさん
2011/05/24(火) 20:12:52.05ありがとうございます
文字数は変わらないですね
0965デフォルトの名無しさん
2011/05/24(火) 20:57:05.70どうしても不満ならsedでやれば良いんでない?
0966デフォルトの名無しさん
2011/05/24(火) 21:28:20.860967デフォルトの名無しさん
2011/05/24(火) 22:39:24.800968デフォルトの名無しさん
2011/05/24(火) 22:45:20.10ミニマルPerl――Unix/LinuxユーザのためのPerl習得法
http://www.oreilly.co.jp/books/9784873113685/
0969デフォルトの名無しさん
2011/05/24(火) 23:41:22.89[★ 参考になる]
0970デフォルトの名無しさん
2011/05/25(水) 00:42:49.74CGIとして動作させてます。
入力も出力も記述も全部utf8にしてます。
記述の先頭には use utf8 を書いてますが、なんかこれを書くとエラーが増える気がします。
でも書かなかったら書かなかったで、、require とかそうゆうのをやった時におかしくなります。
あとURLエンコードとデコードのやりかたが全くわかりません。
これもこれで use utf8 がある時とない時でエラーの挙動が違います。
#▼以下の記述は use utf8 をすると挙動がおかしくなります。
use strict;
use URI::Escape;
print "--- use URI::Escape ---\n";
my $unescape = qq(<h2>"hoge"&' bar '</h2>);
my $escape1 = uri_escape($unescape);
print $escape1, "\n";
print uri_unescape($escape1), "\n";
0971970
2011/05/25(水) 00:43:07.44とりあえず説明が意味わからんと思いますが、
なんて言うか、今困ってるのは
use strict;
use utf8;
binmode STDIN,":utf8";
binmode STDOUT,":utf8";
use URI::Escape;
sub receipt () {
my ($post, $get);
read(STDIN, $post, $ENV{'CONTENT_LENGTH'});
$get = $ENV{'QUERY_STRING'};
return($post, $get);
}
sub my_decode (@){
my @decode = @_;
foreach my $decode (@decode){
$decode = uri_unescape($decode);
}
return(@decode);
}
print my_decode receipt; #※HTMLにしてブラウザに出力
思いっきり文字化けします。
なんですかこれ。
0972デフォルトの名無しさん
2011/05/25(水) 00:44:48.170973170
2011/05/25(水) 00:51:38.09出力部分はこんな感じになってます。
$print_code .= q[Content-Type: text/html;charset=UTF-8] . qq[\n];
$print_code .= qq[<HTML lang="UTF-8">];
%E6%97%A5%E6%9C%AC%E8%AA%9E
これをさっきの関数でデコードさせて出力させると、
æ¥æ¬èª
こうなります。
日本語
って表示されれば成功です。
0974970
2011/05/25(水) 00:54:16.290975デフォルトの名無しさん
2011/05/25(水) 01:05:32.530976デフォルトの名無しさん
2011/05/25(水) 01:18:27.970977デフォルトの名無しさん
2011/05/25(水) 01:32:24.35print my_decode receipt;
こうゆう意味ではないと言うことですか?
>>976
utfフラグの段階からよく分かってないんでこうなりました。
ごめんなさい。
0978デフォルトの名無しさん
2011/05/25(水) 01:46:20.92http://hibari.2ch.net/test/read.cgi/php/1295170172/
0979デフォルトの名無しさん
2011/05/25(水) 02:06:56.26マルチ質問でおかしくならないように責任持って並行に状況書き込みをします。
0980デフォルトの名無しさん
2011/05/25(水) 02:23:07.230981デフォルトの名無しさん
2011/05/25(水) 03:28:12.13>>970 use utf8 と use URI::Escape 合わせると二重処理になるよ。CGIは関係なくperlの文字解釈の問題。
詳細は>>980よろしく。
0982デフォルトの名無しさん
2011/05/25(水) 04:15:21.660983デフォルトの名無しさん
2011/05/25(水) 05:32:49.52そのままLatin1-supplementの文字になってるだけじゃん。
バイナリで読んで、エスケープ解いてからutf8で変換。
0984デフォルトの名無しさん
2011/05/25(水) 06:27:00.01向こうで何百回繰り返されてる質問だろうに。
0985デフォルトの名無しさん
2011/05/25(水) 11:38:22.94マッチしたときだけ出力したいんだよ
0986デフォルトの名無しさん
2011/05/25(水) 11:40:42.664410円は高い。441円なら買う。
あと、左上のまばたきが怖い。
0987デフォルトの名無しさん
2011/05/25(水) 12:50:47.75こっちでも誘導先でも答え出てますやん。
試行錯誤する気が無いなら来るな。
0988970
2011/05/25(水) 18:00:52.21ぐぐってるウチに扱い方が分かり、
入出力関係の関数を全部書き直して解決しました。
今までEUCとsjisしか使ってなかったんで助かりました。
ありがとうございます。
0989デフォルトの名無しさん
2011/05/25(水) 18:33:32.600990デフォルトの名無しさん
2011/05/25(水) 18:34:07.100991デフォルトの名無しさん
2011/05/25(水) 22:49:49.50\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
0992デフォルトの名無しさん
2011/05/25(水) 23:08:31.140993デフォルトの名無しさん
2011/05/25(水) 23:16:46.050994デフォルトの名無しさん
2011/05/25(水) 23:20:22.83Perlについての質問箱 47箱目
http://hibari.2ch.net/test/read.cgi/tech/1306333092/
0995デフォルトの名無しさん
2011/05/26(木) 00:57:34.15乙
0996デフォルトの名無しさん
2011/05/26(木) 07:37:10.60乙
誘導パピコ
Perlについての質問箱 47箱目
http://hibari.2ch.net/test/read.cgi/tech/1306333092/
0997デフォルトの名無しさん
2011/05/26(木) 07:42:57.86say '乙';
0998デフォルトの名無しさん
2011/05/26(木) 14:11:35.11say '乙';
0999デフォルトの名無しさん
2011/05/26(木) 14:11:51.34say '乙';
1000デフォルトの名無しさん
2011/05/26(木) 14:12:04.0010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。