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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/03/01(水) 15:39:31ID:???
Perlのコーディングで困ってる人のスレです。 

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

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

最低でも1と3が無いと誰も答えられないよ。 
ソース貼る時は、全角スペースでインデント忘れずに。 
良い回答は良い質問から。一緒に勉強しましょう。 

過去ログやお勧めサイトは >>2-10 
0482nobodyさん2006/04/03(月) 21:04:04ID:???
毛蟹ワロタwwww
0483nobodyさん2006/04/03(月) 22:31:17ID:???
毛蟹っていう微妙なリアルさが良いなw
04844752006/04/03(月) 22:40:14ID:OQWMmdli
すいません。>>475はデコードの部分貼り付けちゃいました。
>>479
参考になるサイトを教えていただきありがとうございます。
"蟹"はsjis16進で"8a49"
49はASCIIで"I"だから・・・
ということですね。

てか、自分が悩んでいる内容が全然別のことだと気付きました。
申し訳ないですが、もう一度質問させてください。

Jcodeの質問です。5.6なので、Encodeモジュールが使えません。
当方、スクリプトの文字コードはUTF-8で書いてますが、
use URI::Escape;
my $str = uri_escape(jcode("毛蟹")->sjis);
print $str;
の結果は
%E3%AD%9B%E8%9F%B9
となってしまいます。

試しに
print getcode($str);
をしてみると、空文字?が返ってきます。
print getcode("毛蟹");も空文字が返ります。
print getcode("毛蟹じゃあ!");は、utf8が返ります。

文字コードの変換がきちんとおこなわれていないようなのですが、
"毛蟹"をきちんとsjisへと変換させる方法はないでしょうか?

ちなみに、さっきから毛蟹毛蟹言ってますけど
その文字列はユーザが入力する文字列と考えてください。
04854752006/04/03(月) 22:41:23ID:OQWMmdli
↑
use Jcode;
が抜けてました
0486nobodyさん2006/04/03(月) 23:07:47ID:???
>>484
use URI::Escape;
use Jcode;

my $convstr = '毛蟹';
my $str = uri_escape(jcode($convstr,'utf8')->sjis); # icodeを指定する

print uri_escape($convstr),"\n"; # %E6%AF%9B%E8%9F%B9
print $str; # %96%D1%8AI

まだ「毛蟹」で笑ってる自分が嫌です。
04874752006/04/03(月) 23:36:11ID:???
>>486
そんなオプションがあったのですね!
完璧です。ありがとうございました。
0488nobodyさん2006/04/03(月) 23:40:37ID:???
問題解決したトコで、毛蟹にこだわった理由を2行でw
0489nobodyさん2006/04/03(月) 23:51:28ID:???
毛蟹、タラバなどの取引量、価格情報等を取り扱うwebサービスからデータを随時取得して
向こう1週間のおかずを決めるアプリを開発中なためです。
0490nobodyさん2006/04/03(月) 23:52:20ID:???
そんなに毛蟹食いたいんだな
つ【\20000】
04914602006/04/03(月) 23:53:46ID:???
>>471
PurePerl版でパソコンの上で動かせるようにはなりました。
プログラムの別の部分ですが、再帰呼び出しというのも便利で、勉強になりました...
ありがとうございました。
0492nobodyさん2006/04/03(月) 23:55:29ID:???
ちょっと待って! カニカマには毛蟹はいってないよ!
0493nobodyさん2006/04/04(火) 00:09:48ID:???
カニカマはフランスで大人気なのを知ってるか?
ばかにすんなよ!
0494nobodyさん2006/04/04(火) 00:29:28ID:???
ネカマは2chで大人気なのを知ってるか?
ばかにすんなよ!
0495nobodyさん2006/04/04(火) 00:32:56ID:???
改変するならもっと面白く改変しようぜ。
0496nobodyさん2006/04/04(火) 01:01:34ID:???
レンタルスペースにあげたら動くのに
AN HTTPで試したら500エラーてどういうコトなんだろうか('A`)
文字コード・Perlパス いろいろ試してすでに2週間・・・
0497nobodyさん2006/04/04(火) 01:30:52ID:???
エラーメッセージも書きませんかそうですか
0498nobodyさん2006/04/04(火) 01:47:10ID:???
ページを表示できません
検索中のページには問題があるため表示できません。

--------------------------------------------------------------------------------

次のことを試してください:

127.0.0.1 ホーム ページを開き、 必要な情報へのリンクを探してください。
[更新] ボタンをクリックするか、後でやり直してください。

[検索] ボタンをクリックして、インターネット上の情報を検索してください。
関連したサイトの一覧 も表示できます。

HTTP 500 - 内部サーバー エラー
Internet Explorer


しか出ないんだ ごめん(´・ω・`)
トレースのログ 晒したらわかるかな?
0499nobodyさん2006/04/04(火) 01:51:42ID:???
<<< s=444: Tue Apr 04 01:49:26 2006 <<<
GET /cgi-bin/uhouho.pl HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: 127.0.0.1
Connection: Keep-Alive

>>> s=444: Tue Apr 04 01:49:26 2006 >>>
HTTP/1.1 500 Server Error
MIME-Version: 1.0
Server: AnWeb/1.42n
Date: Mon, 03 Apr 2006 16:49:26 GMT
Content-Type: text/html
Content-Length: 196

<HTML><HEAD><TITLE>Error </TITLE></HEAD>
<BODY>
<H1>Error 500</H1>
CGI エラー - CGIを実行できません <HR><ADDRESS><a href="http://www.st.rim.or.jp/~nakata/">AnWeb/1.42n</a></ADDRESS>
</BODY></HTML>
0500nobodyさん2006/04/04(火) 01:56:50ID:???
>>496
落ち着いて↓これ読んで試してください。>>498-499みたいのは貼られても困る。
http://pc8.2ch.net/test/read.cgi/php/1104624784/2

Un*x→Winだったらsymlinkとかでばくばくコケるのかな。
0501nobodyさん2006/04/04(火) 01:58:39ID:???
>>500
119番の応対みたいでワロタ
0502nobodyさん2006/04/04(火) 03:19:49ID:???
>>500
スマソ あんまこの板こないからよくわからんけどスレ違いだったかな(´・ω・`)
もう一度 落ち着いて試してみる �d
0503nobodyさん2006/04/04(火) 09:52:27ID:???
ここは毛蟹スレですよ
0504nobodyさん2006/04/04(火) 13:19:03ID:???
ファイルを作成して指定した日に削除するプログラムを作りたいんですが
どうしたらorz










(´・ω・)がいしゅつ?
0505nobodyさん2006/04/04(火) 13:25:40ID:???
>>504
いろいろとやり方はあるだろうけど、もっと、用途というか、
どういう環境でどんなふうにやりたいかとか詳しく書いた方が答えやすいかも。
0506nobodyさん2006/04/04(火) 13:47:30ID:???
ファイル作成まで含めるのか
削除する日付はどう指定するのか
0507nobodyさん2006/04/04(火) 14:05:40ID:0uJ/AX+F
CGI(Perl)でフォームメールを扱っているんですが、
ごく一部のユーザーからのフォームデータが欠けているのです。

そのうちの一人と連絡がとれ、そのユーザーがMacユーザーである事が確認できました。
Macユーザーのフォームデータは受け取れないというような事例はあるのでしょうか?

コードはS_JISで書いてます。
0508nobodyさん2006/04/04(火) 14:12:43ID:???
うんこなブラウザがあるということは聞いています。
0509nobodyさん2006/04/04(火) 14:44:06ID:???
safari
05105072006/04/04(火) 15:32:54ID:0uJ/AX+F
解決しました。ありがとうございました。
0511nobodyさん2006/04/04(火) 15:33:23ID:???
そういや昔のケータイでアンダースコアを含んだ名前だと送信できねえってのがあったな。
0512nobodyさん2006/04/04(火) 15:33:29ID:???
>>507
STDINの中身ダンプしてみたら?
0513nobodyさん2006/04/04(火) 16:09:53ID:???
>>498
いろいろ考えられるけど、

1. そもそもCGI不許可の鯖
2. 特定のディレクトリに置かないと動かない(例:cgi-bin等)
3. .htaccess ファイルの記述ミス。ちゃんとCGI実行されるようにする。
4. スクリプトファイルの文字コードがsjis になっちゃってたりする。eucにする。
5. perl インタプリタのパスが間違っている。1行目を見直す。
6. 出力で、最初に"\n"を出力していない。
7. パーミッションの設定ミス。701、755等にしてみる。

まぁ、自宅鯖で動いているなら 6 はなさそうかな。
まず、以下のようなごくシンプルなスクリプトで試してみ。

---
#!/usr/bin/perl
print "\nOK!";
0514nobodyさん2006/04/04(火) 18:33:02ID:???
多次元配列なんですけど、途中で数字でなく文字列を使うようにすることは可能でしょうか?

$a = $array[0]{abc}[1];

数字だけならこんな↓感じの代入でできたんですけど。

@array = ( [ ["a", "b"], ["c", "d"] ],
[ ["e", "f"], ["g", "h"] ],
[ ["i", "j"], ["k", "l"] ],
[ ["m", "n"], ["o", "p"] ] );
0515nobodyさん2006/04/04(火) 18:48:07ID:???
ヒント:リファレンス
0516nobodyさん2006/04/04(火) 20:46:17ID:???
>>513
こんなとこで油売ってないで、今日納期のやつ仕上げろよ。
0517nobodyさん2006/04/05(水) 06:02:50ID:???
>>514
普通にハッシュ使えばいいのでは?

my @array = (
{abc=>[1,2,3], def=>[4,5,6]},
{abc=>[7,8,9], def=>[1,2,3]},
);

http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perldsc.html
0518nobodyさん2006/04/05(水) 09:05:23ID:???
>>517
サンクス。
0519nobodyさん2006/04/05(水) 19:24:19ID:???
use Fcntl;
このモジュールの宣言をしないとflockは使えないんですか?
宣言無しでflockの1,2,8使えてるのは
evalでトラップされてるからなのでしょうか?
0520nobodyさん2006/04/05(水) 19:45:46ID:???
flock FH, 2; # 数字を使う場合は「use Fcntl;」は不要。
flock FH, LOCK_EX; # 定数を使う場合は「use Fcntl;」が必要。

宣言無しでflockの1,2,8が使えてるのは、定数を使ってないから。

0521nobodyさん2006/04/05(水) 20:11:28ID:???
>520
ありがとうございます。

調べても分からなかったんですが、
定数を使うと何か他の処理ができるようになるんですか?
0522nobodyさん2006/04/05(水) 20:36:20ID:???
> 定数を使うと何か他の処理ができるようになるんですか?

はつみみです。
0523nobodyさん2006/04/05(水) 20:49:31ID:???
>>521
定数を使うと移植性が高くなるだけで、処理内容は同じですよん。
0524nobodyさん2006/04/05(水) 20:59:48ID:???
> 定数を使うと移植性が高くなるだけで、

だけ?
0525nobodyさん2006/04/05(水) 21:13:52ID:???
どき!
0526nobodyさん2006/04/05(水) 21:28:35ID:???
レベル低いな〜
webprog行けよ・・・
って思ってたらここがwebprog板だった
0527 ◆aiY4htt2.2 NGNG
>>526
わろす♪
05285212006/04/05(水) 21:38:06ID:???
>523
そうですか。
ありがとうございました。



>519でモジュールと言いましたがプラグマの間違いです。
0529nobodyさん2006/04/06(木) 05:19:58ID:???
プラグマなん?

package Fcntl;

=head1 NAME

Fcntl - load the C Fcntl.h defines

=head1 SYNOPSIS

use Fcntl;
use Fcntl qw(:DEFAULT :flock);

=head1 DESCRIPTION

This module is just a translation of the C F<fcntl.h> file.
0530nobodyさん2006/04/06(木) 09:03:53ID:???
Fcntlは明らかにモジュール。

プラグマは「useするとプログラムの挙動が変わるモジュール」のことだからの。
0531nobodyさん2006/04/06(木) 12:47:22ID:???
>530
それなら両方正解か
0532nobodyさん2006/04/06(木) 13:06:07ID:???
プラグマ名は小文字から始まるんじゃなかったっけ…?
0533nobodyさん2006/04/06(木) 13:36:04ID:???
プログラマはwarningsとかstrictだぬぁ。
0534nobodyさん2006/04/06(木) 13:36:42ID:???
そこで5.8.8で追加されたperlglossaryですよ。
ttp://search.cpan.org/~nwclark/perl-5.8.8/pod/perlglossary.pod

・プラグマ
実用的なヒントや指示がコンパイル時に受け取られる(時に無視すれる)標準モジュールです。
プラグマは全て小文字で命名されます。

で、訳あってる?英語苦手だから自信ない(´・ω・`)
0535nobodyさん2006/04/06(木) 15:14:11ID:???
>>533
!!!
0536nobodyさん2006/04/06(木) 18:12:22ID:9PXV35kY
perl書いたり編集したりしているとき、スクロールして
場所探すのが大変です
これを部分部分に分けてタブで切り替えて作業するとか、
そういうのありませんかね?

あったら便利だなぁと思ったもので
0537nobodyさん2006/04/06(木) 18:15:20ID:???
>>536
Perl書くのにどんなエディタ使ってる?
http://pc8.2ch.net/test/read.cgi/php/1014357485/

色々ある
0538nobodyさん2006/04/06(木) 22:07:28ID:???
質問です。
掲示板の今見ているレスから10件前のを表示させようと思ったのですが、
「自分の今見ているところを取得して、そこから10件引いたリンクをつくる」(当たり前のことですが)まで考えました。
ですが、自分の今見ているレス(何番から何番)を「取得するにはどうしたらいいのでしょうか?
0539nobodyさん2006/04/06(木) 22:16:28ID:???
>>538
言葉どおりに捉えるなら、「自分が今見ているレス」なんて分かるはずもなく。
むしろ「自分が今見ているレス」をどうやって指定するかがミソ。
指定できれば、あとは10件遡るだけですね。
こういうのは決まったやり方があるわけじゃなくてアルゴリズム次第なんで
考えるのが面倒くさいとか分からないとかのレベルじゃPerlに限らず何にも作れません。
0540nobodyさん2006/04/06(木) 22:20:49ID:???
それは既製品を改造しようとしてるのか
まだ構想段階でその機能を付けようと思ったのか
0541nobodyさん2006/04/06(木) 22:27:55ID:???
>>539
そうだったんですか・・。
すみませんでした。ありがとうございました。
>>540
一応配布されているのを改造しようと・・。

2ちゃんねるとか他のをみていると
スレ一覧からスレを見るとスレ番/|10で、前を押すと/988-998とかになっているので、簡単にできるのかなーと思ってました。
0542nobodyさん2006/04/06(木) 22:40:35ID:???
>>538
例えば「20〜30を表示」してる時に、そこに「10〜20を表示させるリンク」を仕込めるのは自明。
改造という視点なら>>2
0543nobodyさん2006/04/06(木) 22:44:59ID:???
11件表示とは変わってるな
0544nobodyさん2006/04/06(木) 22:48:15ID:???
>>542
改造は別でしたか、すみませんでいsた。調べてみます。
情報ありがとうございました。

>>543
あれ・・・?たしかに・・。

0545nobodyさん2006/04/07(金) 03:14:09ID:???
2進数のExcluslveOR計算をPerlで行うことは可能でしょうか。
具体的には、

1010 1000 0001 0011
1100 1101 1000 1110
---------------------
0110 0101 1001 1101

こういった計算ができないかということでございます。
ご教示いただけますと幸いです。
0546nobodyさん2006/04/07(金) 03:41:32ID:???
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2005-32,GGLG:ja&q=XOR+perl

とりあえずしね。
0547nobodyさん2006/04/07(金) 17:48:12ID:???
Perlで画像を結合するにはどうしたらよいのでしょうか
教えてください
0548nobodyさん2006/04/07(金) 19:27:23ID:???
>>547
gifcatで検索

>>504です。レス遅れてすいません

テキストをフォームに書いてそれをアップロードするという内容なんですが
そのアップロードしたテキストを30日後に削除したいんです
0549nobodyさん2006/04/07(金) 19:28:28ID:???
>>547
gdでもimでも好きなの使えや
0550nobodyさん2006/04/07(金) 19:32:03ID:???
perlで最大7元くらいの連立一次方程式を解きたいと思っています。
調べてみたのですがコードを載せている所が見当たらなくて...
よろしくお願いします
0551nobodyさん2006/04/07(金) 19:45:56ID:???
>>550
アルゴリズムが知りたいのかすぐに使えるコードが知りたいのかどっちだ?
05525502006/04/07(金) 19:53:52ID:???
おそらく、既にある程度定式化された事だと思うので、
コードを教えていただくのが早いと思ってます。
コードが分かればアルゴリズムは自分で解析できると思います。
0553nobodyさん2006/04/07(金) 20:15:40ID:???
なにもPerlでそんな連立方程式を解かせる事は無いような…。
本だか雑誌だかはあるはずだよ。数学系に特化したやつ。
コードはCだったような気がするけど。
0554nobodyさん2006/04/07(金) 20:26:44ID:???
>>548
どうもありがとうございます。

>>549
gdとimというものを使用した画像連結例などございましたらご教示ください
0555nobodyさん2006/04/07(金) 20:37:03ID:???
>>554
Image::Magickでぐぐる
0556nobodyさん2006/04/07(金) 20:52:13ID:???
KENTさんのスクリプトにあったのですが、以下に出てくる *_ って何を表しているのですか?

foreach ( split(/\n/, $mbody) ) {
&jcode'convert(*_, 'jis', 'sjis');
print MAIL $_, "\n";
}
0557nobodyさん2006/04/07(金) 21:00:14ID:???
>>556
型グロブだがいまどきそんな古いもの覚えてもしょうがないと思うぞ...
0558nobodyさん2006/04/07(金) 21:05:39ID:???
>>556
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perldata.html#Typeglobs_and_Filehandles
http://mikeneko.creator.club.ne.jp/~lab/kcode/jcode.html#h2-2
0559nobodyさん2006/04/07(金) 21:17:32ID:???
>>557-558
ありがとうございます。
0560nobodyさん2006/04/07(金) 21:19:43ID:???
すみません、もう一つお願いします。
この型グロブというのを使わないとすれば、>>556はどのような記述にすればいいのでしょうか?
0561nobodyさん2006/04/07(金) 21:23:12ID:???
知らないが・・・リファレンスで渡すと思う・・・たぶん・・・おそらくは・・・
0562nobodyさん2006/04/07(金) 21:30:33ID:???
型グロブでなくリファレンスで書いても動くでしょう、という話でなくて、
jcode.pl自体が古いんですよ。

この辺を読んでおくといいのかな?今はどうするもんなのかについても触れられてるよ。
ttp://openlab.jp/Jcode/index-j.html
0563nobodyさん2006/04/07(金) 21:31:00ID:???
>>555
モジュールがあるのですね。ありがとうございました。
gdとはどのように使えば宜しいのでしょうか
0564nobodyさん2006/04/07(金) 21:36:51ID:???
>>552
連立一次方程式といえば行列が思い浮かぶな。
ttp://search.cpan.org/~ulpfr/Math-Matrix-0.5/Matrix.pm
use Math::Matrix;
my $m = Math::Matrix->new(
[ 1, 1, 1, 6], # x + y + z = 6
[ 2, -1, 4, 12], # 2x - y + 3z = 9
[ 5, 6, -5, 2], # 5x + 6y - 5z = 2
);
print $m->solve();
こっちのほうにはあまり詳しくないから一般的な解き方は知らん。スマン。
0565nobodyさん2006/04/07(金) 21:39:23ID:???
>>561-562
サンクス。
0566nobodyさん2006/04/07(金) 21:48:25ID:???
>>563
GDもモジュール
ぐぐれ
0567nobodyさん2006/04/08(土) 01:15:57ID:???
>>566
ありがとうございます。
ぐぐってみます
0568nobodyさん2006/04/08(土) 01:42:34ID:???
画像を連結じゃなくて、画像を重ねるときはどうしたらいいでしょうか。
0569nobodyさん2006/04/08(土) 01:51:51ID:???
ぐぐれ。
0570非5682006/04/08(土) 01:55:19ID:???
ImageMagickは本家のところしか今まで見てなくてコマンドラインが分かりにくいなと思ってたが
日本語で解説してるとこのほうがはるかに内容充実してるんだな
先にこっち見ればよかった

perlと関係ないけど
0571nobodyさん2006/04/08(土) 08:25:36ID:???
>>570
いいの紹介、サンクス。
05725502006/04/08(土) 23:38:24ID:???
有り難うございます。
>>553
perlスクリプト中で方程式の解が必要になってくるんです。
perl以外の言語で探すとひとまず見つかりました。
本の方も調べてみます。
>>564
行列の方は目に入っていたのですが、時間がかかるという話を読んで避けていました。
実際の所どうなんでしょう?
0573nobodyさん2006/04/08(土) 23:41:36ID:???
> perlスクリプト中で方程式の解が必要になってくるんです。

外部コマンド呼ぶなり、ライブラリ使って XS 書くなり...
0574nobodyさん2006/04/09(日) 18:45:31ID:yjpSMuEB
変数値を変数名にする方法ってありますか?
たとえば$test = "filename";
という変数をみて
$filenameという変数を作成したいのです。
$$testです。
エスパーの方お願いします。
0575nobodyさん2006/04/09(日) 18:48:13ID:???
次の質問どうぞ
0576nobodyさん2006/04/09(日) 18:48:53ID:???
>>574
いきなりエスパーを求めるなよ。つかエスパーじゃなきゃわからん質問をしようとするなよ。
${$test}
05775742006/04/09(日) 19:02:04ID:???
>>576
ありがとう!!できたよー。

本当に有難うございます。
0578nobodyさん2006/04/09(日) 19:11:41ID:???
>>576はエスパー
0579nobodyさん2006/04/09(日) 20:04:09ID:???
自分で書いてる$$testでも正解だったわけだが...
0580nobodyさん2006/04/09(日) 20:19:36ID:???
いい釣り堀ですね
0581nobodyさん2006/04/09(日) 20:51:51ID:???
>>579
ミスに繋がるからお勧めはできんがな。
ていうかそもそも変数名を変数にしようという時点で(ry
■ このスレッドは過去ログ倉庫に格納されています