• 締切済み

perl

Perlの初心者です。 本当は、LINUXで使用したいのですが、 自宅にその環境が無いので、MS-DOSで使用する為、 テキストファイルに下記の記述をしました。 print "\n"; print "どれについて知りたいですか?"; print "\n"; print "\n"; print "(1)いちご"; print "\n"; print "(2)みかん"; print "\n"; print "(3)りんご"; print "\n"; print "\n"; print "回答 ____ "; print "\n"; 私としては、例えば、(1)のいちごを選べば、 任意の場所に保存している、いちごに関するファイルを MS-DOS上で開きたいのですが、上手くいきません。 何かが足りないのは、感じているのですが、 それが何なのかが、わかりません。

みんなの回答

  • dmq
  • ベストアンサー率80% (21/26)
回答No.4

一応No.3の解答例を示しておきます。 [ここから]------------------------------ use strict; use warnings; use IO::File; print <DATA>; my @files = qw(strawberry.txt orange.txt apple.txt); while(<STDIN>){ /[1-3]/ and last; } my $fileHandle = IO::File->new($files[$_ - 1], O_RDONLY); print $fileHandle->getlines(); $fileHandle->close; $fileHandle = undef; __END__ どれについて知りたいですか? (1)いちご (2)みかん (3)りんご 回答 [ここまで]------------------------------

  • dmq
  • ベストアンサー率80% (21/26)
回答No.3

私の書いたプログラムは1~3の番号を入力すると、各テキストファイルの 内容が表示されるだけで、それ以外の文字は(質問も含めて)何も表示されません。 ("どれについて知りたいですか?";が私の書いたプログラムの何処に入っているか 見てもらえれば、なぜ何も表示されないかがすぐに理解できるはずです) もし何か表示したければ、4行目の空行に何か入れれば幸せになれるかと思います。

  • dmq
  • ベストアンサー率80% (21/26)
回答No.2

補足。 Perlプログラミングについて質問する場合は、今度から 「[技術者向] コンピューター > プログラミング > Perl」 のカテゴリで質問しましょう。その方が早く回答をもらえると思います。 また、次から質問タイトル部分にPerlで何がしたくても 出来ないかを簡潔に書くとより早く回答をもらえるでしょう。

参考URL:
http://oshiete1.goo.ne.jp/c255.html
pero2525
質問者

お礼

しばらく、考えていました。 やっとわかりました!! ありがとうございました。

  • dmq
  • ベストアンサー率80% (21/26)
回答No.1

use strict; use warnings; use IO::File; my @files = qw(strawberry.txt orange.txt apple.txt); while(<STDIN>){ /[1-3]/ and last; } my $fileHandle = IO::File->new($files[$_ - 1], O_RDONLY); print $fileHandle->getlines(); $fileHandle->close; $fileHandle = undef; __END__ 番号を入れてEnterを押すとテキストファイルを読み込みます。

pero2525
質問者

お礼

dmg様 お返事ありがとうございます。 教えていただいた記述内容を テキストファイルに入力し、 question.txtという名前で保存しました。 それと、 strawberry.txt orange.txt apple.txt もそれぞれ作成し、保存しました。 その後、MS-DOSで上記テキストファイルの 保存場所に移動し、コマンドライン上で perl question.txt と入力しましたが、 何も表示されません。 私の処理の何処が間違っておりますでしょうか? *カテゴリーについても教えていただき ありがとうございました。

関連するQ&A

  • Perl>「対話形式+ファイルを開く」ような記述をしたい。

    Perlの初心者です。 先ほど、「その他」のカテゴリーで 初めて質問させていただきましたが、 「カテゴリーが違ういますよ」と 指摘いただいたので、改めて、質問させていただきます。 本当は、LINUXで使用したいのですが、 自宅にその環境が無いので、MS-DOSで使用する為、 テキストファイルに下記の記述をしました。 print "\n"; print "どれについて知りたいですか?"; print "\n"; print "\n"; print "(1)いちご"; print "\n"; print "(2)みかん"; print "\n"; print "(3)りんご"; print "\n"; print "\n"; print "回答 ____ "; print "\n"; 私としては、例えば、(1)のいちごを選べば、 任意の場所に保存している、いちごに関するファイルを MS-DOS上で開きたいのですが、上手くいきません。 何かが足りないのは、感じているのですが、 それが何なのかが、わかりません。

  • Perlの超初心者です。

    Perlの超初心者です。 mac osXを使っています。テキストエディットで、#! /usr/bin/perl print "hello world!\n";と書いてperl-test.plと保存しました。そしてターミナルを起動してperl-test.plとタイプしたのですが、-bash: perl-test.pl: No such file or directoryとなってしまいます。 試しにターミナルでperl -le "print 'hello world';"とタイプするとhello worldとかえってきました。 perl-test.plはfinderのデスクトップに保存してあります。いったいどうすればperl-test.plのファイルを実行できるのですか? 教えて下さい。よろしくお願いします。

  • perlのprint文がうまく動きません

    perlの勉強を始めました。 perlの本の最初に Hello.plというファイルに print”Hello!”;と記述して perl Hello.plとすると画面にHello!と表示されるとあるのですが、何も表示されません。 ファイルの記述をprint ”Hello!\n";としてやるとHello!と一応表示されるのですがなぜ改行が必要になるのかがよくわかりません。どのように理解すればいいのでしょうか?

  • perlで自動採番

    はじめまして。 perlにて自動採番機能を付けたプログラムの導入について質問です。 私の行おうとしている事は以下のとおりです。 (1)html内に<form>タグで囲まれた部分を選択(または入力)して登録ボタンを押す。 <html> 題名:○○登録 <form method="POST" action="cgi-bin/○○.cgi"> 日付  選択   個数  登録者  備考 登録日 A:みかん 1~100 任意入力 任意入力 B:りんご までを選択 <登録ボタン> </form> </html> (2)選択結果を以下のように返す。 (例1)選択内容 2004/10/13 A:みかん 1 ごんべい TEST入力 (例1)の出力結果 ごんべいさんは、A04-001番を使用します。備考はTEST入力です。 (例2) 2004/10/13 B:りんご 100ごんべい TEST入力 (例2)の出力結果 ごんべいさんは、B04-001番~B04-101番を使用します。備考はTEST入力です。 (3)((2)番)で登録した値をテキストファイルへ出力、保存する。 (例1)の場合 プログラム処理後、値を指定したディレクトリ内にあるみかん.txtファイルへ カンマ区切りで自動入力。しかし、みかん.txtが存在しなかった場合、 新規にみかん.txtファイルを作成し、自動入力。 ・入力内容 2004/10/13;みかん;0001;ごんべい;TEST入力; (例3)の場合 (例1)と同じ条件(連番とファイル名の違いのみ) ・入力内容 2004/10/13;りんご;0001;ごんべい;TEST入力; ...番号順 2004/10/13;りんご;0101;ごんべい;TEST入力; クライアントはみかん・りんごがどれだけほしいかを選択し、登録ボタンを押す。サーバーではクライアントに入力した値を返す。その際に、値を識別し、みかん・りんごの対象となるテキストファイルに自動入力する。しかし、対象ファイルが存在しない場合、自動でファイルを作成し、そこに自動入力する。 何かいい方法がありましたらご教授お願いします。

    • ベストアンサー
    • Perl
  • Perl CGI -入力フォーム-

    Perlを始めたばかりの初心者です。 Perlの中にフォームを入れたいのですが、エラーが出てしまいます。 現在は、ローカルで作動させています。 #! c:/perl/bin/perl print "Content-type: text/html\n\n"; print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n"; print "<head><title>TEST</title></head>\n"; print "<body>\n"; print "<p><input type="text" name="name"></p>\n"; print "</body>\n"; print "</html>"; 【print "<p><input type="text" name="name"></p>\n";】この記述がエラーの対象行となっています。 inputを使用する場合は他にも記述が必要なのでしょうか? 宜しくお願いします。

  • 自作したサーバーでperlが動かない

    この度、centos5.3で自宅サーバーを組んだのですが、どうしてもある記述をしたperlのプログラムが動作しません。 他の記述方法であれば、問題なく動作します。 内容としては、htmlをOPENで読み込んで、出力させるだけの単純な物です。 なにか設定が悪いのでしょうか? なお他のサーバーでは、同じプログラムは動作します。 perlのバージョンは、5.8.8です。 記述の内容は次の通りです。 ********************************* #!/usr/local/bin/perl open(HTML, "test.html"); @log = <HTML>; close(HTML); print "Content-type: text/html\n\n"; print <<"EOF"; @log EOF exit; ********************************* エラーログには、Premature end of script headers: test.cgiとなっています。 もちろん、test.htmlファイルも存在します。 どなたかお教え頂けませんでしょうか? 宜しくお願いします。

  • PerlをWinで使いたい。

    当方のパソコンのOSはWin XP SP2 です。 Perlの勉強を始めようと思いまして、 PerlがWinで使えるということなので、 Perl for Win32 Base Build 316 の日本語対応版をダウンロードしました。 C:\Perl\bin\フォルダの中のファイルは以下の通りです。 Jperl.exe Perl300.dll PerlGlob.exe XPerl.exe XPerlGlob.exe 別に中身が以下のようなtest.txtファイルを作りました。 $name = "KENT"; print "my name is $name", "\n"; print 'my name is $name', "\n"; それで、test.txtをJperlのアイコンにドラッグしました。 ms-dosの画面は出るのですが、何も表示されません。 お助け下さい。・・・m(_ _)m

  • perl ファイルのデータを編集したい

    初めまして、perl をやり初めたばかりです。作業は Linux 上で行ってます。 あるテキストファイル data.txt があります。 data.txt の中は、以下のようになっているとします。 100 200 300 400 500 600 これを読み込んで、例えば、 1 2 3 4 5 6 以上の様に各数字を百分の一にして出力したいと思ってます。 一応、色々と調べながらプログラムを書いてはみましたが 思う様に出力されません。以下そのプログラム。 #!/usr/bin/perl open(IN, "data.txt") or die ; @x = <IN>; close (IN); $ref_x = \@x; $n_data = @x; for ($i = 0; $i< $n_data; ++$i) { $$ref_x[$i] /= 100 ; print $x[$i], " "; } print"\n"; どなたか、perl にお詳しい方教えていただけないでしょうか? 宜しくお願い申し上げます。

  • perlの書き方

    現在、windowsでwebサーバ構築しています。iisを使用しています。 その中で、perlを使用して、送信ボタンを押すとメールを配信するものを作成しています。 $to='******@******.co.jp'; if(open(ML,"○○○○○○")){ print ML "From: $email \n"; print ML "To: $to \n"; print ML "Bcc: $bcc \n"; print ML "Content-type: text/plain;\n"; この○○には、何といれたらいいのでしょうか? また単純な質問で申しないのですが、先頭部分は、 #!C:\Perl\bin\perl.exe でいいのでしょうか?

    • ベストアンサー
    • Perl
  • perlがうごきません

    htmlファイルには <html> <form action="form2.cgi" method="get"> 食品名1<input type="text"name="form1"> <br> 食品名2<input type="text"name="form2"> <input type="submit"value="送信"> </form> </html> cgiファイルには #! /usr/bin/perl require "cgi-lib.pl"; &ReadParse(); print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>フォーム</title>\n"; print "</head>\n"; print "<body>\n"; print "おいしい$in{'form1'}\n"; print "まずい$in{'form2'}\n"; print "</body>\n"; print "</html>\n"; exit; cgi-lib.plはサーバーにいれております。 どうしてうごかないのでしょうか。 perlの場所も正確です。

    • ベストアンサー
    • Perl