• ベストアンサー

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

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

  • Perl
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

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

mizumaki22
質問者

お礼

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

mizumaki22
質問者

補足

No.2のプログラムで取りだした$nameと既存の値$ataiを if($atai=~/$name/){ $atai="$change\n"; } としてるのですがどうもここがうまく動いてないようです。 if文の中に print $name; を書いてみたらLinuxでは表示されましたがWindowsでは表示されませんでした。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>WindowsとLinuxで動作に差がでるものなのでしょうか? Windows と unix で動作が異なる場合があります。 Perl の関数としての grep は、動作は変わらないと思います。 シェルコマンドとしてgrep を呼び出している場合は、 システムにインストールされているgrep で動作が異なることはあると思います。 そのプログラムを補足できますか

mizumaki22
質問者

補足

補足します。 ボタンの名前を取得するプログラムでボタンの名前はすべて「submit_$name」となっています。$nameはボタンによって異ります。 @submit_names = grep(/^submit_/,keys(%in)); foreach $name(@submit_names){ $name =~ s/^submit_//; print $name;

  • secretd
  • ベストアンサー率39% (50/126)
回答No.1

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

mizumaki22
質問者

補足

perl5.8.5を利用しています。 その動かなかったプログラム内では共通して「grep」を利用していました。 そこが悪いのでしょうか?

関連するQ&A

  • Perl はOSによって動作が違ったりするのか?

    お世話になります。 PerlでCGIを作成しようと思うのですが、Webサーバ側の環境がWindows2000、Linux、UNIXなど、OSによって動作が違ったりするのでしょうか? と、いいますのも、WebサーバはUNIXでSun ONE WebServerなのですが、 PerlのプログラミングはWindowsで、テストは、Windows 2000+ApacheまたはIISなどでしようと考えています。 Windowsの環境で作成、テストしたPerlプログラムを、 UNIXのSun ONE WebServerにアップした際、 不具合なく動作するかどうかが心配なのです。 以上、ご教授よろしくお願いします。

    • ベストアンサー
    • Perl
  • windowsからlinuxへ移行(perl)

    現在、windowsサーバーからlinuxサーバーへの移行準備をしております。 自社の方でショッピングサイトを経営しておりまして カートの部分はcgi(perl)で以下のような現象が起きています。 ■windowsでの正常な動き (1)購入ページから商品をカートに入れる(カートのページに遷移) (2)カートに入ったことを確認して買い物を続ける(購入ページへ戻る) (3)商品をカートに入れる(カートのページに遷移) (4)カートには2商品が入っている ■linuxでの動き (1)windowsと同様 (2)windowsと同様 (3)windowsと同様 (4)カートに1商品が入っている(前の商品の情報が消えている) windowsサーバーからlinuxサーバー移行時にで変更したのは以下の3点だけとなります。 (1)プログラムパス (2)DB接続情報 (3)パーミッションを755 動きだけをみるとセッション関連のところで何かやらなければいけない感じがしますが、 どこに手を付けてよいのかがわかりません。。。 プログラム修正が必要か? 必要なモジュールが足りないのか?(具体的なモジュール) その他、目を付けるところはあるのか? 大変申し訳ありませんが、 ご教授の方、宜しくお願い致します。

    • ベストアンサー
    • Perl
  • php、cgi(perl)をlinuxに移行

    php、perl初心者です。 現在、windowsサーバーからlinuxサーバーに移行しようとしていますが、 widowsサーバーで動作していたphp、cgiが動作してくれません。 プログラムはDB接続情報以外は全く変更していないのですが、 http 500 内部サーバーエラーがでてしまいます。 ちなみにperl、php、MySQLのバージョンは以下となります。 perl : 5 php : 5.2.17 MySQL : 5.1.45 大変情報が少なく、申し訳ありませんが、 どのあたりに気をつけなければならないのかご教授していただけないでしょうか?

    • ベストアンサー
    • PHP
  • RedHat Linux9のWebサーバーでのPerlの設定

    RedHat Linux9でWebサーバーをつくり公開しています。 今度、Perlを使ってCGIプログラムもアップしたいと思っています。しかし、RedHat Linux9でのPerlの設定が分かりません。私の持っている本ではPHPの設定なら載っていたのですが、Perlは載っていません。WEB上で設定方法を探して見たのですが見つかりませんでした。 どなたかPerlの設定方法を教えて下さい。 あと、RedHat Linux9ならPerlは標準で入っていますよね。。どこを見れば分かるのでしょうか。。

  • Linux Fedora core2のwebサーバー

    Linux Fedora core2のwebサーバーで、CGIを動かしたいのですが、上手く行きません。perlを実行するプログラムもインストールしてあるのですが、どうしても上手く行かず、ソースをブラウザの表示します。 どうやったら、CGIを動かせるのでしょうか?

  • win(active perl)では作動するが、linuxでは・・・

     windowsXPをactive perl でサーバーにして、CGIのチェックを行っています。しかし、linuxサーバーに転送して作動させようとするとエラーが出て作動しません。パス、属性などの設定は行っており、さらに、他のCGIは問題なく動いている状態です。よろしければ、何がいけないのか教えてください。  このようなことがおこらないようにする予防策なども教えていただければ幸いです。  プログラムはhtmlからform形式でcgiに送信し、その後、cgi内で処理しするというものです。

    • ベストアンサー
    • CGI
  • Windows の *.cgi ファイル を Linux で動かすには?

    お願いします。初心者です。Windows XP コンピュータ に Apache、activ perl で、イントラネットで、やっています。Windowsで作った *.cgi ファイルを 別のコンピュータ=SUSE Linux 10.1 OSS に移して 、同じことを実行したいのですが、samba でコピーしただけでは、ダメでした。 Linux で *.cgi ファイルを作るのは、とても大変なので、なんとか、簡単に Winndows で作った *.cgi ファイルを、上記の Linux コンピュータで動くようにしたいのでが...。お教えください。どうか、よろしく、お願いいたします。

    • ベストアンサー
    • CGI
  • VINE LINUXサーバーでCGIプログラムを動かしたい

    最近、デモ用の社内サーバーとして、VINE LINUX 2.1.5 の入ったPCをたてました。 クライアントはWindowsXPです。いくつかの社内用のプログラムを動かしています。 CGIプログラムを使用したいのですが、どのようにしたら良いでしょうか。 社内サーバーではなく、会社のホームページを表示させているサーバーは、レンタルサーバーで、CGIを使用しているので、CGIのプログラム自体は、自分でできます。 でも、CGIを使用する際の、サーバーの方の設定は分からないのですが。。 htmlを表示させ、CGIを動かしたみたのですが、CGIプログラムの内容がそのまま 表示されてしまいました。Perlをインストールするのではないかと思うのですが。。 だとしたら、VINE LINUX 2.1.5用のPerlのソフトはどこのサイトでダウンロードしてきたら良いでしょうか?

  • perlのローカルプログラムでディレクトリのアクセス権を取得したい

    お世話になっています。 Linux上で動作するperlのプログラムを作成しています。(ローカルプログラムでCGIではありません。) このperlプログラムであるバイナリファイルを分割して別のディレクトリにコピーさせようとしているのですが、コピー先のディレクトリにプログラム実行ユーザーの書き込み権限があるかを調べたいと思っています。 ネットで調べたのですがこのような処理が出来るのかどうかも不明です。 もし、ご存知の方がおられましたらディレクトリの書き込み権限を調べる方法を教えていただけないでしょうか? ヒントでもけっこうですのでよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • perlによる外部プログラムの実行

    perlにてCGIを作成しています。 ブラウザでCGIにアクセスしたとき、gpgというコマンドプロンプトの プログラムを実行したいと考えており以下のようなプログラムを作成しました。 test.batを単体で実行したときにはうまく動作するのですが、CGIを介して 実行するとうまくいきません。 CGIのプログラム (WriteCmd.cgi) **********************************  #!c:/Perl/bin/perl  print "Content-type: text/html\n\n";  print "test.batの実行\n<br>";  system("test.bat");  exit; ********************************** test.bat **********************************  gpg --batch --gen-key sample.txt ********************************** またtest.batの内容を **********************************  mkdir test ********************************** としてみるとディレクトリがちゃんと作成できるので WebサーバやPerlのパスの問題ではないと考えております。 よい解決方法がありましたら教えていただけると助かります。 よろしくお願いします。

    • ベストアンサー
    • CGI

専門家に質問してみよう