Perlコーディング初心者質問スレ Part 55
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/30(水) 11:34:01ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >>2-10
前スレ http://pc11.2ch.net/test/read.cgi/php/1171102883/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0066nobodyさん
2007/06/07(木) 11:08:49ID:???詳しくはGoogle参照。
0069nobodyさん
2007/06/07(木) 11:51:14ID:???0071nobodyさん
2007/06/08(金) 12:26:55ID:???0073nobodyさん
2007/06/10(日) 03:46:48ID:???0074nobodyさん
2007/06/10(日) 15:23:21ID:m8gOFHaOnmakeもnmake15もmingw32-makeを使ってもダメなんですが、
WindowsでCPANを使う時には何が主流ですか?
0075nobodyさん
2007/06/10(日) 21:30:37ID:c+ghO5Jd>本当に「001」って名前のディレクトリを使ってないと思うが、
>もし使ってるのなら用心した方がいいよ。
というのはどういう事でしょうか?
ディレクトリ名に番号を使用するとエラーになる(?)可能性があるとかでしょうか?
>>54じゃないですが、ちょっと気になったもので…
0076nobodyさん
2007/06/10(日) 22:59:35ID:???ヒント: Perl的には0で始まる"数字"は8進数
0078nobodyさん
2007/06/11(月) 17:47:01ID:???今レンタル鯖でLWP::Simpleを使って、cronを仕組んで、100以上のurlを早朝にgetしてパースしています。
uptimeの値を見ても、全くといっていいほど、負荷はかかっていないように思えるのですが、getするのに一番時間が
かかっているためなのか、スクリプトの実行から終了まで2分程度掛かっているようです。
一般論として、レンタル鯖でやってはいけない負荷の高いスクリプトの使用とは、何をもって判断すべきでしょうか?
また、LWPで100以上のurlを一気に取得することは非常識なのでしょうか?
0079nobodyさん
2007/06/11(月) 18:26:54ID:???0080nobodyさん
2007/06/11(月) 19:52:40ID:???個々については鯖に聞かないといけないのはわかるけど、このスレには自分で書いたスクリプトを
走らせてる人も多いと思うんだけど、これはヤバいかな?みたいな定性的な判断ってどうしてるのかな。
0081nobodyさん
2007/06/11(月) 20:01:33ID:???0082nobodyさん
2007/06/11(月) 20:46:11ID:???GD : 大変微妙
fork ; sine
こんな感じ
0083nobodyさん
2007/06/11(月) 22:01:55ID:???当方何も思いつきませんので、何か思いついた方がいらしたら教えて下さい。
【入力例】
前走の大敗がよく分からないが、引き続き毛ヅヤや馬体の
張り等は際立って良く見える。
【出力例】
見際体きいよ前
え立の毛がく走
るっ張ヅ、分の
。てりヤ引か大
良等やきら敗
くは馬続なが
、
実際は縦書き用の等幅フォントを使用します。
0084nobodyさん
2007/06/11(月) 22:57:17ID:???my $str = 'hogehoge,fugafuga,piyopiyo,barbar'x3 ;
my @word ;
my $cnt = 0 ;
for ( split //, $str ){
if ( $cnt == 10 and ! /^,$/ ){
push @{$word[10]}, q{ } ;
push @{$word[0] }, $_ ;
$cnt = 1;
next ;
}
push @{$word[ $cnt]}, $_ ;
$cnt == 10 ? $cnt = 0 : $cnt ++ ;
}
my $len = @{ $word[0] } ;
for my $line ( @word ){
push @{ $line }, q{ } if $len != @{ $line } ;
print join q{}, ( reverse @{ $line }) , "\n" ;
}
0085nobodyさん
2007/06/11(月) 23:01:51ID:???use warnings;
use utf8;
binmode STDOUT, ":utf8";
my $text = '前走の大敗がよく分からないが、引き続き毛ヅヤや馬体の張り等は際立って良く見える。';
my $wrap = 6;
my ($i, @cols);
for my $str (split //, $text ) {
unshift @{$cols[$i++]}, $str;
$i=0 unless $i % $wrap;
}
my $len = @{$cols[0]};
for my $col (@cols) {
if (my $space = $len - @$col) {
unshift @$col, (" " x $space);
}
print join("", @$col), "\n"
}
俺の無い知恵を絞った力作
0086nobodyさん
2007/06/11(月) 23:21:40ID:???0087nobodyさん
2007/06/11(月) 23:37:43ID:LQaHOZkBよろしくおねがいします。
メールフォームで添付ファイルをつけて送信されるようにしたいと
思っているのですが、添付されたファイルが全て1バイトになっていまいます。
考えられる原因は何でしょうか?
サーバーの一時フォルダ(temp)にアップロードされているファイルは0バイト
になっています。
どうぞよろしくおねがいします。
0088nobodyさん
2007/06/11(月) 23:38:11ID:???ありがとうございます。恐縮です。
後で試してみます。
>>86
もしかして禁則無いですか?
まぁアイデアは貰えたのでそのへんは己で何とかします。
0090nobodyさん
2007/06/11(月) 23:45:39ID:???0091nobodyさん
2007/06/11(月) 23:52:48ID:LQaHOZkBSubject: $B%5%$%H$NEPO?(B
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="abcdefghijklmnopqrstu"
--abcdefghijklmnopqrstu
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encording: 7bit
こんな感じになっています。
これはマルチパートになっているということでいいんでしょうか?
0092nobodyさん
2007/06/11(月) 23:54:50ID:LQaHOZkBprint MAIL "To: $mailAdd\n";
print MAIL "From: $custAdd\n";
print MAIL "Reply-To: $custAdd\n";
print MAIL "$mailTitle\n";
print MAIL "Mime-Version: 1.0\n";
if($filename){
print MAIL "Content-Type: multipart/mixed; boundary=\"abcdefghijklmnopqrstu\"\n\n";
print MAIL "--abcdefghijklmnopqrstu\n";
print MAIL "Content-Type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encording: 7bit\n\n";
} else{
print MAIL "Content-Type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encording: 7bit\n\n";
}
print MAIL "$body";
if($filename){
print MAIL "--abcdefghijklmnopqrstu\n";
print MAIL "Content-type:";
print MAIL &filetype($filename2);
print MAIL "Content-Disposition: attachment; filename=\"$filename2\"\n";
print MAIL "Content-Transfer-Encoding: base64\n\n";
print MAIL "$encodetenp\n\n";
print MAIL "--abcdefghijklmnopqrstu--\n";
}
close (MAIL);
ソースの方はこんな感じにしています。
ファイル名は正しく添付されているのですが、なにせ中身がありません・・・
よろしくおねがいします。
0093nobodyさん
2007/06/12(火) 09:41:54ID:???あんまり長いURLの場合は、URLを省略して表示させたいのですが、
どうすればいいのでしょうか?
例えば30文字以上のURLだったら、後半を省略してリンクさせる。
【例】ttp://www.yahoo.co.jp/ex…
-----------------------------
sub auto_link {
$_[0] =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\=\@\;\#\:\%]+)/$1<a href=\"$2\">$2<\/a>/g;
}
-----------------------------
0094nobodyさん
2007/06/12(火) 10:01:51ID:???その部分だけではなんともいえない。Perlプログラムがどうこうより、まずは
生成されたメールのソースをよく見て関連するRFCに照らし合わせて正しいか
どうか確認したほうがいいと思われる。
0096nobodyさん
2007/06/12(火) 10:28:43ID:???もとのURLの後半をcutしてから『…』くっつけて、
html出力するときにリンクタグではさめばいいだけじゃん
何を悩む必要があるのかわからないんですけど
0097nobodyさん
2007/06/12(火) 11:51:51ID:???俺は君の回答がさっぱりわからない。
cutしてからリンクタグだと、リンクの飛び先も…になるじゃない。
しかも>>93が言っている変換対象の変数にはURLがひとつというわけでもなさそうだし。
0098nobodyさん
2007/06/12(火) 12:40:01ID:???初心者にも程があるだろ
0099nobodyさん
2007/06/12(火) 12:43:17ID:???氏ね
$_[0] =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\=\@\;\#\:\%]+)/$1 . '<a href="' . $2 . '">' . (length $2 > 30 ? substr($2, 0, 30) . '…' : $2 ) . '<\/a>'/egx;
0100nobodyさん
2007/06/12(火) 12:44:13ID:???0102nobodyさん
2007/06/12(火) 13:12:38ID:???use String::Multibyte;
my $mcbs = String::Multibyte->new('shiftjis');
(my $str = <<"EOF") =~ tr/\r\n//d;
前走の大敗がよく分からないが、引き続き毛ヅヤや馬体の
張り等は際立って良く、見える。
EOF
my $length = 6;
my @array;
my @str = $mcbs->strsplit('', $str);
while(@str){
foreach(0..$length-1){
unshift(@{$array[$_]}, shift(@str) || ' ');
}
unshift(@{$array[$length]}, ($mcbs->strspn($str[0], '、。') ? shift(@str) : ' '));
}
foreach(@array){
print @{$_}, "\n";
}
# つか、乗り遅れた感。
>>92
一度、MIME::LiteやMIME::toolsとかモジュール使ってみて比較してみれば。
0103nobodyさん
2007/06/12(火) 13:25:10ID:???ふつーに変数2つとか配列とかハッシュとかに突っ込んで片方cutすりゃいいだけだろ
ソースもクソもねえよ
0104nobodyさん
2007/06/12(火) 13:25:13ID:???一度にやらない方が見通しがよいんじゃないか? 前半はJcodeのjfoldとか
使えばいいわけだし。
0105nobodyさん
2007/06/12(火) 13:43:40ID:???文字の切り分けは、どこかで一文字単位にしないといけないので、一度にsplitした方がいいように思う。
my @str = $mcbs->strsplit('', $str);
my @array;
# 一定の長さで区切って配列を作る
while(@str){
my $l = [map{shift(@str) || ' '}(1..$length)];
push(@{$l}, ($mcbs->strspn($str[0], '、。') ? shift(@str) : ' '));
push(@array, $l);
}
# 縦横を変える
my @array2;
for my $i (0..$length){
push(@array2, [reverse map{$array[$_]->[$i]}(0..$#array)]);
}
foreach(@array2){
print @{$_}, "\n";
}
0107nobodyさん
2007/06/12(火) 13:51:06ID:???0108nobodyさん
2007/06/12(火) 13:54:55ID:???0110nobodyさん
2007/06/13(水) 07:53:10ID:???0111nobodyさん
2007/06/13(水) 09:14:14ID:???0112nobodyさん
2007/06/13(水) 18:24:42ID:???文字列だと1000文字まで、数値だと100桁まで...等
検索してもそれらしい情報が見つかりません…。
0113nobodyさん
2007/06/13(水) 18:59:02ID:???0114nobodyさん
2007/06/14(木) 19:22:36ID:???一定文字数を越えると文字化けしてしまう。。
誰かこの文字化けが何系の文字コードか分かる方います??
$"$($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($3$3$G2~9T$*$*$*$*$*$*$*$*$*$*$*$*$
0115nobodyさん
2007/06/14(木) 19:39:52ID:???そんな風に出るわけねーと思うけど
0116nobodyさん
2007/06/14(木) 19:52:43ID:???ヘッダに
Content-Transfer-Encoding: 7bit
を付加してみましたが結果変わらず。。
途中までは普通に文字が表示されてるんだけど途中から急に上みたいな文字列になってしまう。
メール分を生成してるところで本文が入っている変数をDumpしてみたけど
そこは特に文字化けも無く全ての文字が正常に格納されている状態。。。
メールのヘッダとかその辺の設定しか考えられる余地が無いのだけど、うーん。。。
0117nobodyさん
2007/06/14(木) 19:55:49ID:???見るからにJISのひらがなあたりだろ。EUCのMSB落ちかもしれない。
とりあえず頭にESC-$-B補ってnkfに食わせたら
あえええええええええええええええええええええええええええええええええええここで改行おおおおおおおおおおおお
と出ました。
0118nobodyさん
2007/06/14(木) 20:01:39ID:???>頭にESC-$-B補ってnkfに食わせたら
この部分がさっぱりですがググリながら実装方法を調べてます。
感動しましたw
0119nobodyさん
2007/06/14(木) 20:07:49ID:???0120nobodyさん
2007/06/14(木) 20:10:02ID:???0121nobodyさん
2007/06/14(木) 20:11:35ID:???わらたw
0122nobodyさん
2007/06/15(金) 09:18:42ID:???0123nobodyさん
2007/06/15(金) 10:00:59ID:???$content = <FH>;
$content or die;
close(FH);
みたいに、closeする前に終了する(可能性がある)のはあまりよろしくないでしょうか?
0124nobodyさん
2007/06/15(金) 10:09:53ID:???0126nobodyさん
2007/06/15(金) 23:57:47ID:???0127nobodyさん
2007/06/16(土) 02:33:58ID:???0128nobodyさん
2007/06/16(土) 03:01:26ID:???0129nobodyさん
2007/06/16(土) 03:12:20ID:???0131nobodyさん
2007/06/16(土) 04:25:42ID:???or のあとにブロック書ける?
0132nobodyさん
2007/06/16(土) 05:43:36ID:???0133nobodyさん
2007/06/16(土) 05:46:41ID:???こんな高い位置にブロック書くの?
ちょっと書いてみて。
sub error
{
my($str) = @_;
print $str;
exit;
}
sub main
{
open(FILE, "< uso.txt") or &error("そんなファイルないよ");
my @lines = <FILE>;
close(FILE);
$#lines < 0 and &error("中身ないよ");
# 以下略
}
はースッキリ快適。
0134nobodyさん
2007/06/16(土) 09:51:02ID:???「 can か cannot」かって聞かれて(と判断して) can と答えたんじゃね?
実際やるか とは別でしょ。
0136nobodyさん
2007/06/16(土) 12:43:25ID:???0137nobodyさん
2007/06/16(土) 13:49:35ID:???この板らしいっちゃらしいな
0138nobodyさん
2007/06/16(土) 17:06:40ID:???0139nobodyさん
2007/06/16(土) 17:39:20ID:???長らくの御愛顧ありがとうございました。
ttp://www.ayni.com/perldoc/
--完--
0140nobodyさん
2007/06/16(土) 17:51:06ID:???あ、ム板の方は高レベルなので残して置いて下さいね^^
0141nobodyさん
2007/06/16(土) 17:53:36ID:???どこにでも5.6以上のPerlが置いてあるなんて考えるのは甘い。
0142nobodyさん
2007/06/16(土) 18:25:16ID:???0143nobodyさん
2007/06/16(土) 18:25:26ID:???0144nobodyさん
2007/06/16(土) 18:36:36ID:???前スレの終わり辺りから何かあると盛んに出てくるけど
0145nobodyさん
2007/06/16(土) 18:50:25ID:???ttp://pc11.2ch.net/test/read.cgi/tech/1173880452/
2chか。レベル高いってネタだよね?
105 デフォルトの名無しさん [sage] Date:2007/03/22(木) 22:45:19 ID: Be:
HTTP 500 - 内部サーバー エラー です
106 デフォルトの名無しさん [sage] Date:2007/03/22(木) 22:48:42 ID: Be:
なんでブラウザにエラーが出るわけ?
↑
いやApacheの設定なんですけどね…
前スレの終わりでuse Benchmark;使ったら全員で猿のようにベンチマーク。
未だに。2chばかり見てるとますますバカになるよ。
0148nobodyさん
2007/06/16(土) 21:08:54ID:???0149nobodyさん
2007/06/17(日) 00:01:52ID:???Win (no cygwin) + lighttpd + FastCGIでPerl 5.8を動かしたいのですが、ppmで引っかかりませんでした
0150nobodyさん
2007/06/17(日) 10:35:59ID:???Win32 PPM packages for "ExtUtils-Embed"
trouchelle.com Perl 5.8 repository [ v 1.14 ]
0151nobodyさん
2007/06/18(月) 00:25:21ID:k4WptDOcどうしたらよいでしょうか?
MovableTypeやWordPressのメール投稿のようなイメージです。
mail@hoge.comに送信して、www.hoge.comのCGIで
その投稿内容を読むといった感じです。
PerlでPOPクライアントを書いて、内容を取得して、
それをcronで回すくらいしか思いつかないのですが、
cronを回せるレンタルサーバも少ないですし、
回せても1時間毎くらいがせいぜいだったりしますし。
0152nobodyさん
2007/06/18(月) 00:46:35ID:???0153nobodyさん
2007/06/18(月) 05:55:05ID:???152 みたいなバカは死ぬとよい。
0156nobodyさん
2007/06/18(月) 06:45:55ID:???0157154
2007/06/18(月) 07:36:43ID:???まぁ、そうくるだろうと思ったよ。マジレスすると152は漏れじゃない。
信じなくても良いけど、>>153を援護すればする程、>>151の質問に
答える奴はいなくなるよ?(w
0158nobodyさん
2007/06/18(月) 07:57:34ID:???0159nobodyさん
2007/06/18(月) 08:46:27ID:???0160nobodyさん
2007/06/18(月) 09:05:53ID:???答える能力はないが煽っていますということ?
0161nobodyさん
2007/06/18(月) 09:30:18ID:???他のメールサーバーでも同じことはできるかと思う
0162nobodyさん
2007/06/18(月) 13:27:43ID:???0163nobodyさん
2007/06/18(月) 13:29:32ID:???それがどうしたの?
0164nobodyさん
2007/06/18(月) 13:59:19ID:???それがどうしたの、と言われましても…
ここはPerl"コーディング"質問スレな訳ですし。
ロジック的なことを聞きたいのならば、
この板にも適切なスレッドがありますし、
更に深い内容ならUNIX板とかに行けば良いでしょう。
しかし、そのロジックを理解した上でのコーディングに関する
質問はスレ違いではありませんが、レベル的に
"自分で考えれば分かる"程度なので、処理をアシストする
モジュールくらいしか案内出来ないでしょう。
少なくとも 151 の書き込みを読む限りでは。
■ このスレッドは過去ログ倉庫に格納されています