• ベストアンサー

perlで書いた文を変更したら・・・

動作環境Redhat9、Apache2、perl 自動でメールを送信するシステムを作成しています。訳ありでシステムを変更することになりました。Perlでかかれている文をを変更したらシステムがうまく動かなくなってしまいました。perlで書いた文は間違ないのですが・・・変更後ある作業をするということですか?どなたか教えてください。よろしくお願いします。

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

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

  • ベストアンサー
  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.3

何ほ使ってperlのプログラムを開き上書き保存したのでしょうか。 例えば、  Redhat9にてsambaを動かしている。  Windowsのクライアント等から共有資源として接続している。  そのクライアントのテキストエディタを使ってperlのファイルを開い た。  そしてそのまま上書きした。 といった手順を踏んでしまった場合、改行コードが変更されて保存されてしまう可能性があります。 通常Unix(及び互換OS/Linux等)の文化では改行コードは LF だけですが、Windowsは CR+LF です。 その為、この改行コードが問題になって動作エラーを起こす事があります。 この様な場合は改行コードを LF だけにして保存し直せばあっさりと動く様になります。

belmorze
質問者

お礼

回答ありがとうございました。書き込み時に属性が変わってしまったのが原因でした。書き込み後属性を755に変えてOKでした。回答ありがとございました。

その他の回答 (3)

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.4

> 何も入力せず上書き保存をしただけで、システムが動かなくなってしまいます。 それは文字コードにエラーかもしれません。EUCで作成したファイルをシフトJISで保存した場合、文字化けが発生します。それがエラーの原因となっているのではないでしょうか? Windowsであればメモ帳等のエディタを使うより、秀丸エディタなどをお勧めします。

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.2

> Perlでかかれている文をを変更したらシステムがうまく動かなくなってしまいました。 おそらく、8割の確立で構文エラーでしょう。パーミッションエラーも考えられなくはないですが低いでしょうね。 元ソースと修正後のソースの両方を教えてくれないと答えようのない質問ですよ!

belmorze
質問者

補足

回答ありごうとうございます。説明不足ですみません。実は、このperlの文なのですが、何も入力せず上書き保存をしただけで、システムが動かなくなってしまいます。ので、変更後ある作業が必要かと思い質問しました。

  • nnfuji
  • ベストアンサー率28% (200/701)
回答No.1

変更後のシステムについて何もかかれていませんが…

関連するQ&A

  • PERL 宣言文 -wについて

    Perl初心者のWEBサーバエンジニアです。 サーバの移行に伴ってCGIファイルが動作していないため、ご相談になります。 【サーバ環境】 perl実行パス      /usr/local/bin/perl シンボリックリンク   /usr/bin/perl => /usr/local/bin/perl ソース記述       #!/usr/bin/perl ヴァージョン      5.8.5 perl実行環境      http://△△△.jp/cgi-bin/ ※apacheのスクリプトエイリアス指定 options +ExecCGI -Include SetHandler cgi-script 上記の環境で、cgiファイルが500internalサーバエラーになる現象が発生しています。 ファイルは以前動作したサーバから引っ張ってきました。 原因を探っていたのですが、cgiファイルのソース記述を #!/usr/bin/perl -w と記述を変更すると正常に動作しました。 -w について 【1度しか出現しない識別子や、初期化されずに参照される変数など、危険、無駄と思われる処理の警告を出力します。実際にはもっとたくさんの種類のチェックをするようです。】 と言う事はわかりましたが、いままで、-wなしで動作していたので、-wなしで動くよう、perlの設定を変更したいとかんがえております。 なにぶんPERL初心者ですので、同様の事象で知見がある方、ご教授を宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • 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
  • PerlでInternal CGI Error Malformed Error

    こんばんわ。 皆様お忙しいところかと思いますが、 なにとぞお助けいただけますようお願いいたします。 環境 Perl5.0.8.2 VineLinux3.2 Apache1.3.33 皆様方から見るとなんでそんなことしてるの!? と思われると思いますが、現在、perlにて、 メールフォームを作ろうと考えています。 ただperlからのメールフォームは、sendmailを 利用したものが多いのですが、sendmailが インストールできない環境な為、 Javaにてメール送信用のコマンドを作成しまして、 ファイルパスをパラメータとして渡すことで、 メールが送信出来るにはなりました。 (文字化けなどが発生していますが(汗)) 一々forkするのはお勧めできないと言うのは 置いておいて、Internal CGIErrorが発生してしまい、 よく解決方法がわかりません。(perl初心者です) Apacheのerror.logには以下のメッセージが出ています。 mailformed header from script. Bad header=0: 切り分けのために以下のコードだけにして実行してみたのですが、動作は正しいのですが、internal CGI error が発生してしまいます。 $status = system($COMMAND); print "Content-Type:text/html\n\n"; print "success"; hello perlではこんな感じで表示できているので、 system関数自体がそもそも駄目なのでしょうか・・・。 申し訳ございませんがご教示ください。 以上

    • ベストアンサー
    • Perl
  • #!/usr/local/bin/perlとしたい

    WindowsXP上でCGIを動作させる環境を構築しています。 しかし、サーバにアップロードする際にいちいちPerlパスを変更するのが 面倒なので、「#!/usr/local/bin/perl」と、基本的なディレクトリ指定にしたいです。 (サーバそうでなければ結局指定し直しですが) 現在、「#!c:/perl/bin/Perl」で動かしています。 どうすれば出来るでしょうか?ご教示願います。 ちなみにApacheは2.0.55です。

    • 締切済み
    • CGI
  • VB.NETからPerlを呼び出す

    メール自動送信機能をPerlで作成しました。 (仮にhello.plとします)hello.plを「C:\」においています。 コマンドプロンプトから次のようにperlコマンドを実行してた場合、 メールが自動送信されたことは確認できています。 perl hello.pl 同じようにVB.NETから実行したいのですが、上手くいきません。 ソース記述は以下の通りです。 Dim p As System.Diagnostics.Process = _ System.Diagnostics.Process.Start("C:\hello.pl") p.WaitForExit() どなたか分かる方がいらしたら、教えてください。

  • perlプログラムが動かない

    パールのプログラムを作成して拡張子「.pl」で保存するとアイコンがパールのマークになりますよね。 プログラムファイルにデータファイルをドラッグすると、プログラムファイル(拡張子.pl)のアイコンが白黒反転して、目的の加工データをファイルとして出力するプログラムがるのですが、プログラムを作成したパソコンともう一台しか動作しません。他のパソコンでは、プログラムファイルにデータファイルをドラッグしても、プログラムファイル(拡張子.pl)のアイコンが白黒反転せず、パールプログラムが動作しません。 どこの設定をどのように変更すればいいのでしょうか。(プログラムファイルのアイコンを白黒反転させるにはどうしたらいいのでしょうか。) コマンドプロンプトでパスが通っているか確認をしたのですが、どのパソコンもパスは通っています。 プログラムの動作するパソコンの「システム環境変数のpathとPATHEXT」をプログラムの動作しないパソコンにコピーペーストしてもNGでした。 ※perl.exeが入っているディレクトリは同じにしています。プログラムファイとデータファイルをperlフォルダに入れても駄目でした。  OSは、Windows XPです。

  • CGIのパス(Apache winで)

    初歩的な質問ですみません。 環境 windows2000 サーバー Apache/1.3.20 ActivePerl-5.6.1.626 をインストールが完了して、CGIを動作させようとしています。 ApacheでのHTML動作はできています。 CGIプログラムの一行目に #!/usr/local/bin/perl と記載されています。 その文字列を #!c:/bin/perl.exe に変更して現在動作させています。 しかし、ISPのHPスペースのperlへのパスは #!/usr/local/bin/perl なので、転送前に一行目を変更しています。 変更しなくても良いように ApacheでのCGIのパスを #!/usr/local/bin/perl で動作する方法を どなたか教えていただけないでしょうか? ちなみに Perlは[c:\bin]にインストールしてあります。 Apacheは[g:\apache]にインストールしてあります。

  • perl -wc

    telnet を利用できないユーザーの為に、ブラウザ上でPerl(CGI)の文法チェックができるようにしています。 フォームでファイル名を入力させ、チェックプログラム内で "perl -wc $filename" を実行して結果を出力させるだけだと思い作成したのですが、実行結果を受け取ることができません。 apache のログには実行結果が書かれているのでコマンドは正常に動作しています。  open(IN, "perl -wc $filename |");  while (<IN>) {   print $_; と  $ret=`perl -wc $filename`; でやってみましたがダメでした。 どなたかご教授願います。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • Perlを勉強したかったのですが・・・。

    この間、Perl/CGIを勉強しようと某書籍を買い、付属のCD-ROMでApache Web Serverと、AvtivePerlをインストールしました。 この本のマニュアルによれば、ieを開いて「http://127.0.0.1/」と指定すると、Apacheを指定画面が出ると書かれていたのですが、このマニュアルどおりにならず、私がFrontPageで作成したホームページの試作品がでてきてしまいます。 どうやらhttp://127.0.0.1/の示す先がFrontPageでつくったホームページの試作品に対応しているためにこのようなことになってしまうようなのですが、どうしたらC\Apacheディレクトリに対応するように設定を変えることができるのでしょうか? CGIの勉強ができずに大変困っています。

  • perlでフォルダ作成

    こんにちは。 毎日、その日の日付のフォルダ名を作成して作業をしているのですが、 毎回、その作業に手間がかかるので、Perlを用いてフォルダを作成したいと思っています。 普段、Perlを用いて処理をすることが多いので、 今回もPerlでプログラムを作りたいと思っているのですが、 Windows環境(windows7)でPerlを用いてフォルダを作成することは出来るのでしょうか。 やりたいことは、プログラムを実行するだけで、その日の日付をフォルダ名とするフォルダの作成です。 例えば、2011年09月23日ならば、 フォルダ名が、『20110923』となるようなプログラムを書きたいと思っております。 出来るかどうかをご存じの方は、ヒントもしくはサンプルプログラムをご教授ください>< よろしくお願いします・・!

    • ベストアンサー
    • Perl

専門家に質問してみよう