トップページ⇒php
1001コメント296KB

Perlコーディング初心者質問スレ Part 58

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/08/06(水) 22:54:32ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1203935151/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
02492472008/09/29(月) 18:00:47ID:???
$image->Scale(width=>160, height=>120);
$image->Sample(width=>160, height=>120);

thumbnailって関数あったと思ってたけどぐぐっても見つからなかった
ScaleかSampleだったかな
とにかく画像の容量は境目が鮮明なほど大容量になるから普通はぼかし入れてサイズ変更
することで容量がコンパクトに収まる。確かResize関数はそれをやってなかったから脹れる
0250nobodyさん2008/09/29(月) 18:08:53ID:???
手元にあったサムネール作成するコードはこんな感じ
return $rc if $rc = $image->Read( $_[0] );
my($width,$height) = $image->Get( 'width' , 'height' );
return $rc if $rc = $image->Thumbnail( width => $WIDTH , height => $height * ( $WIDTH / $width) );
return $rc if $rc = $image->Write( $_[1] );
0251nobodyさん2008/09/29(月) 18:29:54ID:???
Thumbnailメソッドはあるよ。

JPEG使えばquality=>50で大体10k切れると思う。
02522462008/09/29(月) 20:17:47ID:???
皆様コメントありがとうございます。

>>250を参考に、>>248のソースの中のこの行を、
$image->Resize(width => 160,height => 120);

$image->Thumbnail(width => 160,height => 120);

こう変えてみたのですが、エラーも何も出ずに処理が中断されました。
ちなみにResizeをScaleとSampleに変えた場合は、いちおう画像は作成されましたがResizeと同じような容量でした。

ひょっとしてサーバーが対応してないのかな…
02532512008/09/29(月) 20:25:35ID:???
華麗にスルーされた(笑
せいぜい頑張りたまえ。
02542462008/09/29(月) 20:36:42ID:???
>>253
すいませんw
でも元々の画像は全てjpgで統一してるので、あとはThumbnailが動けばいいんですが…
0255nobodyさん2008/09/29(月) 21:54:40ID:???
>>253はすでに書いてあることしか書いてないじゃん
そりゃスルーされるわ
02562512008/09/29(月) 22:15:24ID:???
>>255
Image::Magick使ってから発言してるか?
160*120ドットにResizeして、JPEG,Quality50でWriteするだけで、10KB以下になるぞ。
02572512008/09/29(月) 22:20:16ID:???
つーか、160*120の8bitカラーとして非圧縮で19,200バイトなんだから、
GIFで圧縮したとしても、15KB程度ぐらいには圧縮可能だろうさ。
0258nobodyさん2008/09/29(月) 22:24:21ID:???
>246
今回の場合とは違うかもしれないが、自分も似たような症状でハマったことがある。
原因は、画像に含まれるコメントなどの付加情報だった。

Thumbnailなら消えるのかな?
02592512008/09/29(月) 22:30:58ID:???
だとしたら、Write前にStripかませば潰れるってことか。
0260nobodyさん2008/09/29(月) 22:31:22ID:???
>>256
お前は Image::Magic しか使ってないのか?
画像書き出しの基本を自慢気に書くなよ恥ずかしい
02612462008/09/29(月) 22:56:00ID:???
何かいろいろと荒れる原因を作ってすいません…

結果から言うと無事に減量に成功しました。
>>258さんの言う通り余計な情報が入ってたからみたいで、

$image->Profile();

このコマンドを使って付加情報を消してみまたところ、元が200KBの画像もQuality75で4KBほどに落ちました。
>>251さんの言うStripも試してみましたが、サーバーが対応してないのかしてエラーが…

何かあまりよく無い方法かもしれないけど、とりあえず減らせたのでこれでいってみようと思います。
本当はThumbnailが使えたら一番良かったんだろうけど…

皆様、どうもありがとうございました。
02622582008/09/29(月) 23:41:26ID:???
>261
お。そりゃえがった
0263nobodyさん2008/09/30(火) 11:08:00ID:???
thumbnailもstrip無いってよほど古いVersionなのか?
くっついてるライブラリの問題?
02642462008/09/30(火) 14:15:08ID:???
>>263
ロリポップですorz
多分かなりバージョンが古いと思います。

ローカルのサーバーだとImage::Magickの最新版入れたからどっちのコマンドも使えるんだけど…
逆にProfileがエラーで使えず。

このどっちつかずの状態が非常に面倒だw
0265nobodyさん2008/09/30(火) 16:09:35ID:???
常に最新ライブラリが使えるなんて、自前鯖で自力で入換えできる人しか使えないと思った方が良いよ
0266nobodyさん2008/09/30(火) 16:40:02ID:???
管理者にメール投げれば対応してくれることもあるけど、期待はしない方が無難
0267nobodyさん2008/09/30(火) 18:15:01ID:WMNZymKE
perl勉強したらperlでwindowsアプリケーションもつくれますか?
0268nobodyさん2008/09/30(火) 18:50:21ID:???
作れる
Win32API も呼べる

http://www.google.co.jp/search?num=100&hl=ja&safe=active&client=firefox&rls=org.mozilla%3Aja%3Aofficial&hs=6gw&q=perl+Windows+GUI&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
02692442008/10/01(水) 05:05:58ID:???
>>245
assoc .pl=Perl
ftype Perl=C:\Perl\local\bin\perl.exe "%1" %*

と何度かしているうちに直った
ありがとう
0270nobodyさん2008/10/03(金) 14:04:41ID:???
PHPのように、Perlの記述をHTMLに埋め込むようなことを実現するライブラリ、
もしくはモジュールはありますでしょうか?
0271nobodyさん2008/10/03(金) 14:23:53ID:???
つApache::ASP
0272nobodyさん2008/10/03(金) 18:25:13ID:???
>>271
サンクス
調べてみます
0273nobodyさん2008/10/04(土) 18:08:22ID:???
CPANからインストールしたモジュールを
他のサーバにもそのままコピーしたいのですが
何か良い方法ありませんか?
同じ環境を作りたいんです
お願いします
0274nobodyさん2008/10/04(土) 18:12:10ID:???
>CPANからインストールしたモジュールを
>他のサーバにもそのままコピー

それをやればいいと思うよ
0275nobodyさん2008/10/04(土) 18:14:56ID:???
CPANのフォルダをそのままコピーで良いんですかw
な、なんだってー知らなかったー
0276nobodyさん2008/10/04(土) 18:18:35ID:???
CPANのフォルダをそのままコピーしろなんて誰も書いてないわけだが
0277nobodyさん2008/10/04(土) 18:50:33ID:???
>274の書き方なら、>275の解釈が正しいんじゃないかなw
0278nobodyさん2008/10/04(土) 19:57:19ID:???
じゃあもうそうしろよ
0279nobodyさん2008/10/05(日) 04:46:08ID:???
Miyagawaとかその辺のレベルの話にまったくついていけないんだが・・・
なんつーか、自分のレベルの低さにげんなりすることってない?
あのレベルにいくまでどのくらいかかるのやら。
0280nobodyさん2008/10/05(日) 08:33:22ID:???
>>279
知的レベルが普通なら、1週間くらいで。
0281nobodyさん2008/10/05(日) 09:32:19ID:???
>>279
自分のペースでええやん。
俺なんかああいう人たちが苦労して切り開いた道を、すこーし後ろから付いていくだけだから。
まぁ追い抜きたいなら止めないけど。
0282nobodyさん2008/10/05(日) 13:41:01ID:???
CGI::Liteと
CGI:Minimalの
違いについてカンタンに説明してください。

ちなみにグーグルで検索しても
説明ページは出てきませんでした。
0283nobodyさん2008/10/05(日) 13:48:01ID:???
>>282
CPAN行って好きなだけ比較しろ
0284nobodyさん2008/10/05(日) 16:35:07ID:???
>>282
お気に入りに入れておくといいよ。
http://search.cpan.org/
0285nobodyさん2008/10/05(日) 18:28:09ID:???
>>282
おまえ、プログラミングに向いてないわ。
0286nobodyさん2008/10/05(日) 21:52:46ID:???
perlモジュールの検索のコツはありませんか?
モジュールたくさんあって、みなさんこれ全部把握してるんですか?
有名なところだけしか使わないんですか?
初心者ですみません
0287nobodyさん2008/10/05(日) 22:08:05ID:???
全部把握なんて無理無理w
それっぽいキーワードで検索して引っかかったもの使ったり
必要なところだけ切り出して使ったりしてるだけ

まぁ車輪の再発明と言われようが作ってみるのも悪くない。
0288nobodyさん2008/10/05(日) 22:09:47ID:???
検索のコツは「ほしい機能を英単語にして放り込む」とかじゃダメかね。
日本語でも「cpan 機能名」でググればけっこー見つかるけど。
0289nobodyさん2008/10/05(日) 22:11:33ID:???
>全部把握なんて無理無理w

安心しましたw
有名どころと使えそうなのが検索で出たら使う
って感じですかね
0290nobodyさん2008/10/05(日) 22:12:48ID:???
>「ほしい機能を英単語にして放り込む」

これ良いですね試してみます
0291nobodyさん2008/10/06(月) 04:55:13ID:???
>>286
CPANの一覧表に一通り読んで、「おお、こんなものがあるのかそんなものもある
のか」とおどろきつつ大まかなところを掌握しておく。

……というのをやったのはもう数年前だな。

もう増え過ぎて困難になってるかな。
0292nobodyさん2008/10/06(月) 08:23:17ID:mCk9rMM2
掌握
0293nobodyさん2008/10/06(月) 08:59:44ID:???
把握じゃなくて掌握してしまったのか
巨大な敵は陰に隠れるというが・・・
0294nobodyさん2008/10/06(月) 16:08:49ID:4zLyyJ4I
掲示板を作成していてhtmlのformから受け取ったものをデコードする関数、
書き込みの条件を満たしているかチェックする関数、ログに書き込む関数、
と分けて
#!usr/local/bin/perl
&decode;
✓
&writelog;
のようにしているのですがcheckからある変数を
受け取って他の関数内で使いたいとき皆さんはどうしてますか?
グローバル変数でやろうとするとどうしてもグローバル変数がかなりの数に
なってしまいますし、だからと言って($abc,$efg)=&xyz;
のようにしてしまうと無駄な変数が増えてしまうしlocalでやるのも
結局、グローバル変数使ってるのとあまり変わらないような気がします・・・
上記のように&decode;✓…のようなやり方自体がよくないでしょうか?
馬鹿みたいな質問ですみません。答えていただけるとありがたいです。
0295nobodyさん2008/10/06(月) 16:29:40ID:???
オブジェクト指向でやればいい

use MYLIB;
my $obj= MYLIB->new;
$obj->decode;
$obj->check;
$obj->writelog;
0296nobodyさん2008/10/06(月) 17:11:10ID:???
>>294
やり方は色々だけど。
hash(のref)渡しもあるね。
use Data::Dumper ;
my %hash = ( hoge => 1 , foo => 1 ) ;
sub hoge{ shift->{hoge} = q{hoge} ; }
sub foo { $_[0]->{foo} = q{foo} ; $_[0]->{piyo} = q{new} ; }
sub bar{ my $ref = shift ; $ref->{bar} = q{new} ; }
hoge \%hash ;
foo \%hash ;
bar \%hash ;
print Dumper \%hash ;
0297nobodyさん2008/10/06(月) 17:49:55ID:???
んー、構造体のようなものを作るのもアリなのかなあ……?
0298nobodyさん2008/10/06(月) 18:21:26ID:???
根本的にわかってない奴
0299nobodyさん2008/10/06(月) 18:23:54ID:mCk9rMM2
オールグローバルでいいじゃない。
掲示板くらい。
0300nobodyさん2008/10/06(月) 18:32:07ID:???
そのやりかたでやりたいのであれば、連想配列で渡すとか。
my %query = &decode;
my $error1 = &check(%query);
my $error2 = &writelog(%query);

まぁグローバル変数もわかってないんだろうけど。。。
0301sage2008/10/06(月) 20:36:18ID:5bsf/GRb
txtに書き込んである変数を呼び出しても使えないの?

*.txtの内容
<A href="../$page.html>リンク</A>

↓呼び出す

*.cgiの内容
$page = a;
$data[0]

txtの内容はちゃんと反映されてるのだが、
*.txtの中の$pageはそのまんま反映されてしまう。
(http://***/$page.htmlのまま)


どうしたもんか?
0302nobodyさん2008/10/06(月) 20:41:43ID:???
>301
もうちょっと推敲してから質問してくれ
0303nobodyさん2008/10/07(火) 01:05:04ID:???
偶然ですね。

別所ですが、ちょうど同じような質問が出されていたみたいですよ。
ttp://pc11.2ch.net/test/read.cgi/php/1218030872/301
0304nobodyさん2008/10/07(火) 01:05:59ID:???
ごば
0305nobodyさん2008/10/07(火) 01:07:19ID:???
( ^ω^)
0306nobodyさん2008/10/07(火) 01:48:33ID:YSCh74Wr
>>294です。お返事ありがとうございます。
正直皆さんの回答を見ても知識不足のためよくわかりませんでした・・・
>>299さんの言うとおり重さや綺麗汚い気にせずとりあえずグローバル使い
まくりで仕上げてみようと思います。答えてくださった皆さんありがとうございました。
0307nobodyさん2008/10/07(火) 11:22:00ID:???
>>305
進研模試でいうとfjがおよそ偏差値45、民放地上波は約40、
ニュース速報+は35程度を対象にしています。
0308nobodyさん2008/10/07(火) 12:38:56ID:???
成長しないタイプ
0309nobodyさん2008/10/07(火) 23:22:26ID:???
>>294
「データのリファレンスを受取って(デコード|チェック)済データのリファレンスを返す」ように各サブルーチンを書いておいて:

&writelog(&check(&decode));
0310nobodyさん2008/10/07(火) 23:46:05ID:???
チェックなんて何回もいらん
一回で済ませ
0311nobodyさん2008/10/08(水) 00:07:51ID:???
>>306
悪いこといわんから変数受け渡しで書いてみろ。
ハッシュ(参照)で受け取って、ハッシュ(参照)で渡せば、なんてことはない。

特に永続化環境(mod_perl等)ならグローバルを使うという発想はないと思ったほうがいい。
0312nobodyさん2008/10/08(水) 00:50:42ID:???
$hoge = 'http://yahoo.co.jp/?hoge=hoge&huga=huga';
$hoge = 'http://excite.co.jp/?hoge=hoge&huga=huga';
$hoge = 'http://goo.ne.jp/?hoge=hoge&huga=huga';
などの、ドメイン部分が不定な文字列を、すべて
$hoge = 'http://example.com/?hoge=hoge&huga=huga';
のように置換したいのですが、どんな置換をすればいいでしょうか?
0313nobodyさん2008/10/08(水) 01:07:08ID:???
s{(?<=http://)[^/]+}{example.com};
0314nobodyさん2008/10/08(水) 01:07:59ID:???
>>312
ヒント:置換演算子
s{http://[^/]+}{http://example.com};
0315nobodyさん2008/10/08(水) 01:14:40ID:???
>>313
後方一致検索というものを知りました、ありがとうございます。
>>314もどもです。
0316nobodyさん2008/10/08(水) 02:25:08ID:Ayb4NO8c
Perlなんて適当にくんだらいいんだよ
0317nobodyさん2008/10/08(水) 04:21:15ID:???
>>310->>311
上げ荒しの回答に納得する様な質問者には何を言ってもムダ。
例まで書いても参考にすらならんよ。
0318nobodyさん2008/10/08(水) 04:22:18ID:???
309だった。orz...
0319nobodyさん2008/10/08(水) 05:46:48ID:???
どうかどうかどなたかお願いします
ttp://oshiete1.goo.ne.jp/qa3380695.html
このサイトで質問してる人と同じ質問ですが、
クッキーは使わず、複数のドラッグできる画像の移動したデータを他の人も移動後の状態で閲覧できるようにしたいです。
掲示板のスクリプトを利用して全部保存すれば、元からロックも付いてて便利だと思ったのですが、
座標を渡すことが出来ないので困ってます。
現在HTMLにジャバスクリプトで簡単な形を作って試しているのですが、
どうにも、保存のところで何もアイデアが浮かばない。
一週間、暇な時間に検索して回ったのですが、
解決策には出会えませんでした。

ジャバスクリプトで移動できる画像ファイル(img1~img6等)とコメント部を各画像毎に対応させた名前のボタンをクリックすることで
コメントと画像ファイルを保存できるようにしたい。
何か知恵を貸してください。
0320nobodyさん2008/10/08(水) 05:57:55ID:vsHGNNNA
>>294です。グローバル変数はそんなに悪いものなのですか。
スクリプトが大きくなれば大きくなるほどスクリプト自体見づらくなるだろうし、
他人からすると見づらいかもしれませんが、無駄に変数作って無駄にメモリへの書き込み
増やすぐらいならグローバル変数使うほうがいいと思ってました。
変数の中身が同じ内容なら新しく書き込まず同じメモリを参照するということはないですよね?
皆さんが教えてくれた方法をいくつか試してやってみようと思います。
質問に答えてくださった方々ありがとうございました。
0321nobodyさん2008/10/08(水) 06:58:31ID:???
>>320
>>296のように、リファレンスで渡せばコピーは発生しないよ。
直接中身を弄れるから、returnで返す事も要らない。
0322nobodyさん2008/10/08(水) 10:04:27ID:???
>無駄に変数作って無駄にメモリへの書き込み

この考え方のが無駄
0323nobodyさん2008/10/08(水) 10:25:26ID:???
メモリのread/write負荷までちまちま気にして作らにゃならん「掲示板」って
どんなんだろうとは思う。
0324nobodyさん2008/10/08(水) 10:40:29ID:???
Cならもっとメモリ気にしてアロケートしていかないといけないからまだまし
0325nobodyさん2008/10/08(水) 16:11:59ID:KrA4Ywcm
>>321
そうなんですか。自分はパッケージ?(Data::Dumper)というのは触ったことないので
これを機会に触ってみようと思います。
>>322 >333
仮に完成しても人が来るかもわかりませんが仮に来てくれて書き込みがあった場合
1回の書き込みでテキストから100行ほどの文を3つの配列によみこんでまた書き込みしなければ
いけないので変数受け渡しでやるとすごい負荷になるんですよね。
しっかりした知識があれば1つの配列で収まるかもしれないし
それ以前に配列だけグローバル変数にすれば済む話ですが。
とりあえずできる限りローカル変数にしてみようと思います。
03262962008/10/08(水) 17:23:24ID:???
……Data::Dumper は単にデータをダンプする物です。
掲示板の機能とかには関係ありません。
>>296を全部コピペして、「コマンドラインから実行」してみてください。
%hash の内容が書き換っている事が分ります。
0327nobodyさん2008/10/08(水) 18:07:19ID:???
ある変数の値がおかしくなるバグが発生したとき、その変数を使ってる部分見直すことになる。
変数が一部分でしか使われていないなら、その使われている辺りを調べればいいけど、
グローバル変数の場合、最悪、全てのソースコードとにらめっこすることになる。

サブルーチンのテストするにしても、グローバル変数がどこで使われてるのか
分からないから、全ての変数を設定しないといけない。

そんな理由で、グローバル変数は定数ぐらいにして、捨てたほうが楽になるよ。
同じ理由で、一つのハッシュに詰め込みすぎるのにも注意してね。
0328nobodyさん2008/10/08(水) 18:20:31ID:???
>>319
掲示板と画像ドラッグを同列に扱うという感覚がよくわからない。
あるページに複数がアクセスしてるとき、誰が画像の主導権を握るの?
リアルタイムで動かすなら、Perlではどうにもならんから、AjaxとかASP.NETスレで訊いてみれば?
0329nobodyさん2008/10/08(水) 19:13:15ID:Ayb4NO8c
変数とかいうより、もっと大きな構造を考えた方がいい
いくら変数をローカルにしたところで、無駄な処理やループが大毛りゃ話になりません
0330nobodyさん2008/10/09(木) 00:02:38ID:???
>>328
書き込みボタンを押した時点で、ロックをかけようと思ってます
同時に何人かが動かし続けるような状態にはならないと思う
A 画像A
B 画像B
書き込みボタン

Aさんが画像を動かして書き込みボタンを押して変更したとき
Bさんは動かす前の画面のままで、画像を動かし書き込みボタンを押したら、Aさんは無視してBさんが動かした状態に更新されていいです

それか
A 画像A OK Clear
B 画像B OK Clear

こんな風に数行に渡ってかかれたものをOKボタンで座標と名前上書きでもいい
一人の人が一つのボタン、一つの画像と名前用テキストボックスを所有
Aが動かしたとき、Bがアクセスし動かしてても、ページはAが動かす前の状態
Aが動かし終わってAの画像座標を保存したとき、Bが見てるのはまだAが動かす前の状態
Bが動かしてOK押したとき、やっとBが見れるのはAもBも動いた後の状態
こんな風にできたらいいなと思ってます

Javaよりも、ジャバスクリプトとParlでできそうと思って・・・
ジャバスクリプト部分は完成してます
後はOKボタンでどう座標を保存するか・・

説明いまいちですか?
0331nobodyさん2008/10/09(木) 02:03:13ID:???
>>330
A,Bはそれぞれ自分専用の画像を動かすってこと?
ま、いいやw

座標をクエリ文字列にしてURLにして送信ってとこまではおk?
JSONにして送信してもいい。
基本的にJavascriptの質問な気がする。。。
0332nobodyさん2008/10/09(木) 02:40:00ID:???
>>331
レスありがとうございます
調べて、やってみます;
スレ違いかもしれなかったのに、どうもありがとう
0333nobodyさん2008/10/13(月) 00:56:20ID:Zn63xY/1
WordDecoderのunmimeメソッド文字化けについての質問です。
以下のようにデフォルトキャラセットをUTF8とし、メールを解析しているのですが、
MIME::WordDecoder->default(MIME::WordDecoder->new(['*' => sub {jcode(shift)->utf8},]));
my $body = unmime($entity->bodyhandle->as_string);

文字列「結構色々」の「構色」で文字化けが発生し、以降の文がおそらくアスキー文字の出現まで文字化けが続きます。
結=?'!9FI$・・・・・・・・というような文字列に文字化けしています。

もとの文字列(メールの原文ISO-2022-JP)をJcodeで直接UTF8にコンバートするとこのような文字化けは発生しません。
これは何が原因かわかる方はいらっしゃいますか?

unmimeはbase64エンコードされたメールなども処理するので、できれば使いたいのですが。
0334nobodyさん2008/10/14(火) 02:12:34ID:7R/mK8k7
ID晒して質問させていただきます。

PerlでApacheのnoteを取りに行くにはどうすればいいでしょうか?

test.cgi

#!/usr/bin/perl
print "Content-type: application/x-httpd-cgi\n\n";
my $r = Apache->request()->main();
my $name = $r->notes('name');
print $name;
exit(0);

参考元:http://jp.php.net/manual/ja/function.apache-note.php

取りに行くのに必要な条件、足りない記述などを教えていただきたいのです。
ファイル内の記述以外に、mod_perlが必要だとかはありませんか?

ご教授、よろしくお願いします。
0335nobodyさん2008/10/14(火) 10:26:02ID:???
そもそも use Apache::Request; が無いが・・・
0336nobodyさん2008/10/15(水) 13:00:34ID:???
perlでyyyy/mm/dd hh:mm:ssみたいな文字列から、timeで得られるような値を取得する方法ってありましたよね?
たしかモジュールで提供されてたと思いますが・・・
0337nobodyさん2008/10/15(水) 18:02:46ID:???
>>336
use Time::Local;

$time_str = "2008/10/15 17:54:32";

$time = timelocal sub{@_[5,4,3,2],$_[1]-1,$_[0]}->($time_str=~m!^(\d+)/(\d+)/(\d+) (\d+):(\d+):(\d+)$!);
0338nobodyさん2008/10/15(水) 18:03:45ID:???
モジュールならDate::Parserとかで探してみたらいい。
0339nobodyさん2008/10/15(水) 19:04:48ID:???
>>336
HTTP::Date
0340nobodyさん2008/10/15(水) 19:24:03ID:???
>>337-339
ありがとうございます。
助かりました m(_ _)m
0341nobodyさん2008/10/17(金) 17:00:00ID:M5nni1qD
プレースホルダを使用して、executeからバインド変数で値を送ると、
変数内の末尾のスペースが全て削られて、
実行されてしまうのですが、同様の事象を経験した人いませんか?
0342nobodyさん2008/10/18(土) 18:37:34ID:???
掲示板程度なら書けるようになったので、次の一歩として下記の本を読もうと思っているのですが、
8年前なので内容が古いのではないかと少し心配です。

この本は、今でも十分実用に耐えうる本でしょうか?

CGIプログラミング 第2版
http://www.oreilly.co.jp/books/4873110440/
0343nobodyさん2008/10/18(土) 20:18:21ID:???
>>342
Windows95の入門書のようなもんだと思います。
0344nobodyさん2008/10/18(土) 20:18:42ID:???
Perl自体がそろそろ古さが否めないような気がするけど、そうは思わないなら問題ないでしょ。
0345nobodyさん2008/10/19(日) 01:16:41ID:???
CGIを介してファイルをダウンロードするプログラムを作っています。
それで以下のソースのように、「test.mp3」というファイルを「2008.01.01.mp3」という風にリネームしてダウンロードしたいのですが…

#!/usr/local/bin/perl

$fname = "2008.01.01.mp3";
$mime = "Content-type: audio/mpeg\n\n";

print "Content-disposition: attachment; filename=\"$fname\"\n";
open(FILE,"test.mp3");
print $mime;
binmode(FILE);
binmode(STDOUT);
print <FILE>;
close(FILE);


この方法だと、何故か「2008[1].01.01.mp3」という風に、間に[1]という文字が挿入されてしまいます。
ドットが2回続くとこうなるみたいですが…
ちなみにIEだけでこうなるみたいで、OperaやFireFoxでは問題なくダウンロード出来ました。

もしIEで正常にダウンロードする方法があれば、どなたか教えて頂いてもよろしいでしょうか?
よろしくお願い致します。
0346nobodyさん2008/10/19(日) 02:12:01ID:???
ファイル名変えたほうがいい。変えて損はないと思うが?
0347nobodyさん2008/10/19(日) 02:14:25ID:???
最後の.以降しか拡張子みないのに
キャッシュは最初の.までしかファイル名としてみてないのか・・・
やっぱりあほだな>IE
0348nobodyさん2008/10/19(日) 06:32:58ID:???
ファイル名にドットとかスペースとかカンマとか演算子とか気持ち悪い

A-Za-z0-9_

な範囲でいこーぜ
■ このスレッドは過去ログ倉庫に格納されています