2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :nobodyさん:2010/06/05(土) 21:11:10 ID:???
Perlのコーディングで困ってる人のスレです。

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

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

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

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1251989472/

2 :nobodyさん:2010/06/05(土) 21:11:34 ID:???
[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: ttp://www.site-cooler.com/kwl/perl/

[本]
リャマ: ttp://www.oreilly.co.jp/books/4873111269/
駱駝: 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://perldoc.perl.org/
perl5.8.xのドキュメント(一部): ttp://www.kt.rim.or.jp/~kbk/perl-5.8/
perldoc きまぐれ訳: ttp://fleur.hio.jp/perldoc/
perldoc.jp: ttp://www.perldoc.jp/

[モジュール]
CPAN: 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

[Perl5.8Unicodeメモ]
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html

3 :nobodyさん:2010/06/05(土) 22:24:44 ID:???
>>1
と、前スレ993
>&send_item2() の第1引数で $m を渡してるのに、第3引数で $m の中身の一部分を送ること自体が無駄。
$m と、 %m は別物だ。
第三引数 $m{wea} とかは明かに、ハッシュの値だ。$m と混同すんな。


4 :nobodyさん:2010/06/05(土) 22:44:10 ID:BPQlnKOc
レファレンスがわからなくて疲れてるオイラにどなたか応援の一声をノタム。(;´Д`)

5 :nobodyさん:2010/06/05(土) 22:53:46 ID:???
つ[ユンケル]

6 :nobodyさん:2010/06/05(土) 23:37:59 ID:WMYKbA0D
>>4
わからないのは何がわからないの?

7 :nobodyさん:2010/06/05(土) 23:43:44 ID:???
リファレンス=オブジェクトの理解で乗り切った

あとデリファレンスって言葉がこの先頻出してくると思うが、
これがメンバ変数にアクセスする行為そのもの

実際、この先出てくるであろう、オブジェクトでもリファレンスを使って
実装されてる

8 :nobodyさん:2010/06/05(土) 23:48:40 ID:???
(;><)

9 :nobodyさん:2010/06/06(日) 00:26:23 ID:???
リファレンスとか文字で言われると分からないが、説明を読むと多用してることに気が付いた。
でも改めて説明されても分からないwww


$cnofig = {
  'array' => [0, 1, 2, 3, 4, 5],
  'hash' => {'first' => 0, 'third' => 3},
  'scalar' => 'monyumonyu',
};

print $config->{'array'}->[1];
1

print $config->{'hash'}->{'third'};
3

print $config->{scalar};
monyumonyu

基本こんな感じでしか使ってない。

初期化してない段階では

$config->{'array'} = [0, 1, 2, 3];

みたいな代入でいいのかな?
わっかんないやw

10 :nobodyさん:2010/06/06(日) 08:13:05 ID:???
リファンレス=ポインタもどきだろ……

11 :nobodyさん:2010/06/06(日) 10:59:04 ID:???
もどきっつかそのものじゃね

12 :nobodyさん:2010/06/06(日) 11:11:23 ID:???
>>11
もどきだろjk

13 :nobodyさん:2010/06/06(日) 11:37:51 ID:???
女子高生だろ常識的に考えて

14 :nobodyさん:2010/06/06(日) 11:48:13 ID:???
ところで前スレからなんですがNet::DNSが使えないと
やっぱりホスト名の逆引きはできませんか

15 :nobodyさん:2010/06/06(日) 13:40:08 ID:???
なかったら入れればいいじゃん

16 :前スレ921:2010/06/06(日) 16:41:21 ID:+nevgJE6
sub hokan {
my $target = shift;

if ($m{is_full_g}) {
$mes = "$max_depot_g個までしか保管することはできません";
return;
}

if ($weas[$m{wea}][1] eq $target) {
$npc_com = "$items[$m{ite}][1]を倉庫にいれました\n";
my $send_id = unpack('H*', $m{guild});
if (-f "$guilddir/$send_id/depot_g.cgi") {
open (OUT,">> $guilddir/$send_id/depot_g.cgi");
print(OUT "1<>$m{ite}<>\n");
close(OUT);
$m{ite} = 0;
}
}
elsif ($arms[$m{arm}][1] eq $target) {
$npc_com = "$items[$m{arm}][1]を倉庫にいれました\n";
my $send_id = unpack('H*', $m{guild});
if (-f "$guilddir/$send_id/depot_g.cgi") {
open (OUT,">> $guilddir/$send_id/depot_g.cgi");
print(OUT "2<>$m{ite}<>\n");
close(OUT);
$m{arm} = 0;
}
}

17 :16:2010/06/06(日) 16:48:18 ID:+nevgJE6
elsif ($ites[$m{ite}][1] eq $target) {
$npc_com = "$items[$m{ite}][1]を倉庫にいれました\n";
my $send_id = unpack('H*', $m{guild});
if (-f "$guilddir/$send_id/depot_g.cgi") {
open (OUT,">> $guilddir/$send_id/depot_g.cgi");
print(OUT "3<>$m{ite}<>\n");
close(OUT);
$m{ite} = 0;
}
}

if ($npc_com) {
&get_depot_cg;
return;
}

$mes = qq|どれを倉庫にいれますか?<br />|;
$mes .= qq|<span onclick="text_set('@ほかん>$weas[$m{wea}][1] ')">$weas[$m{wea}][1]</span> / | if $m{wea};
$mes .= qq|<span onclick="text_set('@ほかん>$arms[$m{arm}][1] ')">$arms[$m{arm}][1]</span> / | if $m{arm};
$mes .= qq|<span onclick="text_set('@ほかん>$ites[$m{ite}][1] ')">$ites[$m{ite}][1]</span> / | if $m{ite};
$act_time = 0;
}

&send_item2を無くして自分で分かるように直に書いてみたのですが
結果は変わらずエラーのままでした。
$guilddir/$send_id/depot_g.cgiには書き込まれましたが
$m{ite} = 0;が実行できないみたいです。どうすればいいんだろ・・・orz

18 :14:2010/06/06(日) 18:04:21 ID:???
レンタルサーバなんだけどどうにかなるかな

19 :nobodyさん:2010/06/06(日) 18:33:08 ID:???
local::lib使えば入る

20 :nobodyさん:2010/06/06(日) 18:42:10 ID:???
>>17
@itesと、@itemsどっちかがtypoだ。
これ↓、前のバージョン用に整理した奴。
sub hokan {
my $target = shift;
if ($m{is_full_g}) { $mes = "$max_depot_g個までしか保管することはできません"; return; }
# 構造が同じ二次元配列を、別名で三つ作る必要あんの?
# $items[$m{ite}][1]とどっちが正しいの?
my @keys = qw( wea arm ite );
my %hash = ( wea => $weas[$m{wea}][1], arm => $arms[$m{arm}][1], ite => $ites[$m{ite}][1], ) ;
# if ~ elsif は、やることが同じなら
# for( next if 条件 ; 処理 ; last ) に纏められる
# typo も減らせるからそちらお勧め
for my $i ( 0 .. $#keys ){
next if $hash{$keys[$i]} ne $target ;
$npc_com = "$hash{$keys[$i]}を倉庫にいれました\n";
# $m{$keys[$i]}はsend_item2内で使ってないよ?渡すの?それでも
&send_item2($m, $i + 1, $m{$keys[$i]});
$m{$keys[$i]} = 0;
last ;
}
if ($npc_com) { &get_depot_cg; return; }
$mes = qq|どれを倉庫にいれますか?<br />|;
for my $key ( @keys ){
next if ! $m{$key} ;
$mes .= qq|<span onclick="text_set('@ほかん>$hash{$key} ')">$hash{$key}</span> / | ;
}
$act_time = 0;
}

21 :nobodyさん:2010/06/06(日) 20:19:37 ID:???
エラー内容もさらしてごらん
さすがにソースだけでは辛い

22 :nobodyさん:2010/06/06(日) 20:28:17 ID:???
前スレ含め、これ以上汚されるの勘弁。
(今回の明かに)typoが原因のエラーとか、そんなん自分で解決すべきだ。


23 :nobodyさん:2010/06/06(日) 20:31:29 ID:???
こんな短い部分さらすだけで、スパゲッティーソースなことが分かるなぁ・・・

24 :nobodyさん:2010/06/06(日) 20:58:46 ID:???
スパゲッティでも芸術的なぐらい短ければ神コードに昇華するのにね

25 :nobodyさん:2010/06/06(日) 21:05:19 ID:???
それはスパゲッティとは言わん。


26 :nobodyさん:2010/06/06(日) 21:09:11 ID:???
じゃあ可読性が著しく低いコードと言い換えようか

27 :nobodyさん:2010/06/06(日) 22:58:20 ID:???
それゴルフ

28 :nobodyさん:2010/06/06(日) 23:18:35 ID:???
>>22
つか、お前なんでこのスレ見にきてんの?

29 :nobodyさん:2010/06/07(月) 06:28:10 ID:???
定数を定義することはできます?

constとかdefineみたいな。

30 :nobodyさん:2010/06/07(月) 06:50:44 ID:???
>>28
勉強と回答しにだが?

普通は「エラーコードを晒せ」ってのに賛成だが、
これ以上、この人の質問が増えて何かメリットあるか?
リライトしてる様なもんだぞ?
ちなみに前スレ985、このスレ>>3>>20は俺だ。
大嘘(perl的に間違った物)答えられるのにも辟易すんだよ、
この手の質問には。

>>29
core module の "CONSTANT"
CPAN module の "Readonly"
を使う。


31 :nobodyさん:2010/06/07(月) 09:00:06 ID:???
サブルーチン呼び出しに&をつける人が今も生き残っているって
すごいな。

&ありとなしは同じじゃないので良い子は真似しないようにね。

32 :nobodyさん:2010/06/07(月) 09:12:11 ID:7ToGpYbm
>>6
『概念』かな。
どうしてこういう概念が必要なの?Perl独特みたいだけど。
リファレンスに代入せずとも今まで通り、変数に代入するんじゃダメなの?

33 :nobodyさん:2010/06/07(月) 09:12:52 ID:???
>>16
weaを扱ってるはずなのにiteを操作してたり、コードが混乱してるように見える。
まず、このサブルーチンで何をやりたいのか文章にしてくれ。

> 1: 自分はこういう事がしたい。

34 :nobodyさん:2010/06/07(月) 09:31:22 ID:???
へ〜、&呼び出しには弊害があったんだね

35 :nobodyさん:2010/06/07(月) 10:17:21 ID:???
へぇ? サブルーチンはsub 名前{ 処理 }で作って、
&名前; で呼ぶものだと思ってたけど、今は違うのですか?
ネットで拾ってきたプログラムをちょこっと改造するぐらいのことしかしてないんですが
KENT Webとかに代表される一般に出回っているものって、殆んど古いものばっかりなんですかね。
使っている鯖の仕様みたらperl5.8.9なので、そんなに古いほうじゃないみたいですが。

36 :nobodyさん:2010/06/07(月) 10:19:23 ID:???
動けば何でも良いよ
perlなんて道具に過ぎないんだからさ

37 :nobodyさん:2010/06/07(月) 10:33:31 ID:???
あと、jcode.plが古いとか前スレにあったけど、
今もあちこちの掲示板とかで、使っているcgiはかなり多い。
むしろ最新の書き方のほうが、使えない鯖もあるので少数派。
ここではバカにする人がいるけど、事実だから。

38 :nobodyさん:2010/06/07(月) 10:46:01 ID:???
Basic認証でのログアウトの仕方
http://shorindo.com/tech/tech0002.html

#!/usr/bin/perl
print <<EOF;
HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic Realm="valid users only"
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD><TITLE>401 Authorization Required</TITLE></HEAD>
<BODY>
<H1>Authorization Required</H1>
</BODY>
</HTML>

を試したんだが、
malformed header from script. Bad header=HTTP/1.0 401 Unauthorized
で動かない(Internal Server Errorになる)
これ、使えないスクリプトを堂々と載せてるの?ぐぐるとここへリンク張ってるとこもいくつかあるんだけど。

39 :nobodyさん:2010/06/07(月) 11:27:42 ID:???
そりゃそれじゃあ動きませんてば
ちゃんと最後のEOFまでコピペってくださいねー

40 :nobodyさん:2010/06/07(月) 11:36:32 ID:???
EOFのあとの改行までね

41 :nobodyさん:2010/06/07(月) 11:45:47 ID:???
>>39
いやそれだとそのエラーメッセージにはならないと思うよ。
nphスクリプトになってないんじゃないか? ファイル名間違えたとか?

42 :nobodyさん:2010/06/07(月) 12:34:10 ID:???
すまんEOFがないのはコピペミスだ。実際はちゃんと入ってます。
ファイル名もあってます。
さっぱりわからんが、ApacheのVerによってエラーになったりするのだろうか。2.2.15だけど。

43 :nobodyさん:2010/06/07(月) 12:45:35 ID:???
何故かもっかいやったらできた
わけわからんが解決

44 :nobodyさん:2010/06/07(月) 14:01:12 ID:???
>>9
俺もリファレンスワカラン部類なんだけど、それ二次ハッシュとどう違うの?

>>31
ソースくれ。
&の有無関係なくmod_perlだと動かん事しか知らん。

45 :nobodyさん:2010/06/07(月) 14:14:32 ID:???
>>44
&については perlsub 参照。

ttp://perldoc.jp/docs/perl/5.10.0/perlsub.pod の 「サブルーチンは、
明示的な & というプリフィックスを付けて呼び出すことができます。 」
あたりから読んでくれ。

動作の違いは抜きにしてもいまはつけない方が普通だな。

46 :nobodyさん:2010/06/07(月) 14:38:19 ID:e5tZsgVK
>>45
要するに、省略できるようになってるってことかな?

47 :nobodyさん:2010/06/07(月) 15:04:03 ID:???
ちゃんと読めよ...

48 :nobodyさん:2010/06/07(月) 15:04:19 ID:???
配列、スカラ、ハッシュと記号が付いてるし
&付けててもいいじゃんw

とは思うが、配布元が奨めてないなら外しておく方がいいのかねん

49 :nobodyさん:2010/06/07(月) 15:22:01 ID:e5tZsgVK
perlを学ぶ良い書籍ってありますか?
現在、リファレンスとモジュールのところで壁にあたっています。
ネットショップのショッピングカートを作った実績はありますが、これからクレジットカード機能を付加したいと思っていまして、
クレカ代理店への接続をしようと試みています。

50 :nobodyさん:2010/06/07(月) 15:24:33 ID:???
&を付けてサブルーチンを呼ぶコードを書いてると、
鼻で笑われるとか、ロートルとか言われるぐらいのものだろう。
たまに実害が出るかも知れないが、そのときは気合でなんとかすれば問題なし。
自分の生き様を示して行けばいいよ。

私は実害が出たときに面倒だから付けないけどね。

51 :nobodyさん:2010/06/07(月) 15:27:08 ID:???
実害って?

52 :nobodyさん:2010/06/07(月) 15:34:41 ID:???
>>49
リファレンスとモジュールなら「続・初めてのPerl 改訂版」だな。

あと「Perlベストプラクティス」も読んどけ。

53 :nobodyさん:2010/06/07(月) 15:35:46 ID:???
>>49
【Perl,CGI】参考書籍 第四版
http://pc11.2ch.net/test/read.cgi/php/1250989562/

>>51
fooは元々引数を1つ取るサブルーチンだけど、忘れて呼び出すとどうなるか。
use strict;
use warnings;
sub bar{ &foo }
sub foo{ print shift }
bar("Hello, World!");

use strict;
use warnings;
sub bar{ foo() }
sub foo{ print shift }
bar("Hello, World!");
を比べるといいよ。

54 :nobodyさん:2010/06/07(月) 15:48:32 ID:6I7S3VUo
>>52
>続・初めてのPerl 改訂版」
これか。
http://www.amazon.co.jp/gp/reader/4873113059/ref=sib_dp_pt#reader-link
この本は難しいんだよなあ。(;´Д`)

>Perlベストプラクティス
これも。
http://www.amazon.co.jp/gp/reader/4873113008/ref=sib_dp_pt#reader-link

これらのシリーズは難しくて・・・(;´Д`)

55 :nobodyさん:2010/06/07(月) 16:16:24 ID:U/buYqwE
今、ちょっと思い当たることがありました。
リファレンスってひょっとして二次元配列などの縦横座標のあるデータを扱う為の概念ですかね?
こんな感じ。

      商品コード | 商品名 | 価格 | 内容
商品A
商品B
商品C

これを座標指定で呼び出す為の概念ですかね?
そうだとしたらかなり理解が進んだ気がします。
今、そこのところ勉強中です。

56 :nobodyさん:2010/06/07(月) 16:23:10 ID:???
リファンレスはポインタもどきだと何度行ったらわかるんだよ

57 :nobodyさん:2010/06/07(月) 17:44:27 ID:???
ここはレガシーな環境を無視するスレですか?

58 :nobodyさん:2010/06/07(月) 17:45:09 ID:???
>>57
サブルーチンを&つけて呼ぶのは普通だよ。だまされないようにね。

59 :nobodyさん:2010/06/07(月) 18:02:35 ID:ne0ODycT
>>56
ここでのポインタに意味がわからない。

>>57
レガシーってどういう意味?
英和辞書に載っていない。

60 :nobodyさん:2010/06/07(月) 18:12:18 ID:???
>>57
質問するときにPerl4以前の環境であることを明言すればいいんじゃないの?

61 :nobodyさん:2010/06/07(月) 18:15:09 ID:???
しかしいまどきperl4使ってる奴なんているのか?

62 :nobodyさん:2010/06/07(月) 18:22:17 ID:yJ6kU2rx
バージョンなんて気にしてる?
私などはバージョンのことなんかまず考えていない。
いつのまにか変わってるみたいな。
バージョンの特徴を生かせないけどさ。

63 :nobodyさん:2010/06/07(月) 18:32:22 ID:yJ6kU2rx
リファレンスの件、うっすらとわかってきました。
つまり、スカラーや配列やハッシュの指定方法では指定できない場合に使うのがその使用法の一つなのかな?と。


64 :nobodyさん:2010/06/07(月) 18:32:40 ID:???
リファレンスをポインタといわれると、めんどくせーもんとしか思えなくなる
オブジェクトと思え

65 :nobodyさん:2010/06/07(月) 19:14:43 ID:???
リファレンスはリファレンス。
オブジェクトでもないしポインタでもない。
このスレにJAVAとかCに精通してる人が質問しに来るとは
思えんし。

自分の中で理解するのは構わんが、勝手に「~の様なもん」とか
「~と思え」ってーのは無しにしないか?
誰もが貴方達のバックグラウンドを持ってる訳では無い。


66 :nobodyさん:2010/06/07(月) 19:17:10 ID:???
だいたい、perlのオブジェクトはblessされたリファレンス

67 :nobodyさん:2010/06/07(月) 19:27:14 ID:ejsF48jq
プログラマーって個人差すごくありそうだね。
もし仮に一ヶ所に集まって会議したらまとまるんだろうか?

68 :nobodyさん:2010/06/07(月) 19:31:25 ID:???
いちいち上げんなよ。


69 :nobodyさん:2010/06/07(月) 19:49:00 ID:???
age-sageとかどうでもよすぎワロタ

70 :nobodyさん:2010/06/07(月) 20:01:08 ID:???
ttp://amazon.jp/dp/4774135046
リファレンスとかオブジェクト指向とか、これがすごく分かりやすかった

71 :nobodyさん:2010/06/07(月) 21:03:08 ID:fBML121+
オブジェクト指向ってどういう意味なんですかね?
まだ悟れないでいます。

72 :nobodyさん:2010/06/07(月) 21:17:16 ID:???
そうやって、耳慣れない単語が出たら全て質問するつもりか?

素直に参考書の一冊でも読め。
お勧めは既に出てる。


73 :nobodyさん:2010/06/07(月) 21:19:37 ID:fBML121+
翔泳社の10日でおぼえるPerl CGI入門が私の入門書です。

74 :16:2010/06/07(月) 21:35:33 ID:Ha23rV7v
ごめんなさい
もうコードが馬鹿な自分でもわかるくらい滅茶苦茶になってるので
もう一回デフォルトのを最初から改造したら解決しましたm(__)m
せっかくレスしてくれた人に申し訳ないです

とりあえず
出直してきます。
「は?何て言ってんのコレ?」っていうのが多すぎました。すみません。

75 :nobodyさん:2010/06/08(火) 18:08:50 ID:e74okk0C
リファレンスとはC言語のポインターのようなもんだって話があるけど、
この言い方はC言語を知らないと理解できない言い方だよね。

76 :nobodyさん:2010/06/08(火) 18:11:03 ID:???
Cもやれってことじゃないかな

77 :nobodyさん:2010/06/08(火) 18:20:33 ID:e74okk0C
このスレってどの時間帯でも誰かいそうですねw
ネット事業者だから常にネットができる環境下にあるからと思うけど、
何人くらいいるのかな?いや、心強いなとおもって。

78 :nobodyさん:2010/06/08(火) 18:38:27 ID:???
変数や配列、ハッシュ、関数への参照を示した文字列と言ってもわけわからんだろ

79 :nobodyさん:2010/06/08(火) 20:17:58 ID:???
前スレからリファレンスなんちゃら言ってる人は
多次元配列もどきのことだけなんとなくわかればいいんでないの?

このへん。
http://perldoc.perl.org/perllol.html
http://perldoc.perl.org/perldsc.html

80 :nobodyさん:2010/06/10(木) 22:50:37 ID:e7/5TejE
perlでメール送信プログラムを作ってます。

Net::SMTPを採用。
どこのサイトもエラーを拾ったりせずに、
$smtp->data();
$smtp->datasend("");
・・
$smtp->dataend();

と、コーディングしていますが。
これって普通はエラーを拾ったりしてやる必要があるんですよね?
メール送信がうまくいかず、各行にor dieを付与してチェックしてみました。

すると$smtp->data()の部分でdieしていました。

・・・が、具体的なエラー内容がわからず。
こういう場合どうしたらいいんでしょうか?

アドバイスをばお願いいたします。

81 :nobodyさん:2010/06/10(木) 23:11:27 ID:???
ifでくくりゃいいんじゃね?

82 :nobodyさん:2010/06/10(木) 23:33:06 ID:???
die $! とか?

83 :nobodyさん:2010/06/11(金) 00:04:39 ID:???
>>80
> こういう場合どうしたらいいんでしょうか?
マニュアルとソースを読む。
http://search.cpan.org/dist/libnet/Net/SMTP.pm

84 :80:2010/06/11(金) 01:15:57 ID:HNRsRFk/
皆様ありがとうございます。

>83
マニュアルに明記されてます?(見落としてるだけ?
ソースは・・・すいません見てみます!

85 :80:2010/06/11(金) 02:34:15 ID:HNRsRFk/
Net::SMTPをDebug => 1で実行した所、メールアドレスがおかしくなっていたのが原因のようです。

メールアドレスの@がperlに解釈されてしまっていたのが問題でした。

ついで質問なのですが、メールアドレスの受け取りをCGI::Applicationにて
my $mail = $self->query->param('mail');
のような感じで受け取っています。

この部分を
my $mail = 'test@test.co.jp';
とすることで正しくメールが送られることは確認しました。

my $mail = $self->query->param('mail');
の時点で@をperlに解釈させないようにするにはどうしたらいいでしょうか?

受け取ってから@をエスケープすればいいんだとは思いますが、
他にスマートな方法ありましたらアドバイスお願いします。

86 :nobodyさん:2010/06/11(金) 03:29:52 ID:???
エスケープする以外の方法があれば大発見

87 :nobodyさん:2010/06/11(金) 09:02:50 ID:???
そもそも@の解釈なんて文字列に埋め込んだときしか行われないんだから、
CGIに渡ってくるものがそもそもおかしいんじゃねーの?

88 :nobodyさん:2010/06/14(月) 21:40:31 ID:mh5UZ2p/
selectで標準出力の変更は出来ますが、標準エラー(STDERR) を変更する
方法はないでしょうか?


色々テストのスクリプトを書いているのですが、「エラーが出る」確認の
テストを書こうと思ったら、die で死ぬのを eval することは出来ても
STDERR への表示を消すことが出来なくて困っています。

STDERR への出力を一旦抑制して、また元に戻すといったことはできない
でしょうか?

89 :nobodyさん:2010/06/14(月) 22:26:22 ID:???
http://www.google.co.jp/search?q=perl+STDERR+%E5%A4%89%E6%9B%B4&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a

90 :nobodyさん:2010/06/15(火) 12:07:10 ID:FKT5DQzr
>>89
ありがとうございます。分かりました。

91 :nobodyさん:2010/06/15(火) 23:46:20 ID:???
どなたかお願い致します。
perlで、FTPSによるファイル送信を行いたいと考えております。
調べたところNet::FTPSSLというモジュールがあるのですが、
現在契約しているホスティングサーバーではインストールされて
おりません。
そこでNet::FTPSSLのモジュールをダウンロードしてみると、FTPSSL.pmという
ファイルがありました。このファイルをrequireするなどして、なんとか
インストールしないで動作させたいと考えておりますが、このような
事は可能なのでしょうか?

92 :nobodyさん:2010/06/15(火) 23:54:04 ID:???
perl use lib

93 :nobodyさん:2010/06/21(月) 00:35:12 ID:5zE9MeIY
マルチポストです。
申し訳ありません。
あまりCatalyst版には人がいないようなので、
こちらにも質問させて下さい。

Catalyst を勉強中です。

モデルをCatalystから分離した方が良いとは
知っていますが、とりあえず勉強中なので、
app_create.pl model で DBIC を作りました。

ところが出来上がった Schema/Result/ 以下の
クラスにメソッドを定義しても呼び出す事が
出来ません。

ログではこのように出ています。
Can't locate object method "foo_bar" via package "DBIx::Class::ResultSet"

見るとResult以下のクラスのベースクラスは
DBIx::Class:Core でした。

自分でも何かとんちんかんな事を聞いている気がするのですが、
Catalyst で ResultSetに メソッドを定義したい
場合はどのようにすればよいか教えていただけますか。

宜しくお願いします。

94 :nobodyさん:2010/06/21(月) 07:15:52 ID:???
>>93
カタリーは使ったことないからわからないが。

useし忘れてパッケージ名で呼ぶとそのエラーメッセージがでますよね。
"そのパッケージにそんなメソッドないです"なのでバージョン違いの資料を使ってないか等も疑ってみたらどうでしょう。

95 :nobodyさん:2010/06/21(月) 17:53:00 ID:???
カタリストってカタリーって略すのがPerl使いの正しい姿?

96 :94:2010/06/21(月) 18:33:46 ID:???
>>95
いや、5文字がめんどくさい怠け者の略し。

よい子のパーラーは真似しちゃいかんと思う

97 :194:2010/06/21(月) 23:42:36 ID:???
>>105
ありがとうございます。
やはりそうですよね。。
そこに追加しているんですが、呼び出せないです。

気になったのはResultSet 云々のエラーメッセージがでてるけど、そこのクラス群はDBIC::Core が親になっている事でした。

モデルは自動生成させているので、手では作っていないです。

何かの手順間違いでおかしな事になってるんですかね。
再確認します。

98 :nobodyさん:2010/06/22(火) 00:30:08 ID:???
分かりました。
load_components に ResultSetManager とメソッドに ResultSet 属性が必要なのですね。
Catalyst というよりはまるまるDBICでした。

ありがとうございました。

99 :nobodyさん:2010/07/01(木) 11:32:54 ID:???
文字列"ABC"が無くて"DEF"が有る場合はどう書けばよいですか?

/(忘ABC)DEF/ or die;

忘の所に何と書くのか教えてください。

100 :nobodyさん:2010/07/01(木) 11:43:38 ID:???
/ABC/ and die;
/DEF/ or die;

じゃだめなん?

101 :nobodyさん:2010/07/01(木) 11:47:10 ID:???
?!

102 :nobodyさん:2010/07/01(木) 12:28:30 ID:???
「直前にABCが無いDEFにマッチする」ということを言ってるんなら /(?<!ABC)DEF/

103 :99:2010/07/01(木) 12:50:10 ID:???
>>100
>>101
>>102
みなさんありがとうございます。
やりたいのは>>102さんの言う通りなのですが、説明が下手で
どうとでも取れるような書き方だったと反省しています。
回答ありがとうございました。

104 :nobodyさん:2010/07/21(水) 09:46:20 ID:???
perl 5.8.8 でImageMagick 6.6.1を使って画像変換しようとしているのですが
$image->Distort("virtual-pixel"=>"Transparent"
と指定しても背景が透過になってくれません。
Black, White, Random など別の物を指定すると変更されます。

ImageMagickの問題なのですが、Perlで使用しているのでこちらへ質問させていただきました。
スレ違いでしたら誘導をお願いします。


105 :nobodyさん:2010/07/30(金) 18:42:05 ID:???
>>104
バックグラウンドカラーは設定した?

$image->Set('background' => 'none');

106 :nobodyさん:2010/08/02(月) 03:12:00 ID:???
>>102
正確な知識が無いなら黙っててくれる?

107 :nobodyさん:2010/08/02(月) 03:40:13 ID:FdS+e4Ne
 ひと月も前のレスに噛み付かれても、、、


108 :102:2010/08/02(月) 04:45:31 ID:???
なんかごめん

109 :nobodyさん:2010/08/02(月) 13:10:55 ID:???
夏だ

110 :Perl神:2010/08/02(月) 17:08:54 ID:9KfPyaTP
カタリストの語りがうざい まじカタリ!!!!!!

111 :nobodyさん:2010/08/02(月) 21:04:27 ID:fXTYTb4c
愚問でしょうがお許しください。

配布されてるCGIゲームを改造中の初心者です。とほほのPerl入門とか見ながらやってます。参考書とかは持ってません
モンスターの経験値などを設定するのにモンスターの画像名を番号にして
番号が大きければ大きいほど経験値も多くなる・・・という風にしたかったのですがいい方法が思いつきませんでした。
文字列の中の数字("100.gif"とかの100)を数値に変換して扱う方法を教えて欲しいのですが・・・無いですかね


112 :nobodyさん:2010/08/02(月) 21:10:15 ID:28r5QWdl
>>111
my $file = "100.gif";
my $ex = $1 if $file =~ m/^([0-9]+)/;
print $ex; # 100

こういうこと?

113 :nobodyさん:2010/08/04(水) 16:57:20 ID:???
しかも>>102は質問者の疑問をちゃんと解消しているのに

30 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)