Perlコーディング初心者質問スレ Part 58
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/08/06(水) 22:54:32ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >2 以降
前スレ http://pc11.2ch.net/test/read.cgi/php/1203935151/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0713nobodyさん
2009/01/31(土) 17:30:56ID:???0714nobodyさん
2009/01/31(土) 20:28:20ID:???単刀直入すぎ。
それは出来ないけど、Sub::InstallとかClass::MOPとか、その辺使ってみるとか。
標準的なクラス型のオブジェクト指向では使わないから、そこは考えて使ってね。
0715nobodyさん
2009/01/31(土) 20:50:36ID:IExMyMgz以下はプログラムの一部。
#サブルーチンの呼び出し
&aaa();
exit(0);
# サブルーチンの宣言と定義
sub aaa{
print "あいうえお";
}
0716nobodyさん
2009/01/31(土) 20:55:59ID:???0717nobodyさん
2009/01/31(土) 20:58:57ID:IExMyMgz0719nobodyさん
2009/01/31(土) 21:16:46ID:???・どういう風にサブルーチンが作動していないことを確認したのか
まさかこのプログラムをa.cgiとかにしてCGIで実行しているんじゃないよな・・・?
0720nobodyさん
2009/01/31(土) 21:18:18ID:???0721nobodyさん
2009/01/31(土) 21:25:24ID:IExMyMgzそうです。
0722nobodyさん
2009/01/31(土) 21:47:12ID:???初心者っぽいから言っておくが
サブルーチンの動作を省略せずにきちんと書いてみ
そしたらそのプログラムに何が足りないかすぐわかるはずだ。
0723nobodyさん
2009/01/31(土) 22:22:12ID:???今時の人はそういう事をしないのカネ
0724nobodyさん
2009/01/31(土) 22:58:38ID:???- #!/usr/bin/perl のようなperlのパスを書いてない
- 実行権限がない
- web?? なら print "Content-type:text/html \n\n"; 的な記述がない
とかとか
0725nobodyさん
2009/01/31(土) 23:50:05ID:???0726nobodyさん
2009/01/31(土) 23:51:42ID:???0727nobodyさん
2009/02/01(日) 00:24:54ID:???0729nobodyさん
2009/02/01(日) 02:37:45ID:8RIm5WuxPython 3が後方互換性を捨ててでも求めたもの
ttp://www.atmarkit.co.jp/fcoding/articles/python3/01/python301a.html
0730nobodyさん
2009/02/01(日) 03:03:40ID:???ttp://d.hatena.ne.jp/seiunsky/20080417/1208454191
0732nobodyさん
2009/02/01(日) 04:55:13ID:???この状況と同じです。OSはXP、perlはv5.10.0です。
>ppm-shell
>install DBI
>install DBD-mysql
でパッケージが無くインストールできません。
>ppm でppmのGUI立ち上げてリポジトリ追加後にDBI,DBDと検索するとたくさん出てきます。
DBDで検索したのからDBD-mysqlPPだけインストールしました。
DBIで検索したのからよくわからないので大量ですが全部入れておきました。
○DBDはDBD-mysqlPPだけでよいですか?DBD-mysqlというのはなかったのでDBD-mysqlPP入れておきました。
○DBIはどれが必要なのでしょうか?
まだサンプルプログラムが動かない状態です。よろしくお願いします。
0733732
2009/02/01(日) 05:20:39ID:???Downloading ActiveState Package Repository packlist...not modified
No missing packages to install
>ppm install DBD-mysql
Downloading ActiveState Package Repository packlist...not modified
ppm install failed: Can't find any package that provides DBD-mysql
エラー内容貼らせていただきました。
DBIはインストールされているっぽいですか。
DBD-mysqlPPだけ入れればいいんでしょうか。。。
0734732
2009/02/01(日) 05:44:24ID:???ここに書いてあるコマンド直接書いてみたらできました。
>ppm install http://cpan.uwinnipeg.ca/PPMPackages/10xx/DBD-mysql.ppd
サンプルプログラムも動きました。
リポジトリに追加したときURLが間違っていたので
DBD-mysqlが無かったのかもしれません。
0735nobodyさん
2009/02/02(月) 10:41:30ID:WfkTEh9pソースコードしか手に入らず困り果ててます
コンパイル済みのmod_perlはどこで入手できますでしょうか?
0736nobodyさん
2009/02/02(月) 11:11:06ID:???0738nobodyさん
2009/02/02(月) 11:46:24ID:???ActivePerlなら、ppmを使ってUwinnipegのリポジトリから取れるよ。
http://perl.apache.org/docs/2.0/os/win32/install.html
0739nobodyさん
2009/02/02(月) 12:10:46ID:???0740nobodyさん
2009/02/02(月) 12:45:35ID:???http://www.y2sunlight.com/ground/?ActivePerl5.8%2F6.mod_perl
0741nobodyさん
2009/02/02(月) 14:11:48ID:???ググって正しい内容に到達できるといいけどね。
古かったり、間違った情報だったりすることって多々あるよね。
ブログ書いてると分かると思うけど、pod とか他人からのコピペだったり、
試行錯誤してることを載せること多いよね。
その分野に疎かったら、古かったり、間違った情報だとしてもわかんないよね。
だから、知ってる人に質問したほうがいいと思うんだ。
0742nobodyさん
2009/02/02(月) 14:33:05ID:qwoAnWRh0743nobodyさん
2009/02/02(月) 14:39:45ID:???0744nobodyさん
2009/02/02(月) 14:48:06ID:???\nがひとつだと500エラーになったのはそういうこだったんですね
ありがとうございました
0745nobodyさん
2009/02/02(月) 16:35:52ID:P7XLmGHa$buf1 = "$a[0]","&","$a[1]";
↑とりあえずこの表記は正しいでしょうか?
0746nobodyさん
2009/02/02(月) 16:47:09ID:???0747nobodyさん
2009/02/02(月) 17:03:56ID:???0748nobodyさん
2009/02/02(月) 18:11:38ID:???0749nobodyさん
2009/02/02(月) 18:24:35ID:???ローマ字をひらがなに変換しようとしています。
コマンドラインだと
$ perl -M'Encode' -M'Lingua::JA::Kana' -w -e 'print romaji2hiragana(@ARGV);' hogehoge(エンター)
Wide character in print at -e line 1.
ほげほげ
と表示されるのですが、
use strict;
use warnings;
use Encode;
use Lingua::JA::kana;
print romaji2hiragana(@ARGV);
という内容のスクリプトファイルをコマンドラインから実行すると
$ perl /Users/anon/Desktop/test.pl hogehoge(エンター)
Undefined subroutine &main::romaji2hiragana called at /Users/anon/Desktop/test.pl line 5.
と表示されてしまいます。
なぜスクリプトファイルの方は "Undefined subroutine" と
なってしまうのでしょうか?
0752nobodyさん
2009/02/02(月) 19:05:10ID:???で Win コンソールででけたよ
0753nobodyさん
2009/02/02(月) 19:13:08ID:???my @a = split(/&/, $xxx); したものなら >>748 で結合できる。
小出しにせずに、周辺のコードも晒すといいよ。
変数の様子が意味不明の時は、手当たり次第 Data::Dumper に食わせてみるといいよ。
use Data::Dumper;
warn Dumper($str);
warn Dumper(\@array);
warn Dumper(\%hash);
0754nobodyさん
2009/02/02(月) 19:13:52ID:???my @a = qw( a1 a2 );
my $buf1 = $a[0] . '&' . $a[1];
print "\nbuf1 = $buf1\n";
でできないか?
0755nobodyさん
2009/02/02(月) 19:34:09ID:???しかし動かない理由も気になります周辺のコードです。
open(IN, "a.txt") or die;
read(IN, $a, -s IN);
my @pairs = split(/,/,$a);
@data = split(/&/,$pairs[0]);
if (data[1] == 12){@b = "3&@b";
$baf1 = $a[0] ."&". $a[1] ."&". $a[2]";
ちなみにこれです。これが動きません
0756nobodyさん
2009/02/02(月) 20:00:19ID:???{ に対応する } がないし、変数とおぼしきところに $ とかがないので、
今のままだと動かないと思う。
use strict; をスクリプトの一番最初に書くと、文法チェックしてくれるよ。
どんな理由があろうとも use strict; をつけるのは perl の基本だから、
その上でがんばってほしいです。
出てきそうな質問に答えておくと、"" で囲まれた中に @ を含めたいときは
\@ にするか、"" をやめて '' でくくったりする。
0757nobodyさん
2009/02/02(月) 20:03:10ID:???0758749
2009/02/02(月) 20:24:03ID:???おっしゃる通りでした。Lingua::JA::"K"ana に直したらちゃんと動きました。
典型的なケアレスミスでお恥ずかしいかぎりです。
最初 use kana; とだけ書いたときに出ていた Can't locate kana.pm in @INC
のエラーが、use Lingua::JA::kana; と書いたら出なくなったので、
この部分は通っているものと思い込んでいました。
ここできかなかったらずっとわからなかったと思います。
どうもありがとうございました。
>>752
わざわざ試していただいてありがとうございます。
そうすれば文字コードの指定も同時にできるんですね。
そちらを使わせていただくことにします。どうもありがとうございました。
0760nobodyさん
2009/02/02(月) 21:17:04ID:???&a
sub b{
}
}
このサブルーチンの使い方は間違っていますか?
0762nobodyさん
2009/02/02(月) 23:25:18ID:???0764nobodyさん
2009/02/02(月) 23:58:27ID:???この記述はあってますか?
いったいどこが悪くて動かないのかわからないので総当り中。
0768nobodyさん
2009/02/03(火) 00:12:39ID:???だと
@a[0..9] = @b[0..9];
になる気がする。
@a[1..9] = @b[1..9];
か。脳内だけど。
0769nobodyさん
2009/02/03(火) 00:19:34ID:???shift(@a);
unshift(@a, $b[0]);
0770nobodyさん
2009/02/03(火) 00:57:59ID:???0771nobodyさん
2009/02/03(火) 01:03:32ID:???0772nobodyさん
2009/02/03(火) 01:56:59ID:???a[0]ならスカラーだから$なのと一緒
0773nobodyさん
2009/02/03(火) 02:11:03ID:???実は一貫してアクセスの種類示すものとして使われている。
$aaa; #「スカラー変数aaa」ではなくて「スカラー名aaaへのアクセス」
>>770
オブジェクトじゃなければ、だいたいそう。
ひねくれ作者だったら知らん。
0777nobodyさん
2009/02/03(火) 14:40:43ID:???過去ログを読んだり、検索してはいけない。
「英語は苦手なので、分かりません。」は、高く評価できる。
辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
他力本願と言われようと、自分で調べたり試行錯誤したりせず、他人の努力の結果を搾取するのが、正しい「教えてクン」である。
また、「もう何が悪いのかサッパリ分かりません。」と言ってふてくされるのも有効である。
「サッパリ」という単語が「やる気の無さ」を効果的に表現している。
「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと自己の積極性が現れてしまうので、「教えてクン」失格である。
0780nobodyさん
2009/02/03(火) 19:46:43ID:???unshift (@a , 1) ;
この記述はあってますか?、それと日本語使えてウインドウズに入るPerlって売ってますか?
0782nobodyさん
2009/02/03(火) 20:55:27ID:???0783nobodyさん
2009/02/03(火) 20:57:12ID:???0784nobodyさん
2009/02/03(火) 21:29:51ID:???> この記述はあってますか?、それと日本語使えてウインドウズに入るPerlって売ってますか?
use strict;
use warnings;
の 2 行を、perl スクリプト全部の先頭に付けると、
記述があってるかどうかおしえてもらえるよ。
Windows に入る perl は、ActivePerl というのと Strawberry Perl の
2 つがあるよ。
0785nobodyさん
2009/02/03(火) 21:35:22ID:???0786nobodyさん
2009/02/03(火) 21:38:31ID:???0787nobodyさん
2009/02/03(火) 23:31:26ID:???0788nobodyさん
2009/02/04(水) 00:12:55ID:???Winで使わないならWinで開発しないだろ、jk
0789nobodyさん
2009/02/04(水) 00:28:31ID:???0790nobodyさん
2009/02/04(水) 00:30:49ID:???弄った後にWin鯖は入れ替えでRHELに入れ替わってたな
0791nobodyさん
2009/02/04(水) 01:09:23ID:???0792nobodyさん
2009/02/04(水) 01:24:33ID:???0793nobodyさん
2009/02/04(水) 03:05:51ID:???http://0ch.mine.nu/public/scripts/
スレッド一覧( ./subback.html )にもmeta.txtの内容を書き込もうと思い
いろいろ弄ってなんとか形になりました。※meta.txtは掲示板を作って自分で書き込めます。
しかし、これでよいのかどうか自信がもてないため質問します。
varda.plの191
sub CreateSubback{ } 内に
require('./module/legolas.pl');
$Caption = new LEGOLAS;
META($this,$Index,$Caption);
151# HTMLヘッダの出力
$Caption->Print($Page,undef);
他に
sub META{
my ($this,$Page,$Caption) = @_;
my ($title,$link,$image,$code);
$Caption->Load($this->{'SYS'},'META');
}
ミスはないでしょうか?
0794nobodyさん
2009/02/04(水) 04:42:54ID:???★三 【 スクリプト改造工房 PART 9 】 ★三
http://pc11.2ch.net/test/read.cgi/php/1143834740/
0797nobodyさん
2009/02/04(水) 07:09:52ID:???@a = @b
shift(@a) ;
unshift (@a , 1) ;
この表記でバグってるような気がします
ちなみにjperl日本語版をベクターでダウンロードしましたがインストーラーが見当たりません。
ウインドウズで開発環境を作るにはどうしたらよいのでしょうか?
0798nobodyさん
2009/02/04(水) 11:33:59ID:???unshift(@a , 1);
第二引数は配列でアレ!
0799nobodyさん
2009/02/04(水) 21:14:31ID:???> この表記でバグってるような気がします
http://www.e777.co.jp/perlcw/perlcw.html
> ウインドウズで開発環境を作るにはどうしたらよいのでしょうか?
http://www.activestate.com/activeperl/
0800nobodyさん
2009/02/04(水) 23:10:49ID:???0801nobodyさん
2009/02/05(木) 07:17:41ID:???0802nobodyさん
2009/02/05(木) 09:39:18ID:???0803nobodyさん
2009/02/05(木) 10:22:36ID:???> strict.pmが鯖に必ずしも入っていなかったからだと思うよ
そういう鯖って今もあるの?
あるとして使う積極的な理由は見つからない。
use strict; しないスクリプトは消えるべきかと。
0804nobodyさん
2009/02/05(木) 10:33:23ID:???0805nobodyさん
2009/02/05(木) 10:37:35ID:???-Tオプション
use strict;
use warnings;
つけるけど、納品するときは外すよ
0807nobodyさん
2009/02/05(木) 11:20:17ID:???納品前に外す趣旨の発言は、この板で何度か出てきてるね。
外すと書くだけで、合理的な理由を示さない人だから、構わない方が良いよ。
0810nobodyさん
2009/02/05(木) 12:15:13ID:???http://0ch.mine.nu/public/scripts/
スレッド一覧( ./subback.html )にもmeta.txtの内容を書き込もうと思い
いろいろ弄ってなんとか形になりました。※meta.txtは掲示板を作って自分で書き込めます。
しかし、これでよいのかどうか自信がもてないため質問します。
varda.plの191
sub CreateSubback{ } 内に
require('./module/legolas.pl');
$Caption = new LEGOLAS;
META($this,$Index,$Caption);
151# HTMLヘッダの出力
$Caption->Print($Page,undef);
他に
sub META{
my ($this,$Page,$Caption) = @_;
my ($title,$link,$image,$code);
$Caption->Load($this->{'SYS'},'META');
}
ミスはないでしょうか?
0811nobodyさん
2009/02/05(木) 12:21:03ID:???お母さんのおっぱい揉みながら聞いてみるといいよ
0812nobodyさん
2009/02/05(木) 12:22:33ID:???■ このスレッドは過去ログ倉庫に格納されています