Perlコーディング初心者質問スレ Part 63
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/09/09(金) 18:11:49.71ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >>2 以降
前スレ http://hibari.2ch.net/test/read.cgi/php/1295170172/
0739nobodyさん
2012/05/01(火) 22:39:14.05ID:???今よりも古いOSで動かすとかまずありえない。
0740nobodyさん
2012/05/01(火) 23:19:15.85ID:???0741nobodyさん
2012/05/02(水) 23:55:49.46ID:???0742nobodyさん
2012/05/03(木) 12:53:45.35ID:???a.cgiからlib/b.cgiをrequireするんですが
Can?t locate ./lib/b.cgi in @INC
とエラーが出てしまいます。
コマンドで
perl a.cgi
だと問題なく動くのでCGIの場合に相対パスで読み込めてないような気がします。
どこの設定を見直せばいいでしょうか?
./
|
|a.cgi
|
|lib-|
|b.cgi
0743nobodyさん
2012/05/03(木) 14:16:30.71ID:???今の環境を書く。
前の環境に戻す。
0744nobodyさん
2012/05/03(木) 14:44:25.44ID:???require を相対パスで書かずに絶対パスで書く
0745nobodyさん
2012/05/04(金) 13:56:44.21ID:???後者が古いものを切り捨てようとしているのに対して、前者は新しいものを
切り捨てようとしている【わけではない】ことに注意する必要がある
0747nobodyさん
2012/05/04(金) 17:49:33.26ID:???mod_perlだったみたいで互換性ないの知りませんでした
ふつうのCGIにしたら問題なく動きました
0749nobodyさん
2012/05/04(金) 21:41:24.52ID:???しかたがない
0751nobodyさん
2012/05/05(土) 23:38:10.71ID:???あせっているのかが訳わからない
0752nobodyさん
2012/05/06(日) 09:53:21.29ID:???余程古い書き方してなけりゃ無理して追う事は無い
0753nobodyさん
2012/05/06(日) 10:49:50.61ID:???0754nobodyさん
2012/05/08(火) 11:27:12.65ID:KnJQK4viエンコード指定すれば回避できると思い調べていたがどうにも・・・orz
送信者(MailFrom) : テスト送信 ぬるぽ <nullpo@nulupoppo.null>;
↓
送信
↓
{文字化けした文字} <nullpo@nulupoppo.null>;
0755nobodyさん
2012/05/08(火) 13:58:50.62ID:???0756nobodyさん
2012/05/08(火) 14:04:12.49ID:???0757nobodyさん
2012/05/10(木) 11:20:36.37ID:???普通 -=utf8? みたいなのからはじまって = で終わるかんじだとおもうんですが・・・どうしたらorz
0758nobodyさん
2012/05/10(木) 12:38:20.34ID:???MIME::LiteはMIMEヘッダ用のencodeはやらないので自前でやれ、てことらしい
encode("MIME-Header-ISO_2022_JP", "ぬるぽ");
# =?ISO-2022-JP?B?GyRCJEwkayRdGyhC?=
参考:
ttp://pmakino.jp/tdiary/20061215.html
ttp://iandeth.dyndns.org/mt/ian/archives/000628.html
あとMIME::Liteはもう更新されてないのでEMail::Senderとか使えとマニュアルにあった
ttp://search.cpan.org/~rjbs/MIME-Lite-3.028/lib/MIME/Lite.pm
0759nobodyさん
2012/05/10(木) 12:40:25.73ID:???use utf8;
print encode("MIME-Header", "ぬるぽ");
# =?UTF-8?B?44Gs44KL44G9?=
0760nobodyさん
2012/05/10(木) 14:41:15.55ID:???と自分で確認せずに質問する私
0761758-759
2012/05/10(木) 16:43:05.99ID:???ごめんなさい、use Encode;ないと無理ですね_| ̄|○ il||li
ちなみに>>758はuse utf8;不要、>>759は要use utf8;です
0762nobodyさん
2012/05/10(木) 23:52:03.09ID:???0763nobodyさん
2012/05/11(金) 00:48:08.10ID:???0764nobodyさん
2012/05/11(金) 01:08:31.24ID:???encode() に渡されるのはフラグの立った utf8
まずは日本語の扱いをもっと学習した方が良いかも
0765nobodyさん
2012/05/11(金) 01:11:10.98ID:???0766nobodyさん
2012/05/11(金) 01:12:05.76ID:???0767nobodyさん
2012/05/11(金) 01:14:41.05ID:???>>765
こうですか?
あなたが何を言いたいのかさっぱりわかりませんw
0768nobodyさん
2012/05/11(金) 01:24:19.42ID:???0769nobodyさん
2012/05/11(金) 16:29:39.44ID:???CGIなんですけど
open(LOG, ">>/opt/lampp/test/LOG");
とか、
if(!open(LOG, ">>LOG")) {
…
とかでログファイルをopenしています。
二つのファイルとも、パーミッションは
-rw-r--r-- で同じなんですけど、
下の方で開けたログファイルは、後から同じ上書きopenで開けず
エラーになります。まぁ手動で下のファイルだけ、
-rw-rw-rw- とかに変えればいいんですけど。めんどくさいので
いい方法ありませんか?っていうか何が原因ですか?
よろしくお願いします。
0770nobodyさん
2012/05/11(金) 17:02:14.89ID:???openは3引数で使う、グロブじゃなくて変数を使うってところか
0771nobodyさん
2012/05/11(金) 18:35:09.50ID:???0772nobodyさん
2012/05/12(土) 14:16:24.41ID:???if ($in{'mail'} eq "hoge@hoge.com"){
処理〜
}
これじゃダメなんですか?
0773nobodyさん
2012/05/12(土) 14:21:07.43ID:???メールアドレスの所をしんぐるくぉーてーしょんに変えるがいい
if ($in{'mail'} eq 'hoge@hoge.com'){
0775nobodyさん
2012/05/12(土) 15:45:18.56ID:???0776nobodyさん
2012/05/12(土) 16:02:35.92ID:???ダブルクォーテーション内では変数は展開されるから、
メールアドレスの「@hoge」が配列として扱われて展開されちゃうから
シングルクォーテーションを使って変数が展開されないようにするか、
もしくは「\」でエスケープして "hoge\@hoge.com" のように書く
と覚えておいた方がええんでは
0777nobodyさん
2012/05/14(月) 11:15:17.47ID:???0778nobodyさん
2012/05/14(月) 11:59:37.23ID:???"@foo" が展開される罠は他の言語にはないけどさ
0779nobodyさん
2012/05/23(水) 17:27:24.18ID:rf0/+ult0780nobodyさん
2012/05/23(水) 17:28:38.79ID:rf0/+ult0781nobodyさん
2012/05/23(水) 17:32:33.00ID:rf0/+ult0782nobodyさん
2012/05/23(水) 18:59:49.41ID:rf0/+ult0783nobodyさん
2012/05/23(水) 19:32:41.29ID:???0784nobodyさん
2012/05/23(水) 20:09:04.03ID:???0788nobodyさん
2012/05/24(木) 09:35:27.46ID:???0789nobodyさん
2012/05/24(木) 19:30:42.39ID:???0790nobodyさん
2012/05/24(木) 19:42:26.19ID:???0791nobodyさん
2012/05/25(金) 00:00:56.26ID:???0792nobodyさん
2012/05/25(金) 04:32:23.39ID:???0793nobodyさん
2012/05/25(金) 06:43:20.05ID:???0794nobodyさん
2012/05/25(金) 08:58:48.21ID:???特定の用法でなら、使い道ってあるんかな。
例えばCとかなら、使いにくい仕様でも、使い勝手を犠牲にして低レベルな処理にしたとか、
低レベルだからこそPGが直に弄れるメリットも無くはないってのが想像出来るんだけど。
0796nobodyさん
2012/05/25(金) 19:34:09.54ID:???0797nobodyさん
2012/05/25(金) 20:31:46.80ID:???0798nobodyさん
2012/05/25(金) 20:47:50.48ID:???0799nobodyさん
2012/06/07(木) 23:29:12.95ID:???EPICとpadwalkerで環境構築してデバッガを動かしてみたのですが、値で文字化けが起きていて困っています。
eclipse.iniには-Dfile.encoding=utf-8を追記して構文検証が動くのは確認してます。
環境のバージョンは下記の通りになります。
eclipse:3.7.2
epic:0.5.46
activeperl:5.14.2
padwalker:1.93
以上、よろしくお願いします。
0800nobodyさん
2012/06/10(日) 21:57:43.97ID:???配布されているcgiってstrictやwarnings使ってないやつも結構あるんだが
やっぱりローカルで十分テストしたら外しておいた方がいいの?
それとも単に局所化も考えていないだけの駄コードなだけ?
2
実行ファイルだけじゃなくてライブラリにもstrict,warningsって記述しないと意味無い?
だとすると上で書いたように実際に運用する時外した方がいいとするといちいち全部外さなきゃいけないの?
3
諸設定を分離して別ファイルでグローバル変数として定義してると
実行ファイルなどで「1回しか出てこねーぞ」と怒られてしまいます
どんな回避方法がベストですか
どうせsjisへのconvertしか使わないから不要な部分カットしたjcode.plが一番よくねと思って
jcode.plを見たら思った以上に解読難しかった(´・ω・`)
0801nobodyさん
2012/06/10(日) 22:23:30.29ID:???2. no が使えるプラグマは、ほぼレキシカルスコープ。
no strict ; no warnings
ライブラリだろうと、スコープから外れたら効力は無い。
3. Exporter 使って export すれば?
0802nobodyさん
2012/06/10(日) 22:26:24.92ID:???0803nobodyさん
2012/06/10(日) 23:19:34.11ID:???0804nobodyさん
2012/06/10(日) 23:58:10.87ID:???まあ、そういう経験ない人に言っても伝わらんだろうけど。
0805nobodyさん
2012/06/11(月) 00:29:11.97ID:???0807nobodyさん
2012/06/11(月) 04:49:40.79ID:???命令 or die
これまとめて書きたかったらどう書くの?
命令 if 条件 or die とかでオッケー?
0808nobodyさん
2012/06/11(月) 06:00:31.52ID:???時と場合によっては、括弧で括って演算子の実行順位が変更されないように。
0809nobodyさん
2012/06/11(月) 21:39:23.02ID:???% corelist strict
strict was first released with perl 5
% corelist warnings
warnings was first released with perl v5.6.0
5.6 未満の鯖を使ってる人なら辛うじて「使えない」と
言えるかも知れんけどねw
804 みたいな意見は、 KENT あたりの強弁を鵜呑みに
してるとしか思えんよ。
0810nobodyさん
2012/06/11(月) 23:39:17.35ID:???0811nobodyさん
2012/06/12(火) 01:06:42.34ID:???0812nobodyさん
2012/06/12(火) 05:17:36.52ID:???use strict に至っては、1993 年実装だぞ。
0813nobodyさん
2012/06/12(火) 06:08:24.36ID:???strictも使えないサーバは見たことないな。
0814nobodyさん
2012/06/13(水) 01:58:11.19ID:???0815813
2012/06/13(水) 02:04:10.58ID:???0816nobodyさん
2012/06/13(水) 03:15:49.57ID:???自分で自分の首を絞めてるだけに見えるな。
一応リリース日書いておくわ。あなたはいったい何年前のマシンを使ってるんですか?
Perl 1.0 1987年12月18日
Perl 2.0 1988年6月05日
Perl 3.0 1989年10月18日
Perl 4.0 1991年3月21日
Perl 5.0 1994年10月17日
Perl 5.5.0 1998年7月22日
Perl 5.6.0 2000年5月22日 warnings導入
Perl 5.8.0 2002年7月18日 Unicode正式対応
Perl 5.10.0 2007年12月18日
Perl 5.12.0 2010年4月13日
Perl 5.14.0 2011年5月14日
Perl 5.16.0 2012年5月20日
0817nobodyさん
2012/06/13(水) 04:35:00.28ID:???0818nobodyさん
2012/06/13(水) 05:00:19.82ID:???提案は出来るだろ。
0819nobodyさん
2012/06/13(水) 06:39:10.27ID:???(開発用のモジュールはリリース時には滅多に必要にならないんだから)
use strict; -wスイッチは切りましょう
(トラブったら、その時ONにしてデバックすれば良い)。
ってお作法の名残りだろ。本来の意味でのバッドノウハウ(?)
で、アホが行間の意味を考えず、 warningsに置き換えただけ。
perl5.6時代の当初は後方互換 = 環境依存と言う理由が後付けされたが、
それだったら、warningsを使わず -w使えばいいだけの話
0820nobodyさん
2012/06/13(水) 07:22:17.87ID:???社会に出たことないのか?
0821nobodyさん
2012/06/13(水) 12:32:37.23ID:???0822nobodyさん
2012/06/13(水) 16:02:50.21ID:???別環境の構築まで仕事として依頼されれば喜んでやるけどさ。
0823nobodyさん
2012/06/13(水) 19:16:09.34ID:???0824nobodyさん
2012/06/13(水) 19:39:09.52ID:???0825nobodyさん
2012/06/13(水) 22:33:10.23ID:???ありがたーいお客様ですねわかります
0826nobodyさん
2012/06/13(水) 22:37:18.89ID:???それを客のせいにするわけですねw
環境がー、環境がー、
0827nobodyさん
2012/06/13(水) 22:38:41.15ID:???新しい機能が使えないだけじゃなくて
バグがあるんだよ。
0828nobodyさん
2012/06/13(水) 22:39:19.57ID:???5系は甘え
0830nobodyさん
2012/06/13(水) 22:43:18.44ID:???一、CPANモジュールに頼るな。Perlに付属するモジュールだけを使え。
一、perldocに頼るな。Webにアクセスして検索もするな。本に書いてあることを全て記憶して臨め。
0831nobodyさん
2012/06/14(木) 08:20:28.86ID:???0833nobodyさん
2012/06/16(土) 23:40:53.22ID:???なんてないんだから。
0834nobodyさん
2012/06/17(日) 00:54:41.36ID:???0836nobodyさん
2012/06/17(日) 08:30:35.87ID:???お前らの生活を支える会社をもっと大切にしろ
■ このスレッドは過去ログ倉庫に格納されています