Perl 初心者コーナー Part24
レス数が1000を超えています。これ以上書き込みはできません。
0001 ◆fBgbHI04bQ
03/06/07 22:30ID:GbQKLcPE【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
CGIだけど、なんか質問ある? Part 10
http://pc2.2ch.net/test/read.cgi/php/1048686475/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
CGIに依存しないPerlの話題一般/Part2
http://pc2.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は、【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/
過去ログやお勧めサイトは >>2-10
0905nobodyさん
03/06/26 20:36ID:fBG4qVY6サーバーの負荷はファイルの読み書き何byteに対してフォームデータ送信何byteと同じぐらいでしょうか?
0908nobodyさん
03/06/26 21:12ID:8elJoZcAホスト12-231-187-185.client.attbi.com
名前:
E-mail:
内容:
こちらでリロードしてください。 GO!
分からないことがあったら2ちゃんねるガイドへ。。。
プロキシー制限は、2ちゃんねるビューアを使うと回避できることがあります。
ワラタ
0910nobodyさん
03/06/26 22:00ID:0WiiLc+a横に連結した1つの jpeg 画像ファイルを出力するプログラムを書け。
また、指定した位置に連結できるようにもせよ。
どなたか作っていただけませんか?
0911nobodyさん
03/06/26 22:07ID:XYA3PmxJ0912nobodyさん
03/06/26 22:07ID:8elJoZcA偉そうにマルチポストか。死ね。
0914nobodyさん
03/06/26 22:31ID:???まじれすすると、モジュール要るし、
貴方にはソレを入れるとか、もしくはソレを使えるサーバーも用意できないと思われる。
もうちっと勉強してきなさい。
0915nobodyさん
03/06/26 22:33ID:8elJoZcA>まじれすすると、モジュール要るし、
自分の低レベルをカミングアウトせんでも・・・。
学生のうちに離散コサイン変換位覚えとけ。
0916nobodyさん
03/06/26 22:54ID:???>>914じゃないけど、俺も面倒だからモジュール使うかなあ。必須だとは思わんけど。
> 学生のうちに離散コサイン変換位覚えとけ。
プログラマで10年飯を食ってるけど、文系なのでそういうの苦手。
0918891
03/06/26 23:08ID:???本当にバカですみません。どういう凡ミスかを簡単に申しますと、
htmlソースの<body>から</bocy>までの間だけ切り取ろうとしていた部分で
$_ =~ /^<body/i → $_ =~ /<body/i のように直したという感じの話です。
ちなみに実は他にも問題山積みであまり解決していないので
>解決したから満足ですさようならー
という状況でもなかったりするのですが。
0921nobodyさん
03/06/26 23:29ID:???0923nobodyさん
03/06/26 23:33ID:???0924nobodyさん
03/06/26 23:37ID:???0925nobodyさん
03/06/26 23:55ID:???関係ないけど、
> どういう凡ミスかを簡単に申しますと、
と書いた次の瞬間に↓
> </bocy>
なんか性格出ててちょっと好感度アップ。
0926nobodyさん
03/06/26 23:58ID:???昔、月の満ち欠けのレンダラーを何を思ったかPerlで書いた事があったが、
恐ろしく遅かったのを覚えてるな。
ただの球体なのに、500x500程度の画像に数分かかってた。
まぁ俺のアルゴリズムが自己流で糞だったのもあるけど。
でもCで書き直したら一瞬で計算できたよ。
0927nobodyさん
03/06/27 00:55ID:???$!に permission deniedが入っていました。
やったことをまとめるとこの様な感じです
・renameの第二引数には既に存在しているファイルを指定し上書きしたい
・第一、二引数のファイルは共に存在する
・両ファイル共に読み取り専用のチェックは入っていない
openでの書き込みやmkdirなどその他のファイルシステム関数は普通に使えます。
Windowsなのでパーミッションは要らないと思っていたのですが
この場合どこに原因があるのでしょうか?
どうかよろしくお願い致します
0929nobodyさん
03/06/27 06:01ID:???0930nobodyさん
03/06/27 07:24ID:???自分も同様な処理で同じエラーが出たが、
アクセス権を考えるのが面倒くさいので、
存在しているrename先ファイルをunlinkした。
0932nobodyさん
03/06/27 09:45ID:???超初心者な質問です。
if だと何かが真なら…って分岐になりますが、
「これら全てが真なら」とか「全てが偽なら」って記述をスマートに書くにはどのように書くのが一般的なのでしょうか?
頭悪いので
if(){
if(){
if(){
}
}
}
こんな記述使ってます。
見にくいです。
0933nobodyさん
03/06/27 09:47ID:???andじゃ駄目なの?
if($a == 1 and $b == 2 and $c == 3){
全てが真の時の処理;
}else{
一個でも違ったら;
}
0934932
03/06/27 11:05ID:???頭が悪いのか、andとか、全然使いこなせないんです。汗
0936374
03/06/27 11:22ID:???0937nobodyさん
03/06/27 11:36ID:???0940nobodyさん
03/06/27 12:57ID:???if文をまとめたぐらいでは体感的な速度差はない。
ただ、日頃から>>932のようなコーディングをする人は、自分でも理解できなくなるような
スパゲッティコードを書いたり、非常にパフォーマンスの悪いアルゴリズムを使ったりと
間違った方向に進みがち。
まあ何にせよ、基本はきっちりと押さえとけってこと。
0941nobodyさん
03/06/27 13:01ID:???したあと、
$houselist[あれこれ]->{id}
が重複するものを、
@houselist から取り除く(※)にはどうすればいいのでしょう?
※取り除くというか、1つだけ残したいです。
0942nobodyさん
03/06/27 13:21ID:???こんな感じかのう
@check = ();
@houselist = grep { !$check{$_->{id}}++ } @houselist;
0943nobodyさん
03/06/27 13:22ID:???0944nobodyさん
03/06/27 13:35ID:???>>934が言っているように、ほとんど体感は無いけどね。
ただ、漏れは仕事の都合上、xGB単位のファイルの処理とかするんだけど、
そうなってくると、細かいところでかなり違ってくる。
といっても、1時間が55分に短縮されるとか程度だけど。
どっちかってーと、>>934の言うとおり、わかりやすく書く、ってことが
重要かと。
0946nobodyさん
03/06/27 13:40ID:???∧∧
ヽ(=゚ω゚)ノ″
〜( ×)
(=゚ω゚)ノぃょぅ U U
0947nobodyさん
03/06/27 13:42ID:gWCPnMBPsub func{
$str = $_[0];
foreach(@list){
if(/$str/){
$result = $_;
}
}
return $result;
}
みたいに検索条件を変数にしたい時はどうすれば良いのでしょうか?
0948942
03/06/27 13:42ID:???0949nobodyさん
03/06/27 13:44ID:???正規表現じゃなくてindex使え。
0951374
03/06/27 14:01ID:???print s//uc join('',unpack('A1 x4 A1 x7 A1 x4 A1', <<EOT))/e && $_,"\n";
Just another Perl Hacker
EOT
0952nobodyさん
03/06/27 14:03ID:???0955nobodyさん
03/06/27 14:32ID:???変数を正規表現に使うときは、メタ文字が入っているとうまくいかないから、
quoteする。
metaquote($str)または\Q$str\E
全部にマッチしちゃうってのは、/^$str$/してないから、一部にひっかかって
るんじゃないかな。
0957947
03/06/27 14:39ID:???>>955の書き込みを見る前にindexでとりあえずの解決しました。
for($i = 0;$i < @list;$i++){
$idx = index($list[i],$str);
if($idx ne -1){
$result = $i;
}
}
としました
ありがとうございました。
>>955さんのが原因かと思われるのでそちらも勉強してみます。
感謝です
0958950
03/06/27 14:55ID:???要は正規表現を使って(変数に入った)文字列を検索したかったのね。
0960nobodyさん
03/06/27 15:07ID:???一覧のうち1部だけが文字化けするって、
何が考えられますか?
なお、スクリプトは、EUC(スクリプト中の処理も全てEUCで処理してます)、
CSVはSJIS、HTML吐き出しもSJISです。
文字化けしてしまってるところは、EUCになっちゃってます。
0961nobodyさん
03/06/27 15:14ID:???文字コード変換を自動判別に頼ってるため、Shift_JIS文字列をEUC
と見間違えるんだと思う。
CSVの1レコードとかテーブル全体を一括で文字コード変換するか、
明示的に変換元と変換先の文字コードを文字コード変換ルーチンに指示
するかすれば問題は起こりにくくなる。
あと、いわゆる半角カナが多いShift_JIS文字列もEUCと誤認識
しやすい(場合によっては区別が付かない)。
0962nobodyさん
03/06/27 15:15ID:???0964nobodyさん
03/06/27 15:54ID:???この方法の解説は確かperlメモに書いてあった。
だがしかしperlメモ説明がくどいから逆に分かり難いかも。
でも便利だから一度は見ておけば?
0965nobodyさん
03/06/27 17:01ID:???メールソフトと同じように、
$bcc = 'amano@alive.ne.jp, mine@alive.ne.jp';
if (!open(OUT,"| $sendmail -t")) { &error('申し訳ありませんが何らかの原因で処理できません.'); }
#中略
print OUT "Bcc: $bcc\n";
#後略
で問題ないですよね?
実験だと問題なさそうなんですが、
環境に依存するとなんなんで、一応質問・・・
0966nobodyさん
03/06/27 20:05ID:???その sendmail が Sendmail とは限らない。
とか言ってみるテスト。
ようはそのプログラム次第ってこと。
Socket使うとかしてみたら?
その手のモジュールも転がってるし。
0967965
03/06/27 20:21ID:???いや、sendmailのパス入ってます。
sendmailだったら、他の環境によらず大丈夫ってことですか?
Socketの勉強は、まだ少しペンディングにしてるので。。。
0969nobodyさん
03/06/27 20:53ID:???0970nobodyさん
03/06/27 21:05ID:???0971nobodyさん
03/06/27 21:26ID:???それ以外のは知らないけど。
つか、スレ違いぎみな気が。
0972ふつー
03/06/27 22:05ID:???use Net::SMTP;
0973nobodyさん
03/06/27 22:34ID:???なぜみんなヒアドキュメントを使うんでしょう?
print << "END_OF_HTML";
ほげ
ふが
ひげ
END_OF_HTML
っていう風に、最後を、インデントつけれないから、すごくコードがみづらくなって、
個人的にはいやなんですけど。
(なんかのオライリー本にもそんなことかいてあったきがする)
やっぱり、END_OF_HTMLみたいに意味をかけるからいいんでしょうか?
ちなみに自分は、ほとんど
print qq|
ふが
ほげ
|;
ってやってます。
0974965
03/06/27 22:36ID:???(だから、>>971 でqmail の sendmail ってなんだ?と思った)
スレ違いぎみなので、逝って勉強してきます。
0979nobodyさん
03/06/27 23:33ID:???0980nobodyさん
03/06/27 23:36ID:???'
hoge
';
<< 'HOGE';
hoge
HOGE
ちなみに私は前者が多いかな。
インデントがと言うか、楽だから。
0981nobodyさん
03/06/27 23:41ID:???クックブック
0983982
03/06/27 23:43ID:???0984nobodyさん
03/06/27 23:53ID:???0985nobodyさん
03/06/28 00:01ID:???なんてどお?
0986nobodyさん
03/06/28 00:26ID:???0987nobodyさん
03/06/28 00:34ID:???0988nobodyさん
03/06/28 00:37ID:???Perlコーディング 初心者コーナー Part25
じゃないのか?
0989nobodyさん
03/06/28 00:51ID:???0990nobodyさん
03/06/28 01:03ID:???0991nobodyさん
03/06/28 01:08ID:???0992nobodyさん
03/06/28 01:11ID:???0994nobodyさん
03/06/28 01:14ID:???0995nobodyさん
03/06/28 01:15ID:???0996nobodyさん
03/06/28 01:19ID:???http://pc2.2ch.net/test/read.cgi/php/1056730690/
立てたよ
0997nobodyさん
03/06/28 01:28ID:???0998nobodyさん
03/06/28 01:29ID:???0999nobodyさん
03/06/28 01:32ID:???1000nobodyさん
03/06/28 01:32ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。