こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

LInuxとWindowsでのPerlの動作の違い

LinuxでCGI(Perl)プログラムを作っています。

いつも動きの確認は自分のPC(Linux)と友人のPC(LInux)で行なっていました。

そして、昨夜別の友人のPC(Windows XP)を使う機会があってついでにそのPC上でプログラムを動かしてみたら一部が正確に動作してくれませんでした。でも、その後自分のPCで実行すると正確に動作してました。

WindowsとLinuxで動作に差がでるものなのでしょうか?

投稿日時 - 2006-02-01 02:46:19

QNo.1935479

すぐに回答ほしいです

質問者が選んだベストアンサー

#2補>
特別問題ない様に思います・
どういう動作の違いがでたんでしょうか?
文字コードに起因するものかもしれません。

投稿日時 - 2006-02-01 12:36:12

補足

No.2のプログラムで取りだした$nameと既存の値$ataiを


if($atai=~/$name/){
$atai="$change\n";
}

としてるのですがどうもここがうまく動いてないようです。

if文の中に
print $name;
を書いてみたらLinuxでは表示されましたがWindowsでは表示されませんでした。

投稿日時 - 2006-02-01 14:20:07

お礼

解決できました。

Windowsで実行すると$nameのあとに半角スペースが入ってました。

投稿日時 - 2006-02-01 18:29:00

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>WindowsとLinuxで動作に差がでるものなのでしょうか?
Windows と unix で動作が異なる場合があります。

Perl の関数としての grep は、動作は変わらないと思います。
シェルコマンドとしてgrep を呼び出している場合は、
システムにインストールされているgrep で動作が異なることはあると思います。

そのプログラムを補足できますか

投稿日時 - 2006-02-01 04:34:39

補足

補足します。

ボタンの名前を取得するプログラムでボタンの名前はすべて「submit_$name」となっています。$nameはボタンによって異ります。

@submit_names = grep(/^submit_/,keys(%in));
foreach $name(@submit_names){
$name =~ s/^submit_//;
print $name;

投稿日時 - 2006-02-01 11:50:30

ANo.1

一部,とかいわれてもプログラムも何もないのでわからないですが,
たとえばインストールしているPerlのバージョンが違ったりすると挙動が違うかもしれません.

投稿日時 - 2006-02-01 03:03:44

補足

perl5.8.5を利用しています。

その動かなかったプログラム内では共通して「grep」を利用していました。

そこが悪いのでしょうか?

投稿日時 - 2006-02-01 03:04:56

あなたにオススメの質問