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

【Perl】初心者コーナー Part17

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆Go4ZKngPGE 02/10/14 17:24ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

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

CGIだけど、なんか質問ある? Part 8
http://pc.2ch.net/test/read.cgi/php/1032704121/
参考書籍の話題は【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は 【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0474nobodyさん02/11/02 22:56ID:???
>>472
ヲチ板池
つーか上の閉鎖してるし。とほほなんかもっとパクられてるYO

>>473
文字コードと改行コードについて調べれ
0475nobodyさん02/11/03 00:35ID:???
http://tohoho.wakusei.ne.jp/wwwperl.htm
http://www2.ocn.ne.jp/~raifan/nekomata/html/perl/
0476nobodyさん02/11/03 00:37ID:???
>>469
具体的にどういう処理をしたらどれくらい遅くなったの?
0477二つ目のお気に入りとして02/11/03 02:24ID:jsGm8NEj
厳選した実用・便利・お役立ちサイトを
徹底して集め、ナビゲーションリンク機
能でサクサク表示。第二のお気に入りと
して活用してください。

http://home9.highway.ne.jp/cym10262/
0478nobodyさん02/11/03 02:54ID:???
>>477
で、質問はなに?
0479nobodyさん02/11/03 02:56ID:???
>>469
どれくらい遅いのかしらんが、Perlで速度を気にするなんて・・・
0480nobodyさん02/11/03 09:30ID:???
遅さは結構気になるけどなー
それでも、Perlなのは便利だし、面白いしからだけどな
0481nobodyさん02/11/03 10:01ID:???
?
0482nobodyさん02/11/03 10:16ID:???
すみません、ちょっと質問させてください
初心者なのですが、がんがってCGIとか作ってみたりしてるのですが、相手がProxyを挿してきたら
1・漏れ串だったら生IP差し押さえて許可
2・漏れて無い匿名串ならお帰り願う
っつーかんじのスクリプトを作りたいんですけども
手元に有る本とか色々みてみたのですが、分からないことがあったので質問させてください
・HTTP_VIAに生IPが混入されることがある
・HTTP_FORWARDEDにも生IPが混入されることがある
・HTTP_CLIENT_IPでは、たまに生IPが16進数で仕舞われてることがある
とゆーような記述をどっかでみたのですが、本当なのでしょうか?
また、本当ならば対策を講じなければいけない頻度でそーゆーことがあるのでしょうか?
(ちなみにがんばって10コ串を拾ってきて診断サイトで見てきたのですがその中には該当例がありませんでした)

あと、"テメェみたいなトーシロにゃ思いつかないだろうがこんなとこにも注意しとけ"とか有りましたら御教授お願いします
0483デフォルトの名無しさん02/11/03 10:23ID:???
>>482
ここはPerlのスレです。
CGIのスレは、他にありますので、そっちで質問すれ。
048446902/11/03 11:17ID:???
試した方法は
sub tag_change {
   local($_) = $_[0];
   1 while s/(.*)(&lt;(img([!-:A-~\s\=]+))&gt;)/$1<img$4>/i;
   1 while s/(.*)(&lt;(font[\s\w\=\#\"\']+)\&gt;(.*)\&lt;\/font\&gt;)/$1<$3>$4<\/font>/i;
   1 while s/(.*)(&lt;(b)&gt;(.*)&lt;\/b&gt;)/$1<b>$4<\/b>/i;
}
というやり方です。
どれくらい遅くなったかは計ってないですが、許可するタグを増やしていくと
あれ、ちょっと遅いかなと思う程度です。
そこまで速度にこだわる訳ではないですが、どうせなら良いものを作りたいと思いましたので
質問させていただきました。
0485nobodyさん02/11/03 11:41ID:???
>>484
なにも返していないサブルーチンをどうやって使ってるんだ?
0486nobodyさん02/11/03 12:55ID:ikowPnCo
perlで絵文字変換(匿名メーラーでできるような)もの
を作りたいんですが、どうすればいいでしょうか・・・
0487nobodyさん02/11/03 13:26ID:???
>>486
勉強する。
0488nobodyさん02/11/03 15:54ID:ikowPnCo
open(OUT,"| $sendmail") || exit;

print OUT "To: $mailto1\n";
print OUT "From: $email\n";
print OUT "Subject: $subject\n";
print OUT "Content-Transfer-Encoding: base64";
print OUT "Content-Type: text/html; charset="Shift-JIS";
print OUT "\n\n";

&jcode'sjis2jis(*value);
print OUT "$value\n";
print OUT "\n";
close(OUT);

}

sendmailのところをこのように記述するとエラーがでてしまいました。
なぜでしょう?
0489rubyist@カラアゲうまうま02/11/03 16:05ID:???
Perlユーザほど程度の火憂いか憂いyb吸い合いう無い
0490nobodyさん02/11/03 16:06ID:???
>>488
どこでどういうエラーが出るのか?
まあ、他にもツッコミどころ満載だが。
049148202/11/03 18:09ID:???
>>483
スレ違いスマソでした
吊りつつCGIスレに逝ってきます
0492nobodyさん02/11/03 18:44ID:???
&func(%a, %b);
って感じで関数を呼ぶと、
sub func {
my %a = shift;
my %b = shift;
}
では上手く取れません。どうやればよかとですか?
0493rubyist@カラアゲうまうま02/11/03 18:51ID:???
リファレンス使え馬鹿低脳
0494rubyist@カラアゲうまうま02/11/03 19:05ID:???
>>485
Perlってreturnがなくても最後のステートメントの結果が戻り値になるんじゃないの?
0495rubyist@カラアゲうまうま02/11/03 19:07ID:???
騙るなゲリクソン
0496nobodyさん02/11/03 19:09ID:???
>>495
あら。共有ハンドルじゃなかったの。
ごめんなちゃい。
0497perler@カラアゲうまうま02/11/03 19:10ID:???
うまうま
0498nobodyさん02/11/03 19:24ID:???
むかし巨人にガリクソンという投手がいたなぁ。
049946902/11/03 19:29ID:???
レス遅くなりました。
すみません
>>484修正しときます。とはいっても1つ追加するだけですが。

sub tag_change {
   local($_) = $_[0];
   1 while s/(.*)(&lt;(img([!-:A-~\s\=]+))&gt;)/$1<img$4>/i;
   1 while s/(.*)(&lt;(font[\s\w\=\#\"\']+)\&gt;(.*)\&lt;\/font\&gt;)/$1<$3>$4<\/font>/i;
   1 while s/(.*)(&lt;(b)&gt;(.*)&lt;\/b&gt;)/$1<b>$4<\/b>/i;
   $_;
}

どちらにしろ、これだと許可するタグが増えるたびに1行増やさなければならないので
効率悪いですね。
050046902/11/03 19:33ID:???
こちらの方がいいかもしれないです。
@allowedtag = ('<b>','</b>','<a href(.*)>','</a>');

$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/\"/"/g;

foreach (@allowtag) {
   s/</</g;
   s/>/>/g;
   while ($value =~ /$_/i) {
      $srctag = $&;
      $reptag = $&;
      $reptag =~ s/</</g;
      $reptag =~ s/>/>/g;
      $value =~ s/"/\"/g;
      $value =~ s/$srctag/$reptag/g;
   }
}

ゆっくりと調べてみたいと思います。
アドバイスしていただいた方々ありがとうございました。
050149202/11/03 19:45ID:X/43o1Dc
煽られました。私は馬鹿低能です。泣きたいです。
でも、自分で駱駝本を探すのがめんどうなんで、誰か教えてください。
お願いします。
0502nobodyさん02/11/03 20:31ID:???
yで終わる単語にistつけてる喜んでる馬鹿が居るスレはここですか?
0503nobodyさん02/11/03 20:59ID:???
sub test_ref(\%\%)
{
my ($a_ref, $b_ref ) = @_;
foreach(keys %{ $a_ref }){
print "$_ =>", $a_ref->{ $_ }, "\n";
}
foreach(keys %{ $b_ref }){
print "$_ =>", $b_ref->{ $_ }, "\n";
}

}

my %a = (aya => 'pretty', miho => 'child');
my %b = (asumi => 'kirei', mai => 'cute');

test_ref %a, %b;
exit;
050449202/11/03 21:14ID:???
できました!>>503さんありがとうございました。


0505nobodyさん02/11/03 23:27ID:???
>>499 これを試しても遅いか?

sub tag_change{
    local($_)= $_[0];
    s/&lt;(img[!-:A-~\s\=]+?)&gt;/<$1>/gi;
    s/&lt;(font[\s\w\=\#\"\']+?)&gt;(.+?)&lt;\/font&gt;/<$1>$2<\/font>/gi;
    s/&lt;b&gt;(.+?)&lt;\/b&gt;/<b>$1<\/b>/gi;
    $_;
}
0506rubyist@カラアゲうまうま02/11/03 23:28ID:???
英語も碌に知らない中卒の502がいるスレはここですか。さすが低レベル
050748502/11/03 23:37ID:???
>>494
そんなことぐらい知ってるよ。おまえは>>484が戻り値返してるとでも思ってるのか?

頭の弱いヤシか?
0508rubyist@カラアゲうまうま02/11/04 00:10ID:???
>>507
これまた低レベルな奴が現れたな。いちいち説明するのも面倒くさい。
perlapiのスタック管理の部分でも読め。貴様に理解できればな。

Perlの場合、関数はサブルーチンは戻り値を常に戻してるに決まってるだろ。
意味のある値とは限らないがな。
0509nobodyさん02/11/04 00:13ID:???
>>507
すまん、Perlには戻り値無しなんてないと思っていた(^_^;)
色々試してみたけど、最後にfor(;;){}なんてやると戻りに無しになるみたいだね。
頭が弱いわけじゃないとおもうが、Perlは弱いかも。
051050902/11/04 00:14ID:???
あ、俺が>>494ですから・・・
051150902/11/04 00:22ID:???
>>508を見てもっと色々試してみた。
>>484はきちんとundefを返しているわ・・・
0512_gunzip ◆eiH/XdoCNg 02/11/04 01:28ID:???
なんかニュアンスが違うような気がする。
>484とか、sub func {} やら sub func { for(;;) {} } は内部でも何も返してないよ。
(というか、XSにXSRETURN_EMPTYマクロがあるのを見てもわかるのでは)
$retval = func(); やら defined func() とかで評価したときに、PL_stackに何も無いってんで、
PerlがしゃーねーなとNullsv(PL_sv_undefだったか?忘れた)を呉れるだけ。

「戻り値をくれっ」と言えば、Perlが気を利かして適当に見繕ってくれるけど、本来は何も無いよ、というお話。
不正確な点は指摘してくれると嬉しい。
0513nobodyさん02/11/04 01:52ID:???
> Perlが気を利かして適当に見繕ってくれるけど

さすがPerl(藁
そういうところが嫌いだ・・・
0514rubyist@カラアゲうまうま02/11/04 02:00ID:???
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
0515nobodyさん02/11/04 02:06ID:???
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
0516rubyist@カラアゲうまうま02/11/04 03:07ID:???
まあ、おまえらはWebProg板に引きこもっていてくれttwことえだ・
0517デフォルトの名無しさん02/11/04 06:49ID:dvOfgMXA
皆さん、ruby粘着基地外の相手はしないでください。
すぐに松沢病院に帰るはずですから、無視、無視。
0518nobodyさん02/11/04 09:02ID:???
>>488
sendmail -t
0519マリモーマ ◆jbBCmetwgw 02/11/04 10:06ID:DAK3WKCO
print "<FORM ACTION=$cgi METHOD=post>";
for($a=0;$a<@kou-3;$a++){
print "<select name=$kos[$aipo]>";
for($b=0;$b<@icon;$b++){
print "<option value=$b>$icon[$b]";
}
print "</select>";
なぜこれで送信できるんだ?
0520nobodyさん02/11/04 10:11ID:BeYwgKh5
らくだ(リャマ)の本をみて勉強しているものです。
この本では改行を/nと表記しているんですが
実際、使う場合は¥nですよね?
\nに置き換えて書けば動くんですが
どういう違い・意味合いがあるのでしょうか。

環境はWindows、用途はCGIです。
0521nobodyさん02/11/04 10:32ID:???

フィールド切り出しなどは、awkのほうがperlよりはやいんじゃ、ないでしょうか?
0522nobodyさん02/11/04 10:37ID:???
>>520
文字コードをISOにしてみろ。\→が\になるだろ
unix系のOSじゃ\じゃなくて\を使うから<本の表記
0523nobodyさん02/11/04 10:44ID:???
>>520
/nじゃなくて\nじゃない?
(らくだ本みたことないんでわかんないけど)

それはフォントが違うだけ。日本語フォントでは、\と同じコードに\を割り当ててる。
エディタでフォントが変えられるなら、試しになんでもいいから英文フォントにしてみれ。
0524nobodyさん02/11/04 10:52ID:BeYwgKh5
522さん,523さん
なるほど。
2人の説明でばっちりわかりました。
どうもありがとうございます。
0525nobodyさん02/11/04 12:43ID:???
>>522
UNIXとかそういう問題じゃないんだが・・・

>>520
英語圏の人が書いた本は、多分ほとんどがバックスラッシュになっていると思うよ。
0526nobodyさん02/11/04 15:08ID:DJv3PW2n
ディレクトリの中にあるディレクトリの名前をリストに入れるにはどうすればいいでしょうか。
1階層のみ限定で。。。
0527nobodyさん02/11/04 15:46ID:???
>>526

opendir(DIR, "ディレクトリ名");
@name = readdir(DIR);
closedir(DIR);

foreach (@name) {
if (-d "$_") { push(@array, $_); }
}

@arrayに入るはず。
間違ってたらスマン
0528☆南幸☆02/11/04 16:09ID:???
http://www5e.biglobe.ne.jp/~nanko-m/index.htm
これはどうよ?!いいんじゃない?
0529訂正02/11/04 16:29ID:???
>>526

$dir = "ディレクトリ";

opendir(DIR, "ディレクトリ名");
@name = readdir(DIR);
closedir(DIR);

foreach (@name) {
if (-d "$dir$_") { push(@array, $_); }
}
0530nobodyさん02/11/04 17:42ID:???
文字列で指定された256進カラー"color:#aabbcc"とかの"aabbcc"だけ
を取り込んで、指定された値aを掛けて、例えばa=0.5なら、
"#555d66"を返してもらえる関数を作りたいのよ、
でも

substrで文字列2文字づつ切り出すところはいいんだけど、

切り出した文字列を16進数の数として処理(変数に代入)するやりかたがサパーリわかりません、
どなたかご伝授キボンヌ
0531nobodyさん02/11/04 17:45ID:???
>>530
perl unpackでググったらすぐ見つかるよ。
053252602/11/04 17:46ID:DJv3PW2n
>>527,529
ありがとうございます。
しかし>>529のだと@arrayには何も入らず、
>>527ならちゃんとディレクトリ名が入っているのですが。。。
何か問題があるのでしょうか。
053353002/11/04 17:48ID:???
>>531
ありがとございます、専用の関数あってよかった
053452602/11/04 18:06ID:DJv3PW2n
何度もすみません;
>>527の方法で解決したと思ったんですが、
カレントディレクトリ以外を開くとディレクトリ名が取得できません。
開けなかった場合はエラーが出るようにしてあるので、開けてはいるようです。
色々試してみると、どうやら if(-d "./dir/") のようにすると取得されないようです。
ifを抜いてディレクトリ・ファイルの区別をしないとちゃんと取得されました。
やはりカレントディレクトリだとどちらでも取得できます。
原因はなんでしょうか。。。
0535nobodyさん02/11/04 19:57ID:???
GIFファイルを読んで
アニメーションGIFかフツウのGIFか判別するには
どうすればいいんでしょうか?
0536名無しさん02/11/04 20:57ID:EBTUNl6q
GIFのことは良く知らんけど、GIFのフォーマットを調べて、
そのヘッダの情報を読み込めばよいのでは?
0537名無しさん02/11/04 21:00ID:EBTUNl6q
こんなの見つけました。
GIFフォーマットの詳細
ttp://tohoho.wakusei.ne.jp/wwwgif.htm
>>535サンの役に立つと思います。
0538nobodyさん02/11/04 21:06ID:???
>529
$dir = 'ディレクトリ';

opendir ( DIR, $dir );
@name = readdir ( DIR );
closedir ( DIR );

shift @name; #1
shift @name; #1

foreach ( @name ) {
push (@array, $_) if ( -d "$dir\/$_" );
}

こうでないか?
#1がないと、.と..も取得されてしまうが、その辺どうよ?

if文をこれにさしかえればいい。
053952902/11/04 21:09ID:???
>>538
たぶんそれが正解だと思う
0540nobodyさん02/11/04 21:18ID:???
>>538
readdirは必ず.と..を最初に返すの?
@name=grep !/^\.\.?$/,readdir DIR; #らくだ本より引用
この方がよくない?
0541nobodyさん02/11/04 21:20ID:???
らくだ本に書いてるなら間違いない!!
054252602/11/04 21:59ID:DJv3PW2n
>>529,538,540氏
できました、ありがとうございます!
ご迷惑おかけしました;
0543nobodyさん02/11/04 22:14ID:???
>>537
さんきゅ
0544nobodyさん02/11/04 22:37ID:???
ずるぼんであぷろだをつくろうとおもいCGIをいじり、cgi-binふぁいるも
つくりいざうぷしようとしたらupload.cgiとjcode.plだけがなぜかうぷ
できない。ためしにindex.htmlとかをうぷしたら正常にうぷできた。FFFTP
を使っているのだが何か問題点ある?
0545デフォルトの名無しさん02/11/04 22:55ID:???
>>544
文字コードが違うんじゃない。統一しないとまずいよ。
あと、FFFTPだったらバイナリ送信に汁が吉。
コード指定しとくと変換しちゃうからね。
0546nobodyさん02/11/04 23:01ID:???
>>545
よくわからない。詳細キボンヌ
初心者でスマソ。それともこれぐらいもわからないのならあきらめろという罠
ですか?
0547nobodyさん02/11/04 23:02ID:???
そうです
0548デフォルトの名無しさん02/11/04 23:17ID:???
>>546
第一さ、>>544の文章の読みにくさ、第二に、「うぷできない」って
物理的にアップできなかったのかどうか。ネタとも思える書き方。
漏れはさ、物理的うぷはできたが、動かそうとしたらうまくいかん
かったっていうことかとおもてレスしたんやけどな。

0549nobodyさん02/11/05 01:07ID:???
すみません、上手く説明できるか分からないのですが、
ご理解頂けたならご教授下さい。

変数$aには'あ'が入っており、
$a .= 'い'; を入れ、ログに記録します。
この時に時々、ログのデータが

あい

とならずに、

あ
い

と改行されて記録されてしまい、
データが壊れてしまう事で現在悩んでいます。
どうか助けて下さい。お願い致します。
0550nobodyさん02/11/05 01:27ID:???
>>549
肝心のログに記録する部分はどうやってるの?
0551nobodyさん02/11/05 01:35ID:???
>>526
遅レスだけどこれですっきりできたけどなぁ

chdir ($dir);
@name = glob("*");
foreach(@name) {
 if (-d) {push(@array, $_); }
}
0552nobodyさん02/11/05 01:41ID:???
あっすみません。

$DAT[$n] = "$nm,$pw,$a\n";
if(!open(OUT,">$nazofile")){ &error("ファイルに書き込めません。"); }
print OUT @DAT;
close(OUT);

という具合に記録してます。s/\n$//;などを$aに対して行っても、
効果が無くホトホト困り果てております。
更にログを見ると上記のように改行されているにも関わらず、
HTMLで見ると普通に$aの『あい』が改行されずに見える場合もあります。
普通は『あ』しか表示されないと思うのですが…。
0553nobodyさん02/11/05 01:49ID:???
>>552
s/\n$//; ではなく chomp したら?
0554nobodyさん02/11/05 02:05ID:???
あっそうなんですか?
一度chopを使ったら$aの中身が全て消えてしまって…。
chompはchopと同じように使えば良いのですか?
私、chompの使い方があまり良く分かっていないもので…。
chomp $a; と言う具合で宜しいのでしょうか?
0555nobodyさん02/11/05 02:56ID:???
>>552
それってたぶん同じファイルから@DATに読み込んでsplitしていろいろやったあと
元に戻して書き戻すっていう流れかな?
もしそうなら最初にファイルを読んだときに全行chompしてしまうのが手っ取り早い。
そのままsplitすると最後のデータだけ改行がついたままになってしまっていろいろ面倒だから。
憶測で書いたんで違ってたらスマソ。
0556nobodyさん02/11/05 02:57ID:???
chompは末尾にある改行コードを取り除く
chopは末尾1文字を取り除く
0557nobodyさん02/11/05 04:36ID:???
>>552
というかファイルロックしていないからでわ
0558nobodyさん02/11/05 04:57ID:???
しょっちゅうファイルを壊してくれる
アテにならないchompがちょと嫌い。

>>552
$param =~ s/^\s+//;
$param =~ s/\s+$//;
を試してみるのはいかが。
0559nobodyさん02/11/05 08:18ID:???
"$nm,$pw,$a\n";
を
"$nm,$pw,$a,\n";
こうする。
0560nobodyさん02/11/05 09:34ID:???
Perlの改行って\nで統一的に扱ってくれないんですか?(テキストモードで)
なんかWindowsで\x0d\x0aじゃないと上手くいかなかったような。
0561nobodyさん02/11/05 10:48ID:???
>>561
ココ?http://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
でもどこで使えばいいのかいまいちわかってない初心者な自分。
056255202/11/05 11:23ID:???
皆さん、ご指導有難うございました。
とりあえず教えて頂いた方法を試してみたいと思います。
本当にありがとうございました。
0563nobodyさん02/11/05 12:39ID:19J7tl02
zakzakがエラーだしてるわー(藁
0564nobodyさん02/11/05 13:23ID:???
今ttp://white.d51.net/yapw/yapw.cgi/RO_GPS.pmHP
に置いてあるPerlを動かそうと思い色々試しているんですが、質問があります。
Perlの勉強をしようと思い一週間でマスターするPerl for windowsという本を買い、
本に付いていたjperl for DOSを入れパス設定をすませPerlを実行できる環境は一応整ったんですが
上記のHPのPerlが動きません。もしかしてjperlでは動かないのでしょうか?
ActivePerlで動くとtopに書いてあるのですが、jperl,perl,ActivePerlの違いがいまいちわかりません。
どなたかご指導お願いしますm(_ _)m
0565nobodyさん02/11/05 13:34ID:???
>>564
動かないというのは、何かエラーが出たの? それだけじゃわかりまへん。
056656402/11/05 13:43ID:???
起動方法はrotoold.plファイルがあるフォルダに移動し、「jperl rotoold.pl」で起動という感じです。

確認のため再度行ってみたところ↓の分が表示されました。(先程までは何も起こりませんでした

KKCFUNC が組み込まれました.
マイクロソフトかな漢字変換 バージョン 2.51
(C)Copyright Microsoft Corp. 1992-1993
Can't locate IO/Select.pm in @INC (@INC contains: c:/usr
djgpp/lib/perl5/site c:/usr/djgpp/lib/perl5/site .) at r
BEGIN failed--compilation aborted at rotoold.pl line 3.
これは正常に起動していると考えてもokなのでしょうか?

ちなみに先程まではCドライブにrotooldフォルダを置いて起動していましたがDに移動してみたところ、この表示がでました
0567nobodyさん02/11/05 14:02ID:???
>>566
use Select; って行があると思うが、Select.pm ってモジュールを探し損ねてるんじゃ?
056856402/11/05 14:24ID:???
エディタでPerlファイルを開いたところuse Selectという行がありました。
Select.pmモジュールについてですがC:JPL5005\LIB\PERL5というフォルダにはいっているのを確認しましたが
モジュールを探し損ねてる場合どういった処置を行えばよろしいでしょうか?
0569&rlo;こんう&lro;02/11/05 16:04ID:???
test
0570nobodyさん02/11/05 16:26ID:???
しっつもーん!

undef $/;
や
$/="";
は便利だけど、

----------
みたいなものを読み取る時の区切りにする方法ってありますか?


あれば教えてください。
0571nobodyさん02/11/05 16:57ID:???
--------------------------------------
ファイルAの中に
require'ファイルBへの相対パス';
--------------------------------------
ファイルBの中に
require'ファイルBからファイルCへの相対パス';
--------------------------------------

と書いてあって、
ファイルAを実行した場合、
ファイルCが正常に読み出せる術ってありますか?
0572nobodyさん02/11/05 17:01ID:???
>.571
絶対パスで書けば即解決。
0573nobodyさん02/11/05 18:37ID:???
=~ s/\n//g;
=~ s/[\n\r]//g;

上は分かるのですが下の意味が分かりません。
これはどういう動作なのでしょうか?教えて下さい。
■ このスレッドは過去ログ倉庫に格納されています